Программа
CONST MaxQuant=40; { Максимальное количество элементов массива }
TYPE Power=0..MaxQuant; { Размерность массивов }
Element=real; { Тип элементов массивов }
VectorType=record { Тип - вектор }
N:Power; { Реальное количество элементов массива }
V:array[Power] of Element { Массив элементов }
end;
PROCEDURE ReadVector(Head:string; var A:VectorType); { Процедура ввода вектора }
Var i:Power; { Счетчик цикла }
Begin
WriteLn(Head); { Вывод приглашения }
Write('Введите количество элементов массива '); { Вывод приглашения }
ReadLn(A.N); { Ввод количества элементов массива }
for i:=1 to A.N do { Цикл ввода элементов массива }
begin
Write('Введите элемент [',i,'] '); { Вывод приглашения }
ReadLn(A.V[i]) { Ввод элемента массива }
end;
End;
PROCEDURE WriteVector(Head:string; var A:VectorType); { Процедура вывода вектора }
Var i:Power; { Счетчик цикла }
Begin
WriteLn(Head); { Вывод заголовка }
for i:=1 to A.N do { Цикл вывода элементов массива }
Write(A.V[i]:5:2,' '); { Вывод элемента }
WriteLn; { Ввод конца строки }
End;
FUNCTION Pow(X:Element; P:word):Element; { Функция возведения числа в целую степень }
Var Product:Element; { Результат набора произведения }
Begin
Product:=1; { Сброс произведения }
while P>0 do { Цикл набора произведения }
begin
Product:=Product*X; { Набор произведения }
P:=P-1; { Пересчет степени }
end;
Pow:=Product { Определение значения функции }
End;
FUNCTION GetMult(X:VectorType; Sub:real; k:word):real; { Функция набора произведения }
Var Mult:real; { Произведение }
Fact:real; { Факториал }
i:Power; { Счетчик цикла }
Begin
Mult:=1; { Начальное определение произведения }
Fact:=1; { Начальное определение факториала }
for i:=1 to X.N do
begin
Fact:=Fact*i; { Набор факториала }
Mult:=Mult*Abs(Pow(X.V[i]-Sub,k))/Fact; { Набор произведения }
end;
GetMult:=Mult
End;
VAR X:VectorType; { Исходная последовательность }
p1,p2,p3:Element; { Произведения }
BEGIN
WriteLn; { Пропуск строки }
ReadVector('ВВОД ВЕКТОРА "X"',X); { Ввод вектора }
WriteLn; { Пропуск строки }
WriteVector('ИСХОДНЫЙ ВЕКТОР "X"',X); { Вывод вектора }
WriteLn; { Пропуск строки }
{ Набор произведений: }
p1:=GetMult(X,0,1);
p2:=GetMult(X,p1,2);
p3:=GetMult(X,p2,3);
WriteLn('p1=',p1,' p2=',p2,' p3=',p3) { Вывод результатов }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию