Cоставить программу, которая переводит ( НЕСКОЛЬКО чисел, пользователь сам решает, когда закончить перевод ) числа из десятичной системы счисления в шестнадцатеричную. Пожалуйста с пояснением и саму программу
Var s:string; n,a:integer; begin writeln('Введите число (Для закрытия проги введите 0)'); readln(n); while n<>0 do begin s:=''; while n <>0 do begin a:=n mod 16; case a of 0: s:=a+s; 1:s:=a+s; 2:s:=a+s; 3:s:=a+s; 4:s:=a+s; 5:s:=a+s; 6:s:=a+s; 7:s:=a+s; 8:s:=a+s; 9:s:=a+s; 10:s:='A'+s; 11:s:='B'+s; 12:s:='C'+s; 13:s:='D'+s; 14:s:='E'+s; 15:s:='F'+s; end; n:=n div 16; end; writeln(s); writeln('Введите число (Для закрытия проги введите 0)'); readln(n); end;end.
спасибо вам большое. А можно с пояснениями действий через //
var s:string; n,a:integer; begin writeln('Введите число (Для закрытия проги введите 0)'); readln(n); while n<>0 do begin s:=''; while n <>0 do begin a:=n mod 16; case a of 0: s:=a+s; 1:s:=a+s; 2:s:=a+s; 3:s:=a+s; 4:s:=a+s; 5:s:=a+s; 6:s:=a+s; 7:s:=a+s; 8:s:=a+s; 9:s:=a+s; 10:s:='A'+s; 11:s:='B'+s; 12:s:='C'+s; 13:s:='D'+s; 14:s:='E'+s; 15:s:='F'+s; end; n:=n div 16; end; writeln(s); writeln('Введите число (Для закрытия проги введите 0)'); readln(n); end;end.
упс
// Пришлось вырезать кусок программы так ограничение на кол-во символов begin s:=''; while n <>0 do begin a:=n mod 16; //Находим остаток от деления n на 16 case a of 0: s:=a+s; //Выбираем цифру в 16-ной системе 1:s:=a+s; // и записываем в начало строки ... // Пришлось вырезать кусок программы так ограничение на кол-во символов 15:s:='F'+s; end; n:=n div 16; // делим n на 16 без остатка end; writeln(s); writeln('Введите число (Для закрытия проги введите 0)'); readln(n); end;end.
Спасибо огромное!
Хотел спросить, что означают переменные ( S и A ) С чем они связаны?
s это строка, т.к. intenger не может выводить числа в 16-ной системе
а это остаток от деления числа на 16
последний вопрос while n<>0 do begin s:=''; while n <>0 do
что означает