Вычислить значение выражения - PascalABC.NET (251411)
Формулировка задачи:
Вычислить значение выражения (x1-x2)*(y1-y2), где x1 , x2 - корни уравнения ax^2+bx+c=0; y1 , y2 - корни уравнения dy^2+ly+f=0. Для вычисления корней уравнений использовать вспомогательную программу.
Помогите, пожалуйста. Не представляю, как это можно сделать, используя еще и вспомогательную программу.
Решение задачи: «Вычислить значение выражения»
textual
Листинг программы
procedure vvod(var a,b,c:real;k:byte); begin repeat writeln('Введите коэффициенты уравнения ',k,' первый коэффициент не равен 0'); readln(a,b,c); until a<>0; end; procedure korni(a,b,c:real;var x1,x2:real;k:byte); var d:real; begin repeat d:=b*b-4*a*c; if d>=0 then begin x1:=(b-sqrt(d))/(2*a); x2:=(b+sqrt(d))/(2*a); end else begin writeln('Уравнение ',k,' не имеет двух действительных корней'); writeln('Введите другие коэффициенты'); vvod(a,b,c,k); end; until d>=0; end; var a,b,c,d,e,f,x1,x2,y1,y2,z:real; begin vvod(a,b,c,1); vvod(d,e,f,2); korni(a,b,c,x1,x2,1); korni(d,e,f,y1,y2,2); z:=(x1-x2)*(y1-y2); writeln('Значение заданной функции=',z:0:2); end.
Объяснение кода листинга программы
- В первой процедуре vvod, введенные пользователем коэффициенты присваиваются переменным a, b, c.
- Во второй процедуре korni, вычисляются корни уравнения и сохраняются в переменных x1, x2.
- Если корни уравнения не действительны, выводится сообщение об этом и вызывается процедура vvod для ввода новых коэффициентов.
- В основной программе, после ввода коэффициентов для первого уравнения, вызывается процедура korni для вычисления корней.
- Затем вызывается вторая процедура korni для вычисления корней второго уравнения.
- Значение функции вычисляется как произведение разности первых и вторых корней на разность вторых корней.
- Значение функции выводится на экран.