Программа
TYPE { Описание структур данных: }
AMatrixType=array[1..4,1..5] of real;
BMatrixType=array[1..5,1..4] of real;
Vector=array[1..4] of real;
VAR A:AMatrixType; { Матрица A }
B:BMatrixType; { Матрица B }
A1,B1:Vector; { Вектора A1 и B1 }
PROCEDURE InputA (var A:AMatrixType); { Процедура ввода матрицы }
Var i,j:word; { Счетчики }
Begin
for i:=1 to 4 do { Цикл ввода строк матрицы }
for j:=1 to 5 do { Цикл ввода элементов матрицы }
begin
Write('Введите элемент [',i,',',j,'] ');
{ Вывод приглашения ввести элемент матрицы }
ReadLn(A[i,j]) { Ввод элемента матрицы }
end
End;
PROCEDURE GetB (var B:BMatrixType); { Процедура ввода матрицы }
Var i,j:word; { Счетчики }
Begin
for i:=1 to 5 do { Цикл ввода строк матрицы }
for j:=1 to 4 do { Цикл ввода элементов матрицы }
if i+j<4 then B[i,j]:=cos(i) { Вычисление элемента матрицы }
else B[i,j]:=sin(i+j)
End;
PROCEDURE OutputA (A:AMatrixType); { Процедура вывода матрицы A }
Var i,j:word; { Счетчики }
Begin
for i:=1 to 4 do { Цикл вывода строк матрицы }
begin
for j:=1 to 5 do { Цикл вывода элементов матрицы }
Write (A[i,j]:7:3,' '); { Вывод элемента матрицы }
WriteLn { Вывод конца строки }
end
End;
PROCEDURE OutputB (B:BMatrixType); { Процедура вывода матрицы B }
Var i,j:word; { Счетчики }
Begin
for i:=1 to 5 do { Цикл вывода строк матрицы }
begin
for j:=1 to 4 do { Цикл вывода элементов матрицы }
Write (B[i,j]:7:3,' '); { Вывод элемента матрицы }
WriteLn { Вывод конца строки }
end
End;
FUNCTION GetMaxOfLine(A:AMatrixType; Line:word):real;
{ Функция поиска максимального элемента в строке }
Var NumOfMax:word; { Номер максимального элемента }
j:word; { Счетчик }
Begin
NumOfMax:=1; { Начальное определение номера максимального элемента }
for j:=2 to 5 do { Цикл просмотра строки матрицы }
if A[Line,NumOfMax]<A[Line,j] then { если текущий элемент превосходит }
NumOfMax:=j; { максимальный, то переопределение максимального }
GetMaxOfLine:=A[Line,NumOfMax] { Определение значения функции }
End;
PROCEDURE GetVectorA1(var A1:Vector; A:AMatrixType);
{ Процедура формирования вектора A1 }
Var i:word; { Счетчик }
Begin
for i:=1 to 4 do { Цикл формирования вектора }
A1[i]:=GetMaxOfLine(A,i) { Поиск максимального элемента строки }
End;
FUNCTION GetMaxOfColumn(B:BMatrixType;Column:word):real;
{ Функция поиска максимального элемента в столбце }
Var NumOfMax:word; { Номер максимального элемента }
j:word; { Счетчик }
Begin
NumOfMax:=1; { Начальное определение номера максимального элемента }
for j:=2 to 5 do { Цикл просмотра стстолбца матрицы }
if B[NumOfMax,Column]<B[j,Column] then { если текущий элемент превосходит }
NumOfMax:=j; { максимальный, то переопределение максимального }
GetMaxOfColumn:=B[NumOfMax,Column] { Определение значения функции }
End;
PROCEDURE GetVectorB1(var B1:Vector; B:BMatrixType);
{ Процедура формирования вектора A1 }
Var i:word; { Счетчик }
Begin
for i:=1 to 4 do { Цикл формирования вектора }
B1[i]:=GetMaxOfColumn(B,i) { Поиск максимального элемента строки }
End;
PROCEDURE OutputVector (B:Vector); { Процедура вывода вектора }
Var i:word; { Счетчик }
Begin
for i:=1 to 4 do { Цикл вывода вектора }
Write (B[i]:7:3,' '); { Вывод элемента вектора }
WriteLn { Вывод конца строки }
End;
FUNCTION MultVector(A1,A2:Vector):real; { Функция умножения векторов }
Var i:word; { Счетчик }
Sum:real; { Сумма }
Begin
Sum:=0; { Сброс суммы }
for i:=1 to 4 do Sum:=Sum+A1[i]*A2[i]; { Набор векторного произведения }
MultVector:=Sum { Определние значения функции }
End;
BEGIN
InputA(A); { Ввод матрицы A }
GetB(B); { Формирование матрицы B }
WriteLn; { Пропуск строки }
WriteLn('Матрица A'); { Вывод заголовка }
OutputA(A); { Вывод матрицы A }
GetVectorA1(A1,A); { Формирование вектора A1 }
WriteLn('Вектор A1'); { Вывод заголовка }
OutputVector(A1); { Вывод вектора A1 }
WriteLn; { Пропуск строки }
WriteLn('Матрица B'); { Вывод заголовка }
OutputB(B); { Вывод матрицы B }
GetVectorB1(B1,B); { Формирование вектора B1 }
WriteLn('Вектор B1'); { Вывод заголовка }
OutputVector(B1); { Вывод вектора B1 }
WriteLn; { Пропуск строки }
WriteLn('С=',MultVector(A1,B1):7:3)
{ Вычисление и вывод скалярного произведения }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию