Программа


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.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию