Базова програма реалізації алгоритму
Program Generalna; {Программа формирования квадратной матрицы по выражению для A[i,j], вектора Х по транспонированной матрице и вычисления функции U}
uses Crt; {Используемый библиотечный модуль}
Const Len=100;
Type
mtr= array [1..Len,1..Len] of real; {Пользовательский тип mtr}
mas= array [1..Len] of real; {Пользовательский тип mas}
var i,j, m,n:integer; {Рабочие переменные : параметры цикла и размерности}
k:byte; {Счетчик –формирователь индексов при получении массива Х}
L:byte; {Переменная для задания начального значения параметра цикла при транспонировании матрицы}
a:mtr; {Матрица А}
x:mas; {Массив Х}
c:real; {Рабочая переменная}
u: real;{Имя вычисляемой функции}
BEGIN
ClrScr;
writeln ('Введите размерность матрицы A: числа M и N' );
write('m=');
read (m);
write('n=');
read(n);
writeln (' Введите элементы a[i,j] матрицы А ');
for i:=1 to m do{Внешний цикл по строкам}
for j:=1 to n do{Вложенный цикл по столбцам}
a[i,j]:=(ABS(3.7-j)-2) *exp (((i-j)*ln(2)))*(i+j-7.3)*SIN(1.5+(Ln(i/j)/ln(2)));
ClrScr;
write (' Выведите элементы a[i,j] матрицы А ');
writeln;
writeln;
{Вывод матрицы А по строкам}
for i:=1 to m do{Внешний цикл по строкам}
begin
for j:=1 to n do{Вложенный цикл по столбцам}
write ('a[',i,',',j,']=', a[i,j]:10:7,' '); {Вывод элемента a[i,j]матрицы А}
writeln; {Оператор для перехода на очередную строку}
end;
{ Транспонирование матрицы}
L:=1; { Начальное значение переменной для задания начального значения параметра цикла по столбцам при транспонировании матрицы}
for i:=1 to m-1 do{Внешний цикл по строкам}
begin
for j:=l to n do{Вложенный цикл по столбцам}
begin
c:=a[i,j]; a[i,j]:=a[j,i]; a[j,i]:=c;
end;
L:=L+1
end;
writeln ( ' Транспонированная матрица');
writeln;
for i:=1 to m do
begin
for j:=1 to n do
write ('a[',i,',',j,']=', a[i,j]:10:7,' ');{ Вывод элемента транспонированной матрицы}
writeln; { Оператор для переключения строки}
end;
{ Формирование массива Х}
K:=1; {Начальное значение формирователя индексов элементов массива Х }
for i:=1 to m do
for j:=1 to n do
if a[i,j]<2 then
begin
x[k]:=a[i,j]; { Формирование элемента x[k] массива Х}
k:=k+1;
end;
{ Вывод массива Х}
writeln(' Maссив X');
writeln;
for i:=1 to k-1 do
write ('x[',i,']=', x[i]:10:7,' '); { Вывод элемента массива Х}
{ Вычисление функции U}
U:=1; {Начальное значени переменной для накапливания произведений при вычислении функции U}
for i:=1 to k-1 do
U:=U*(x[i]+x[k-i]); { Вычислеемое значение функции U на i-м шаге}
writeln;
writeln;
write (' Функция: u=',u:10:7); { Вывод значения функции U}
Repeat Until KeyPressed
END.