program lr5;
type
CMatr = array [1..10, 1..15] of real;
DMatr = array [1..10, 1..15] of real;
SMatr = array [1..10, 1..15] of real;
var
n, m: byte;
C: CMatr;
D: DMatr;
Sum: SMatr;
f: text;
//Сложение матриц
procedure plus(Sum: SMatr; C: CMatr; D: DMatr; n,m: byte);
begin
for var i: byte := 1 to n do
begin
for j: byte := 1 to m do
begin
Sum[i, j] := C[i, j] + D[i, j];
write(Sum[i, j]:12:3);
end;
writeln;
end;
end;
function diagonal(Sum: SMatr; C: CMatr; D: DMatr; n: byte): real;
begin
for var i: byte := 1 to n-1 do
begin
for j: byte := i+1 to n do
begin
Sum[i, j] := C[i, j] + D[i, j];
if Sum[i,j]< Sum[1,2] then
writeln('Минимальный элемент выше главной = ',Sum[i, j]);
readln;
end;
writeln;
end;
end;
begin
//Ввод матрицы с клавиатуры
write('Введите количество строк (не более 10), n=');
read(n);
write('Введите количество столбцов (не более 15), m=');
read(m);
writeln('Введите элементы матрицы');
for var i : byte := 1 to n do
for var j: byte := 1 to m do
read(C[i, j]); { ввод элементов по строкам }
writeln('Матрица с клавиатуры:');
for var i: byte := 1 to n do
begin
for var j: byte := 1 to m do
write(C[i, j]:12:3);
writeln;
end;
//Чтение матрицы из файла - matrix.txt
begin
Assign(f, 'matrix.txt');
Reset(f);
for var i: byte := 1 to n do
begin
for var j: byte := 1 to m do
read(f, D[i, j]);
end;
writeln('Матрица из файла:');
for var i: byte := 1 to n do
begin
for var j: byte := 1 to m do
write(D[i, j]:12:3);
writeln;
end;
close(f);
end;
writeln('Сумма матриц:');
plus(Sum, C, D, n, m, f);
diagonal(Sum, C, D, n);
end.