Программа
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.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию