Написал программу, в конце второго оператора if выдает ошибку, . program uravnenii; var a,b,c,d,x1,x2 : real; begin writeln ('введите значения старшего (a) второго (b) и свободного (с) членов'); readln (a,b,c); d: = sqr(b)-4*a*c; if (d> =0) then write ('решения существуют'); if (d> 0) then writeln ('и их два') else writeln ('и оно всего одно') else writeln ('решений не существует') begin d: = sqr(b)-4*a*c; if (d> =0) then b: = -b x1: =(b+sqrt(d))/4*a x2: =(b-sqrt(d))/4*a writeln (x1,x2) else exit end; end.
Немного подправила.
Объяснение:
PROGRAM URAVNENII;
VAR A,B,C,D,X1,X2 : REAL;
BEGIN
WRITELN ('ВВЕДИТЕ ЗНАЧЕНИЯ СТАРШЕГО (A) ВТОРОГО (B) И СВОБОДНОГО (С) ЧЛЕНОВ');
READLN (A,B,C);
D:= SQR(B)-4*A*C;
IF (D>=0)then
begin
WRITE ('РЕШЕНИЯ СУЩЕСТВУЮТ');
IF (D>0)THEN WRITELN (' И ИХ ДВА')
ELSE WRITELN (' И ОНО ВСЕГО ОДНО');
B:= -B;
X1:=(B+SQRT(D))/4*A;
X2:=(B-SQRT(D))/4*A;
if D=0 then WRITELN ('X=',X1)
else WRITELN ('X1=',X1,' X2=',X2);
end
ELSE WRITELN ('РЕШЕНИЙ НЕ СУЩЕСТВУЕТ');
end.