В матрицах x и y поменять местами максимальные элементы - Turbo Pascal
Формулировка задачи:
Помогите,пожалуйста составить программу:
В произвольных матрицах x и y размера 5х4 определить максимальные элементы и поменять их значения местами.Но так чтобы вывелись 2 матрицы,где мы их поменяли местами
Решение задачи: «В матрицах x и y поменять местами максимальные элементы»
textual
Листинг программы
type TMatrix=array [1..4,1..5] of Integer;
procedure mGen(var a: TMatrix);
var i, j: Integer;
begin
for i:=Low(a) to High(a) do for j:=Low(a[Low(a)]) to High(a[Low(a)]) do
a[i,j]:=Random(100);
end;
procedure mWrite(const a: TMatrix; const s: String);
var i, j: Integer;
begin
WriteLn(s);
for i:=Low(a) to High(a) do begin
for j:=Low(a[Low(a)]) to High(a[Low(a)]) do Write(a[i,j]:3); WriteLn;
end;
end;
procedure GetMax(const a: TMatrix; var mi, mj: Integer);
var i, j: Integer;
begin
mi:=Low(a); mj:=Low(a[Low(a)]);
for i:=Low(a) to High(a) do for j:=Low(a[Low(a)]) to High(a[Low(a)]) do
if a[mi,mj]<a[i,j] then begin mi:=i; mj:=j; end;
end;
var
x, y: TMatrix;
xi, xj, yi, yj, t: Integer;
begin
Randomize;
mGen(x); mGen(y);
GetMax(x,xi,xj); GetMax(y,yi,yj);
mWrite(x,'X ='); mWrite(y,'Y =');
WriteLn('Xmax at ',xi,',',xj,'; Ymax at ',yi,',',yj);
t:=x[xi,xj]; x[xi,xj]:=y[yi,yj]; y[yi,yj]:=t;
mWrite(x,'X''='); mWrite(y,'Y''=');
end.
Объяснение кода листинга программы
- Создаются две матрицы типа TMatrix.
- В каждой из матриц случайным образом заполняются элементы.
- Вычисляются индексы максимальных элементов в каждой матрице с помощью процедуры GetMax.
- Записывается вывод на экран с помощью процедур mWrite.
- Меняются местами максимальные элементы двух матриц.
- Записывается второй вывод на экран.