Не работает должным образом программа, которая должна превращать число, введённое в десятичное системе, в двоичную систему. Помогите дополнить или исправить программу. Желательно с объяснением. - вопрос №4383474

program mylesson;
var
num, i, cnt: integer;
string1, output: string;
begin
readln (num);
while num > 0 do
begin
if num mod 2 = 0 then
output:= output + 0
else
output:= output + 1;
num:= num div 2;
end;
writeln (output);
end.

Лучший ответ по мнению автора

Да, я был неправ. Честно говоря, даже не знал о такой особенности (на мой взгляд глупой и не нужной) паскаляАВС. Для меня соответствие типов в паскале — это как азбучная истина. А этот фокус просто всю логику ломает.
А проще всего сделать иначе:
program mylesson;
var
 num: integer;
 output: string;
begin
readln (num);
output:='';
while num > 0 do
begin
output:= inttostr(num mod 2)+output;
num:= num div 2;
end;
writeln (output);
end.
02.07.21
Лучший ответ по мнению автора

Другие ответы

Всего-навсего кавычки забыли на 0 и 1 поставить.
program mylesson;
var
num, i, cnt: integer;
string1, output: string;
begin
readln (num);
while num > 0 do
begin
if num mod 2 = 0 then
output:= output + '0'
else
output:= output + '1';
num:= num div 2;
end;
writeln (output);
end.
01.07.21

Еva

от 100 p.
Читать ответы
Посмотреть всех экспертов из раздела Учеба и наука > Информатика
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store