Другие языки программирования и технологии

Помогите исправить ошибку в коде программы, пожалуйста!

Есть программа

program kvadratnoe_uravneniy; // Имя программы.
var a, b, c, D, x1, x2:real; Y, da:string; // Переменные.
begin
da:='Да';
Writeln('Введите a: ');
readln (a);
Writeln('Введите b: ');
readln (b);
Writeln('Введите c: ');
readln (c);
Writeln('Спасибо, расчитываю дискриминант (D): ');
D:= b*b-4*a*c;
x1:=(-b+sqrt(D))/2*a;
x2:=(-b-sqrt(D))/2*a;
if (D>0)
then
begin
Writeln('Я расчетал дискриминант (D) по формуле: b*b-4*a*c, вот что получилось: ',D);
Writeln('Продолжить решать уравнения?');
readln(Y);
if (Y=da)
then
begin
Writeln('Вот корни уравнения: ', x1, ' ', x2)
else
Writeln('Тогда я пошел решать другие математические задачи.')
end
else
begin
Writeln('Я расчитал дискриминант (D) по формуле: b*b-4*a*c, но он оказался меньше 0, поэтому уравнение не имеет решения, хотя, возможно я еще недостаточно умен, так что попробуй решить его сам!');
end;
Writeln('Если ты хочешь проверить меня, то напиши слово "НЕ ВЕРЮ!"');
end.
При выполнении выдает ошибку: program kvadratnoe_uravneniy; // Имя программы.
Program1.pas(25) : Встречено 'else', а ожидалось ';'
Как исправить?
Всегда делай отступы, проще понимать текст программы

program kvadratnoe_uravneniy; // Имя программы.
var a, b, c, D, x1, x2:real; Y, da:string; // Переменные.
begin
da:='Да';
Writeln('Введите a: ');
readln (a);
Writeln('Введите b: ');
readln (b);
Writeln('Введите c: ');
readln (c);
Writeln('Спасибо, расчитываю дискриминант (D): ');
D:= b*b-4*a*c;
x1:=(-b+sqrt(D))/2*a;
x2:=(-b-sqrt(D))/2*a;
if (D>0) then begin
Writeln('Я расчетал дискриминант (D) по формуле: b*b-4*a*c, вот что получилось: ',D);
Writeln('Продолжить решать уравнения?');
readln(Y);
if (Y=da)then
Writeln('Вот корни уравнения: ', x1, ' ', x2)
else
Writeln('Тогда я пошел решать другие математические задачи.');
end
else begin
Writeln('Я расчитал дискриминант (D) по формуле: b*b-4*a*c, но он оказался меньше 0, поэтому уравнение не имеет решения, хотя, возможно я еще недостаточно умен, так что попробуй решить его сам!');
end;
Writeln('Если ты хочешь проверить меня, то напиши слово "НЕ ВЕРЮ!"');
end.
Дмитрий Зиманов
Дмитрий Зиманов
5 036
Лучший ответ
if then
begin //Открыта логическая скобка
if then
begin
else
end
else //скобка не закрыта, а уже else
вот работающая прога
uses crt;
var a,b,c:real;
d,x1,x2:real;
begin
clrscr;
writeln('Программа для решения квадратных уравнений!');
write('Введите коэффициент при x^2 --> ');
readln(a);
write('Введите коэффициент при x --> ');
readln(b);
write('Введите свободный член --> ');
readln(c);
d:=b*b-4*a*c;
if (d>=0) then
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
write('Уравнение имеет 2 корня: ');
writeln;
writeln('X1=',x1:4:2);
writeln('X2=',x2:4:2);
end
else
writeln('Уравнение корней не имеет, дискриминант меньше 0');
writeln('Конец задачи ');
readln;
end.
найди 24 строку и поставь в конце ";"