Программа


CONST MaxQuant=20; { Максимальное количество элементов массива }
TYPE Power=1..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;
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;
PROCEDURE MakeVector(X:VectorType; r:Element; var Y:VectorType); { Процедура создания вектора }
  Var i:Power;       { Счетчик цикла }
  Begin
    Y.N:=X.N; { Определение размерности вектора }
    for i:=1 to Y.N do   { Цикл заполнения элементов массива }
      Y.V[i]:=Pow((X.V[i]-r)/i,i)  { Определение элемента }
  End;
PROCEDURE SqrVector(X:VectorType; var Y:VectorType); { Процедура возведения в квадрат элементов вектора }
  Var i:Power;       { Счетчик цикла }
  Begin
    Y.N:=X.N; { Определение размерности вектора }
    for i:=1 to Y.N do   { Цикл заполнения элементов массива }
      Y.V[i]:=Sqr(X.V[i])  { Определение элемента }
  End;
FUNCTION Min(A:VectorType):Element;  { Функция поиска минимального значения элемента массива }
  Var MinNum:Power; { Индекс минимального элемента }
      i:Power; { Счетчик элементов массива }
  Begin
    MinNum:=1; { Начальное определение номера минимального элемента }
    for i:=2 to A.N do  { Цикл просмотра массива }
      if A.V[i]<A.V[MinNum]  { Сравнение элементов массива }
      then MinNum:=i; { Переопределение номера минимального элемента }
    Min:=A.V[MinNum] { Определение значения функции }
  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;
VAR X,SqrX,Y:VectorType;
    r,v:Element;
BEGIN
  WriteLn;                          { Пропуск строки }
  ReadVector('ВВОД ПОСЛЕДОВАТЕЛЬНОСТИ "X"',X);      { Ввод вектора }
  WriteLn;                          { Пропуск строки }
  WriteVector('Вектор X',X);        { Вывод вектора }
  SqrVector(X,SqrX);                { Возведение в квадрат элементов вектора }
  WriteVector('Вектор X^2',SqrX);   { Вывод вектора }
  r:=Min(SqrX);                     { Поиск минимального элемента массива }
  MakeVector(X, r, Y);              { Создание последовательности }
  WriteVector('Вектор Y',Y);        { Вывод вектора }
  v:=Min(Y);                        { Поиск минимального элемента массива }
  WriteLn('r=',r,'  v=',v);         { Вывод результата }
END.

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