• Подскажите пожалуйста, где в програме вычисления корней квадратного уравнения допущена ошибка. Написана на паскале.

    Program Dis;

    var
    x1, a, b, c, x2, d := real;
    begin
    wrireln('введите a');
    readln(a);
    wrireln('введите b');
    readln(b);
    wrireln('введите c');
    readln(c);
    d :=sqr(b)-(4*a*c);
    writeln('D=', d);
    if d>0
    then
    x1 :=(-1*b-sqrt(d))/(2*a);
    x2 :=(-1*b+sqrt(d))/(2*a);
    writeln('x1=', x1);
    writeln('x2=', x2)
    else
    begin
    if d<0 then
    writeln('х не существует')
    else
    begin
    x1 :=(-1*b+sqrt(d))/(2*a);
    writeln('x1=', x1);
    end

    end


    end.

Ответы 1

  • 1. Если D>0, то квадратное уравнение имеет 2 корня. После вычисления X1 нужно добавить X2:=(-1*b-sqrt(d))/(2*a); и в начале описать переменную X2 : real;2. По хорошему нужно проверять, не равен ли коэффициент a нулю. Если а=0, то при вычислении Х1 и Х2 получится деление на ноль. Поэтому Х1 и Х2 нужно вычислять только если а не равно нулю (поставить условие if a<>0 then ...). В противном случае: else X1:=-c/b.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years