Системы счисления - Pascal ABC (12524)
Формулировка задачи:
Определите основы систем исчисления от двоичной до пьятнадцятковои, где число 2A16 в младшем разряде содержит цифру ноль.
Решение задачи: «Системы счисления»
textual
Листинг программы
uses crt; const digit:string[15]='0123456789ABCDE'; //цифры в СС от 2 до 15 {функция перевода Dec числа в сс 2-15 n-число в сс 10, r-система счисления в которую переводим} function FromDec(n,r:integer):string; var s:String; begin s:=''; repeat s:=digit[(n mod r)+1]+s; n:=n div r; until n=0; FromDec:=s; end; var ss:byte; n:longint; begin n:=$2A; for ss:=2 to 15 do if FromDec(n,ss)[length(FromDec(n,ss))]='0' then writeln('CC ',ss,'=',FromDec(n,ss)) end.
Объяснение кода листинга программы
Этот код на языке Pascal ABC выполняет следующие действия:
- Импортируется библиотека crt.
- Определяется константа digit, которая представляет собой массив из 15 строк, содержащих цифры от 2 до 15.
- Определяется функция FromDec, которая принимает два аргумента: n - число, которое нужно перевести в систему счисления от 2 до 15, и r - система счисления, в которую нужно перевести. Эта функция создает новую строку s и повторяет следующий цикл:
- s присваивается значение digit[(n mod r)+1] (т.е. берется цифра, которая соответствует остатку от деления n на r, и добавляется в начало строки s).
- Затем n делится на r.
- Пока n не станет равным 0, цикл повторяется.
- В конце функция возвращает значение s.
- Определяется переменная ss, которая представляет собой байт (т.е. она может принимать значения от 0 до 255).
- Задается начальное значение n как $2A.
- Для каждого значения ss от 2 до 15 выполняется следующая последовательность действий:
- Если последняя цифра в числе, переведенном из десятичной системы счисления в систему счисления ss, равна '0', то выводится сообщение
CC
, ss,=
, результат перевода числа n в систему счисления ss.
- Если последняя цифра в числе, переведенном из десятичной системы счисления в систему счисления ss, равна '0', то выводится сообщение
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д