Program fail1;
var
a, b, c: integer;
x1, x2: real;
function ddd: real; { Func. Diskriminanta }
begin
ddd := sqr(b) - (4 * a * c)
end;
procedure exchange(var a, b: real); { Proc. Obmena }
var
c: real;
begin
if athen exit;
c := a;
a := b;
b := c;
end;
function znaki: string; { Func. opredeleniya Znakov na osi }
var
z1, z2, z3: real;
zn1, zn2, zn3: char;
begin
z1 := a * (sqr(x1 - 1)) + (b * (x1 - 1)) + c;
z2 := a * (sqr(x2 - 0.155)) + (b * (x2 - 0.155)) + c;
z3 := a * (sqr(x2 + 1)) + (b * (x2 + 1)) + c;
if z1 < 0 then
zn1 := '-'
else
zn1 := '+';
if z2 < 0 then
zn2 := '-'
else
zn2 := '+';
if z3 < 0 then
zn3 := '-'
else
zn3 := '+';
znaki := zn1 + zn2 + zn3;
end;
{ **************************************sama proga****************************** }
begin
writeln('Vvedite znacenie A:');
readln(a);
writeln('Vvedite znacenie B:');
readln(b);
writeln('Vvedite znacenie C:');
readln(c);
if ddd < 0 then
writeln('Mnozhestvo resheniy ne ogranicheno (resheniyami yavlyayutsya vse chisla)');
if ddd = 0 then
begin
x1 := -(b / (2 * a));
writeln('Neravenstvo vypolnyaetsya v edinstvennoy tochke - ', x1);
end;
if ddd > 0 then
begin
x1 := ((-b) + sqrt(ddd)) / (2 * a);
x2 := ((-b) - sqrt(ddd)) / (2 * a); { naxpdim X1 i X2 }
exchange(x1, x2); { procedura obmena }
if znaki = '-+-' then
writeln('Mn-vo resheniy = (-#,', x1:0:2, ']&[', x2:0:2, ',+#)');
if znaki = '+-+' then
writeln('Mn-vo resheniy = [', x1:0:2, ',', x2:0:2, ']');
if znaki = '-++' then
writeln('Mn-vo resheniy = (-#,', x1:0:2, ']');
if znaki = '--+' then
writeln('Mn-vo resheniy = (-#,', x2:0:2, ']');
if znaki = '+--' then
writeln('Mn-vo resheniy = [', x1:0:2, ',+#)');
if znaki = '++-' then
writeln('Mn-vo resheniy = [', x2:0:2, ',+#)');
end;
readln;
end.