Нахождение Дискриминанта (Решение квадратных уравнений)

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.
Добавлено: 21 Марта 2014 05:05:08 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...