40 Балллов! Помогите пожалуйста с задачей по Delphi(Pascal). Буду очень благодарен....

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

40 Балллов! Помогите пожалуйста с задачей по Delphi(Pascal). Буду очень благодарен.
----------------------------------------------------------------
var i,input:integer;

begin
Writeln('Decimal To Binary');
Writeln('Enter any number(0-255) and press ');
write(' - ');
Readln(input);

for i:=1 to 8 do
begin
if input mod 2 = 0 then
begin
Write('0');
end;
if input mod 2 = 1 then
begin
write('1');
end;
end;

Readln;
end.
----------------------------------------------------------------
Надо чтобы десятичное число переводилось в двоичное, но тут проблема в том что мне нужно чтобы число выводилось в двоичном коде. Я никак это не могу сделать. Так как если я добавляю input:=input/2 внутри цикла последней строкой, то программа пишет "Incompatible types: 'Integer' and 'Extended' ". А если я меняю тип данных переменной input на real, то начинает ругаться mod(он работает только с целочисленным типом данных).


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

Var i,input:integer;
s:string;
begin
Writeln('Decimal To Binary');
Writeln('Enter any number(0-255) and press ');
write(' - ');
Readln(input);
s:='';
for i:=1 to 8 do
begin
if input mod 2 = 0 then s:='0'+s
else s:='1'+s;
input:=input div 2;
end;
writeln(s);
Readln;
end.

(194k баллов)
0

Спасибо огромное) Я тупил, не мог сообразить

0

Пожалуйста.

0

Кстати, дайте совет. Как быстро соображать в таких моментах? Как решать задачи, если не можешь понять как их решить? Как сообразить?

0

Главный совет - учиться, учиться и учиться! )
Важно учить теорию и решать как можно больше задач. Хорошо также смотреть готовые решения (здесь очень важно учиться на ГРАМОТНО составленных программах). Во многих случаях найти ошибку (логическую) помогает вывод промежуточных результатов (с помощью write, например). Успехов!

0

А мне друг говорил обратное, что нельзя смотреть на готовое. Сиди до конца пока не поймешь, ибо если ты посмотришь готовое, то ты ничему не учишься. Но спасибо, всё больше и больше желания появляется?

0

)*

0

Друг отчасти прав. Здесь важно найти, что называется, золотую середину. Не искать сразу готовые решения, а сначала пытаться сделать самостоятельно. А потом уже смотреть - как подобные задачи решают специалисты. Кроме того, есть довольно много уже разработанных алгоритмов. Их просто нужно знать. Классика здесь - Д.Кнут "Искусство программирования". Обязательная книга для программистов!