Почему мне выдаёт "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 в зависимости от его четности. Это точно то, что вы хотели?

→ Ссылка