Вот так почти правильно: uses crt;
var a, b, c, d, e, x1, x2: real;
begin
textbackground(white);
textcolor(black);
clrscr();
write('a b c: ');
readln(a, b, c);
if a = 0 then
if b = 0 then
if c = 0 then writeln('x ∈ ℝ')
else writeln('x ∈ ∅')
else writeln('x = ', -c/b)
else
begin
d := b * b - 4 * a * c;
if d < 0 then writeln('x ∈ ∅')
else
if d = 0 then writeln('x = ', -0.5*b/a)
else
begin
e := sqrt(d);
x1 := 0.5*(-b - e)/a;
x2 := 0.5*(-b + e)/a;
if x1 > x2 then
begin
e := x1;
x1 := x2;
x2 := e
end;
writeln('x₁ = ', x1, ', x₂ = ', x2)
end
end
end. К сожалению, есть один неприятный случай, когда |4ac/b²|<<1. Вот специально для этого случая всю программу придётся переписывать, чтобы она работала корректна - тут требуется переходная асимптотика, что выходит далеко за рамки средней школы. Напиши́те мне если Вам этот случай обязательно необходимо учитывать!
Ты сам свой скрин с какой лупой рассматриваешь? На будущее: здесь мало кто получает адекватный ответ, когда нет кода в текстовом отформатированном виде.
uses crt;
var
a,b,c,d,x1,x2,rx,ix: real;
begin
{Вводим значения a, b и c}
clrscr;
write('Wwedite A: '
readln(a);
write('Wwedite B: '
readln(b);
write('Wwedite C: '
readln(c);
if
{Вычисляем дискриминант}
d:= b*b - 4*a*c;
{Если дискриминант больше 0, то вычисляем корни и выводим на экран}
if d >= 0 then
begin
x1:= (-b + sqrt(d))/(2*a);
x2:= (-b - sqrt(d))/(2*a);
writeln('x1 = ',x1:4:2);
writeln('x2 = ',x2:4:2);
end;
{Если дискриминант меньше 0, то выводим сообщение}
if d < 0 then
begin
writeln('корни комплексные'
rx:= -b/(2*a);
ix:=sqrt(-d)/(2*a);
writeln('x1 = ',rx:4:2,' + ',ix:4:2,' i'
writeln('x1 = ',rx:4:2,' - ',ix:4:2,' i'
end;
readln;
end.