Учеба и наука

Решено

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

июль 1, 2021 г.

  • Всего ответов: 2

  • Всего-навсего кавычки забыли на 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.

    июль 1, 2021 г.
    Ответ не понравился автору
  • Да, я был неправ. Честно говоря, даже не знал о такой особенности (на мой взгляд глупой и не нужной) паскаляАВС. Для меня соответствие типов в паскале — это как азбучная истина. А этот фокус просто всю логику ломает.
    А проще всего сделать иначе:
    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.

    июль 2, 2021 г.
    Ответ понравился автору
    Лучший ответ по мнению автора

Похожие вопросы

Решено

Подскажите программу для монтажа

октябрь 24, 2020 г.

Дом, отдых, хобби