Помогите разработать программу в delphi для вычисления квадратных уравнений.

Помогите разработать программу в delphi для вычисления квадратных уравнений.
Гость
Ответ(ы) на вопрос:
Гость
Как-то так procedure SqRoot(a,b,c: real; var x1,x2: real; var ok: boolean); { a,b,c – коэффициенты уравнения x1,x2 – корни уравнения ok = True – решение есть ok = False – решения нет } var d: real; // дискриминант begin d: = Sqr(b) -4*a*c; if d < 0 then ok: = False // уравнение не имеет решения else begin ok: = True; x1: = (-b + Sqrt(d)) / (2*a); x2: = (b + Sqrt(d)) / (2*a); end; end;
Гость
procedure SqRoot(a, b, c: real; var x1, x2: real; var nroots: integer); {Корни квадратного уравнения с коэффициентами a,b,c.  nroots - количество найденных действительных корней  n=0: корни мнимые, х1 - вещественная часть, х2 - мнимая;  n=1: корни действительные и равные, х1=х2;  n=2: корни действительные и разные, х1, х2} var   d: real; begin   d := sqr(b) - 4 * a * c;   if d < 0 then   begin     nroots := 0;     x1 := -b / (2 * a);     x2 := sqrt(-d) / (2 * a);   end   else if d = 0 then   begin     nroots := 1;     x1 := -b / (2 * a);     x2 := x1   end   else   begin     nroots := 2;     d := sqrt(d);     x1 := (-b - d) / (2 * a);     x2 := (-b + d) / (2 * a)   end end; {тестирование} var   a2, a1, a0, x1, x2: real;   n: integer; begin   repeat     write('Введите коэффициенты уравнения: ');     readln(a2, a1, a0);     if abs(a2) + abs(a1) > 0 then     begin       SqRoot(a2, a1, a0, x1, x2, n);       case n of         0: writeln('Корни мнимые: ', x1:0:6, '-I*', x2:0:6, ', ',x1:0:6, '+I*', x2:0:6);         1: writeln('Корни действительные и равные: ', x1:0:6);         2: writeln('Корни действительные и разные: ', x1:0:6, ', ', x2:0:6)       end     end   until abs(a2) + abs(a1) = 0 end. Тестовое решение: Введите коэффициенты уравнения: 3 -2.5 1 Корни мнимые: 0.416667-I*0.399653, 0.416667+I*0.399653 Введите коэффициенты уравнения: -3 5 2 Корни действительные и разные: 2.000000, -0.333333 Введите коэффициенты уравнения: 4 -6 2.25 Корни действительные и равные: 0.750000 Введите коэффициенты уравнения: 0 0 0
Не нашли ответ?
Ответить на вопрос
Похожие вопросы