Почему мне выдаёт "Program1.pas(10) : Встречено 'else', а ожидался оператор" в моей программе?
Program PerevodChisla;
procedure Dec2Bin(var decim : integer; binar: string);
begin
readln(Decim);
if decim > 0 then
begin
if Decim mod 2 = 0 then
binar := Binar + '0';
else
binar := Binar + '1';
end;
end;
var
a:integer;
s:string;
begin
readln(a);
Dec2Bin(a, s);
writeln(s);
end.
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Уберите точку с запятой после
binar := Binar + '0'
Вы же не делаете многострочный блок begin .. end
Только вот все равно не сработает верно - хотя бы потому, что строку вы передаете без var, так что после выхода из функции переданная строка останется неизменной...
А вообще - непонятно, что вы реально хотите. По сути вы считываете какое-то число, выбрасываете, читаете новое число и пытаетесь вывести 0 или 1 в зависимости от его четности. Это точно то, что вы хотели?