var
a, b, c: integer;
xf, xs, dis: real;
znakf,znaks:string;
begin
writeln('введите a,b и с');
readln(a, b, c);
writeln('Вы ввели : a=', a, ' b=', b, ' c=', c);
if b>0 then znakf:='+'
else znakf:='';
if c>0 then znaks:='+'
else znaks:='';
writeln('Значит ваше уравнение имеет такой вид: ', a ,'x^2',znakf, b, 'x',znaks, c);
b := -b;
dis := sqr(b) - 4 * a * c;
writeln('D = ', b, '^2 - 4*', a, '*', c, '=', sqr(b), '-(', 4 * a * c, ')');
writeln('D = ', round(dis));
writeln('Корень D равен ', sqrt(dis));
if dis > 0 then begin
writeln('Дискриминант больше нуля');
xf := (b - sqrt(dis)) / (2 * a);
xs := (b + sqrt(dis)) / (2 * a);
writeln('x1=', round(xf), ' || x2=', round(xs));
if (xf > 0) and (xs > 0) then writeln('Сокращение на линейные множители:(x-',xf,')(x-',xs,')')
else begin if (xf < 0) and (xs > 0) then writeln('Сокращение на линейные множители:(x+',abs(xf),')(x-',xs,')')
else begin if (xf < 0) and (xs < 0) then writeln('Сокращение на линейные множители: (x+',abs(xf),')(x+',abs(xs),')')
else begin if (xf > 0) and (xs < 0) then writeln('Сокращение на линейные множители:(x-',xf,')(x+',abs(xs),')');
end;
end;
end;
end
else begin
if dis = 0 then begin
writeln('Дискриминант равен нулю');
xf := b / (2 * a);
writeln('x=', xf);
readln();
end
else begin
writeln('Нет решений, дискриминант меньше нуля');
readln();
end;
end;
readln;
end.