Даны коэффициенты многочленов P(x) и Q(X) 5-ой степени и дано вещественное а. Вычислить:P(a+Q(a)*P(a+1)). Данную программу необходимо написать с использованием процедур и функций — Pascal(Паскаль)

uses crt;
const n=6;{количество коэффициентов}
type mas=array[1..n] of real;{тип массива коэффициентов}
var p,q:mas;{2 массива}
function Pow(o:real;p:byte):real;{возведение а в степень}
var i:byte;{поскольку макс показатель степени=5, берем самый маленький диапазон}
    res:real;
begin
res:=1;
for i:=1 to p do
res:=res*o;{от 1 до показателя степени умножаем число на себя}
Pow:=res;
end;
function Res_P(x:real):real;{вычисление первого многочлена}
var i:byte;
    sm:real;
begin
sm:=0;
for i:=1 to n do
sm:=sm+Pow(x,i-1)*p[i];{умножаем коэффициенты на а^i-1 и суммируем}
Res_P:=sm;
end;
function Res_Q(x:real):real;{то же второй}
var i:byte;
    sm:real;
begin
sm:=0;
for i:=1 to n do
sm:=sm+Pow(x,i-1)*q[i];
Res_Q:=sm;
end;
procedure Vvod(var m:mas;c:char);{создание масива коэффициентов}
var i:byte;
begin
writeln('Vvedite koefficienty mnogochlena ',c);
for i:=1 to n do
 begin
   write('k',i,'=');
   readln(m[i]);
 end;
end;
procedure Vyvod(var m:mas;c:char);{вывод его на экран]
var i:byte;
begin
writeln('Mnogochlen ',c);
for i:=1 to n do
write(m[i]:5:1);
writeln;
end;
var a:real;
begin
clrscr;
Vvod(p,'P');
Vvod(q,'Q');
clrscr;
Vyvod(p,'P');
Vyvod(q,'Q');
write('a=');
readln(a);
{закомментированная часть при желании показывает как идут вычисления}
{writeln('Pa=',Res_P(a):0:2);
writeln('Qa=',Res_Q(a):0:2);
writeln('P(a+1)=',Res_P(a+1):0:2);
writeln('Qa*P(a+1)=',Res_Q(a)*Res_P(a+1):0:2);}
write('Rezultat=',Res_P((a+Res_Q(a)*Res_P(a+1))):0:2);
readln
end.

Leave a Comment

41 + = 44