Написать програмку перевода из любой системы счисления в любую вплоть до 16 - Pascal
Формулировка задачи:
Помогите написать програмку перевода из любой системы счисления в любую вплоть до 16.
З.Ы заранее спасибо
Решение задачи: «Написать програмку перевода из любой системы счисления в любую вплоть до 16»
textual
Листинг программы
uses crt; const digit:string[16]='0123456789ABCDEF'; var n,s:string; c1,c2,m,i,k:integer; mn:set of char; begin repeat writeln('Введите из какой CC от 2 до 16:'); readln(c1); until c1 in [2..16]; mn:=[]; for i:=1 to c1 do mn:=mn+[digit[i]]; repeat writeln('Введите число в соответствии с CC:'); readln(n); k:=0; for i:=1 to length(n) do if not (n[i] in mn) then k:=1; if k=1 then writeln('Число введено неверно, повторите ввод.'); until k=0; //перевод из СС с1 в СС 10 m:=0; while n[1]='0' do delete(n,1,1); for i:=1 to length(n) do m:=m*c1+pos(n[i],digit)-1; writeln('Введите в какую CC:'); readln(c2); //перевод из СС 10 в СС с2 s:=''; repeat s:=digit[(m mod c2)+1]+s; m:=m div c2; until m=0; writeln('Перевод из ',c1,' CC --> ',c2,' CC:'); writeln(s); end.
Объяснение кода листинга программы
- Создается переменная
digit
, которая содержит все цифры от 0 до 9 и буквы от A до F, используемые для представления чисел в системе счисления. - Создаются переменные
n
,s
,c1
,c2
иi
. Переменныеn
иs
предназначены для хранения чисел, введенных пользователем, а переменныеc1
иc2
- для хранения систем счисления. Переменнаяi
используется для выполнения различных операций. - В цикле
repeat
пользователю предлагается ввести систему счисления от 2 до 16. Введенное значение сохраняется в переменнойc1
. - Создается пустое множество
mn
, которое будет использоваться для хранения символов, которые могут быть использованы для представления числа в данной системе счисления. - В цикле
for
каждый символ вводится пользователем и добавляется в множествоmn
. - Проверяется, является ли введенное число допустимым для данной системы счисления. Если нет, то увеличивается счетчик
k
. Еслиk
равно 1, выводится сообщение об ошибке. - После ввода числа, выполняется перевод из одной системы счисления в другую. Для этого используется цикл
while
, который удаляет все нули в начале числа, а затем преобразует оставшуюся часть числа в новую систему счисления. Результат сохраняется в переменнойm
. - Выполняется перевод из системы счисления 10 в систему счисления 10. Для этого используется цикл
repeat
, в котором каждый символ числа преобразуется в новую систему счисления. Результат сохраняется в переменнойs
. - Выводится сообщение с исходным и преобразованным числом, а также системой счисления.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д