Вообщем написал программу ** паскале, а она не работает: Program Proga; var...

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

Вообщем написал программу на паскале, а она не работает:
Program Proga;

var
a,b,c,d,x1,x2: real;
begin
writeln('Дано уравнение вида ax^2+bx+c=0');
Writeln ('Укажи переменную "a"');
readln(a);
Writeln ('Укажи переменную "b"');
readln(b);
Writeln ('Укажи переменную "c"');
readln(c);
if a = 0 then;
begin
writeln('Не квадратное уравнение!');
end;
else then;
begin
d:= sqr(b)-4*a*c;
if d < 0 then;
begin
writeln('Нет корней');
end
else then;
x1:= (-b+sqrt(d))/2*a;
x2:= (-b-sqrt(d))/2*a;
writeln ('X1 =',x1,'X2 =',x2);
end;
end.

на 16 строке пишет ошибку: Встречено 'else', а ожидалось ';' , если ставлю ";" пишет: Встречено 'else', а ожидался оператор
Подскажите в чем беда, заранее спасибо!


Информатика (64 баллов) | 55 просмотров
0

Исправьте if a = 0 then writeln('Не квадратное уравнение!'); else begin d:= sqr(b)-4*a*c; if d < 0 then writeln('Нет корней') else begin x1:= (-b+sqrt(d))/2*a; x2:= (-b-sqrt(d))/2*a; writeln ('X1 =',x1,'X2 =',x2); end; end; end.

0

Точку с запятой еще убрать надо if a = 0 then writeln('Не квадратное уравнение!') else begin d:= sqr(b)-4*a*c; if d < 0 then writeln('Нет корней') else begin x1:= (-b+sqrt(d))/2*a; x2:= (-b-sqrt(d))/2*a; writeln ('X1 =',x1,'X2 =',x2); end; end; end.

Дан 1 ответ
0 голосов
Правильный ответ

Vara,b,c,d,x1,x2: real;
begin
writeln('Дано уравнение вида ax^2+bx+c=0');
Writeln ('Укажи переменную "a"');
readln(a);
Writeln ('Укажи переменную "b"');
readln(b);
Writeln ('Укажи переменную "c"');
readln(c);
if a = 0
 then writeln('Не квадратное уравнение!')
 else begin
      d:= sqr(b)-4*a*c;
      if d < 0 then writeln('Нет корней')
               else begin
                    x1:= (-b+sqrt(d))/2*a;
                    x2:= (-b-sqrt(d))/2*a;
                    writeln ('X1 =',x1,'  X2 =',x2);
                    end;
      end;
end.

(194k баллов)