Найти минимальное значение среди корней этих уравнений. - Pascal ABC
Формулировка задачи:
Заданы три квадратных уравнения: ax2 +bx+c=0, dx2 +fx+r=0, px2 +qx+k=0. Найти минимальное значение среди корней этих уравнений.
Решение задачи: «Найти минимальное значение среди корней этих уравнений.»
textual
Листинг программы
type mas=array[1..6] of real;
procedure Korni(a,b,c:real;var ar:mas;var n:byte);
var d,x1,x2:real;
begin
d:=b*b-4*a*c;
if d<0 then writeln('Действительных корней нет!') else
if d=0 then
begin
x1:=-b/(2*a);
writeln('Один корень х=',x1:0:2);
inc(n);
ar[n]:=x1;
end
else
begin
x1:=(-b-sqrt(d))/(2*a);
x2:=(-b+sqrt(d))/(2*a);
writeln('х1=',x1:0:2,' x2=',x2:0:2);
inc(n); ar[n]:=x1;
inc(n); ar[n]:=x2;
end
end;
var a,b,c,d,f,r,p,q,k,mn:real;
ar:mas;
n,i:byte;
begin
repeat
writeln('Введите коэффициенты 1 уравнения a,b,c, a<>0');
readln(a,b,c);
until a<>0;
n:=0;
Korni(a,b,c,ar,n);
repeat
writeln('Введите коэффициенты 2 уравнения d,f,r, d<>0');
readln(d,f,r);
until d<>0;
Korni(d,f,r,ar,n);
repeat
writeln('Введите коэффициенты 3 уравнения p,q,k p<>0');
readln(p,q,k);
until p<>0;
Korni(p,q,k,ar,n);
if n=0 then write('Действительных корней нет')
else
begin
mn:=ar[1];
for i:=1 to n do
if ar[i]<mn then mn:=ar[i];
write('Минимальный корень=',mn:0:2);
end;
end.
Объяснение кода листинга программы
- Создается тип данных
mas, который представляет собой массив из 6 элементов типа real. - Создается процедура
Korni, которая принимает 3 параметра: a, b и c - это коэффициенты уравнения, а также переменные d, x1 и x2 - для хранения промежуточных значений. В этой процедуре происходит вычисление дискриминанта (d), проверка его значения и вывод результата. Если d меньше нуля, то выводится сообщение о том, что действительных корней нет. Если d равно нулю, то вычисляются два корня и выводится их значение. Если d больше нуля, то вычисляются два корня и выводится их значение. - Создается переменная
arтипаmasи инициализируется нулями. Также создается переменнаяnтипаbyte. - Запускается цикл, в котором пользователю предлагается ввести коэффициенты для каждого из трех уравнений. После ввода всех коэффициентов выполняется вызов процедуры
Korniс этими коэффициентами и переменнымиarиn. - Если в массиве
arвсе элементы равны нулю, то выводится сообщение о том, что действительных корней нет. В противном случае вычисляется минимальный корень и выводится его значение. - Конец программы.