Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 139

Нужно понять логику кода

18.09.2020, 20:26. Показов 1891. Ответов 10
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код который с одной системы счисления переводит значения в любую другу систему счисления, код работает но я не могу понять как именно, прошу помочь объяснить или поставить комменатрий возле строк и написать туда за что эта строка отвечает
Сам код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "iostream" 
#include "conio.h"
#include "cmath"
#include <ctime>
#include <time.h> 
#include <cstdio>
#define DIG "0123456789ABCDEF"
 
using namespace std;
 
int Atoi(char *s, int p) 
{
    int i, a, digit[64] = {0};
    for(i = 0; DIG[i]; i++)
        digit[DIG[i]] = i;
    for(i = a = 0; s[i]; i++)
        a = a * p + digit[s[i]];
    return a;
}
 
void Itoa(int a, int p, char *s) 
{
   static int i = 0, n;
   if (a) 
   {
      ++i;
      Itoa(a / p, p, s);
      s[n - i--] = DIG[a % p];
   }
   else
      s[n = i] = '\0';
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int a1, a2;
    char s[1024];
    cout<<"Введите начальную систему счисления ";
    cin>>a1;
    cout<<"Введите конечную систему счисления ";
    cin>>a2;
    cout<<"Введите число ";
    cin>>s;
    Itoa(Atoi(s, a1), a2, s);
    cout << s << endl;
    _getch();
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.09.2020, 20:26
Ответы с готовыми решениями:

Не могу понять логику, обьясните что за чем пожалуйста
#include &lt;iostream&gt; using namespace std; int stonetolb (int); //прототип функции int main () { int stone; ...

Строки (массив char), указатели. Не могу понять логику! Help!
Вообщем проблема в том что выводятся лишние символы в строках.. хотя в них есть признак окончания строк - нулевой байт я новичок в С...

Подскажите логику нескольких строк кода
Помогите пожалуйста. Меня интересуют только места где используется указатель. В этой и других функциях: void PrintList(const Student*...

10
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
19.09.2020, 11:24
Цитата Сообщение от ие Посмотреть сообщение
Есть код который с одной системы счисления переводит значения в любую другу систему счисления, код работает но я не могу понять как именно, прошу помочь объяснить или поставить комменатрий возле строк и написать туда за что эта строка отвечает
Какая-то жесть. Где ты это нашёл?
0
Искусственный интеллект
 Аватар для NQUARE
112 / 82 / 34
Регистрация: 26.08.2020
Сообщений: 590
Записей в блоге: 1
19.09.2020, 11:27
Это трешь полный.
0
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 139
19.09.2020, 11:32  [ТС]
oleg-m1973, Silin11, да мне так говорили, код я нашел тут на форуме, так вы можете разобрать ну или другой код показать который делает тоже самое, мне надо сдать работу в понидельник))))
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
19.09.2020, 11:38
Лучший ответ Сообщение было отмечено ие как решение

Решение

Цитата Сообщение от ие Посмотреть сообщение
oleg-m1973, Silin11, да мне так говорили, код я нашел тут на форуме, так вы можете разобрать ну или другой код показать который делает тоже самое, мне надо сдать работу в понидельник))))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
    setlocale(LC_ALL, "Russian");
    int a1, a2;
    char s[1024];
    cout<<"Введите начальную систему счисления ";
    cin>>a1;
    cout<<"Введите конечную систему счисления ";
    cin>>a2;
    cout<<"Введите число ";
    cin>>s;
 
    int n = strtol(s, nullptr, a1);
    itoa(n, s, a2);
 
    cout << s << endl;
    _getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 139
19.09.2020, 11:57  [ТС]
oleg-m1973, выдает много ошибок, все они об одном " was not declared in this scope" как исправить?
0
Искусственный интеллект
 Аватар для NQUARE
112 / 82 / 34
Регистрация: 26.08.2020
Сообщений: 590
Записей в блоге: 1
19.09.2020, 11:59
Ну ёклмн, это ж просто функция main, эщё переменные обьявить надо и iostream подключить неёмспейс использовать.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
19.09.2020, 12:00
Цитата Сообщение от ие Посмотреть сообщение
oleg-m1973, выдает много ошибок, все они об одном " was not declared in this scope" как исправить?
Сделай в начале файла
C++
1
2
3
4
#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
0
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 139
19.09.2020, 12:09  [ТС]
oleg-m1973, ввел но осталась одна ошибка "[Error] 'nullptr' was not declared in this scope" Silin11, извиняюсь с++ мы только проходим и я не очень вникаю и часто пропускаю такого рода очевидные вещи
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
19.09.2020, 12:10
Цитата Сообщение от ие Посмотреть сообщение
oleg-m1973, ввел но осталась одна ошибка "[Error] 'nullptr' was not declared in this scope" и
C++
1
 int n = strtol(s, 0, a1);
0
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 139
19.09.2020, 12:20  [ТС]
oleg-m1973, спасибо большое, можешь объяснить как код работает? какая строка за что отвечает например: что значит
C++
1
int n = strol;
,
C++
1
itoa(n, s, a2);
,
C++
1
char s[1024];
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.09.2020, 12:20
Помогаю со студенческими работами здесь

Разобрать логику работы приведенного кода
Здравствуйте, уважаемые! #include &lt;iostream&gt; using namespace std; long brackets_balance (char * str) { long count; for...

Не понимаю логику обработки кода, разбитого на файлы
Ситуация примерно такая. Есть файл file1.h, в котором объявлена функция: template&lt;class T&gt; T from_string(const std::string&amp; s);...

Бинарный поиск через рекурсию: разобрать логику кода
Помогите , уже второй день мучаюсь с алгоритмом бинарного поиска через рекурсию . Не понимаю откуда берутся значения которые мне выдает...

Задача на С++ ( нужно обьяснить логику и алгортим)
Вот собсна ТЗ: С клавиатуры вводится натуральное число N // нужна блок схема а) необходимо вывести на экран все простые числа, меньшие...

Нужно понять как работает часть кода
Нашел для ознакомления код для формы логина/пароля, читаю код и не могу понять что тут конкретно происходит, объясните пожалуйста ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru