Cоставить программу, которая переводит ( НЕСКОЛЬКО чисел, пользователь сам решает, когда...

0 голосов
66 просмотров

Cоставить программу, которая переводит ( НЕСКОЛЬКО чисел, пользователь сам решает, когда закончить перевод ) числа из десятичной системы счисления в шестнадцатеричную. Пожалуйста с пояснением и саму программу


Информатика (23 баллов) | 66 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

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.

(1.4k баллов)
0

спасибо вам большое. А можно с пояснениями действий через //

0

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.

0

упс

0

// Пришлось вырезать кусок программы так ограничение на кол-во символов
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.

0

Спасибо огромное!

0

Хотел спросить, что означают переменные ( S и A ) С чем они связаны?

0

s это строка, т.к. intenger не может выводить числа в 16-ной системе

0

а это остаток от деления числа на 16

0

последний вопрос while n<>0 do
begin
s:='';
while n <>0 do

0

что означает