Отыскать в матрице с помощью функции максимальный элемент - Turbo Pascal
Формулировка задачи:
Задана квадратная матрица из n*n целых чисел.Отыскать в матрице с помощью функции максимальный элемент. С помощью процедуры обеспечить удаление строки и столбца, на пересечении которых был найден этот элемент. Вывести исходную матрицу и результат преобразования.Помогите пожалуйста в коде поставить функцию и процедуру.
Решение задачи: «Отыскать в матрице с помощью функции максимальный элемент»
textual
Листинг программы
uses crt;
type mtr=array[1..10,1..10] of integer;
function max(a:mtr;n:byte;var maxi,maxj:byte):integer;
var i,j:byte;
begin
maxi:=1;
maxj:=1;
for i:=1 to n do
for j:=1 to n do
if a[i,j]>a[maxi,maxj] then
begin
maxi:=i;
maxj:=j;
end;
max:=a[maxi,maxj];
end;
procedure del(var a:mtr;n,maxi,maxj:byte; var m:byte);
var i,j:byte;
begin
m:=n;
if maxi=n then m:=m-1
else
begin
for i:=maxi to n-1 do
for j:=1 to n do
a[i,j]:=a[i+1,j];
m:=m-1;
end;
if maxj=n then n:=m
else
begin
for j:=maxj to n-1 do
for i:=1 to m do
a[i,j]:=a[i,j+1];
n:=m;
end;
end;
procedure print(a:mtr;n:byte;s:string);
var i,j:byte;
begin
writeln(s);
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
end;
var a:mtr;
n,m,i,j,maxi,maxj:byte;
mx:integer;
begin
repeat
write('Введите размер матрицы от 2 до 10 n=');
readln(n);
until n in [2..10];
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(100);
print(a,n,'Исходная матрица');
mx:=max(a,n,maxi,maxj);
writeln('Максимальный элемент=',mx,' в строке ',maxi,' столбце ',maxj);
del(a,n,maxi,maxj,m);
print(a,m,'Удаление строки и столбца');
end.
Объяснение кода листинга программы
- Создаётся тип данных mtr, который представляет собой матрицу целых чисел размером от 1 до 10 на 10.
- Определяется функция max, которая принимает матрицу, её размер и два указателя на максимальные элементы. Она выполняет поиск максимального элемента в матрице и возвращает его значение.
- Определяется процедура del, которая удаляет строку и столбец из матрицы.
- Определяется процедура print, которая выводит исходную матрицу, максимальный элемент и результат удаления строки и столбца.
- Создаётся переменная a типа mtr и заполняется случайными числами от 0 до 99.
- Выполняется цикл, в котором пользователь вводит размер матрицы от 2 до 10.
- Выполняется генерация случайной матрицы.
- Выводится исходная матрица.
- Вычисляется максимальный элемент с помощью функции max.
- Выводится максимальный элемент и его позиция.
- Выполняется удаление строки и столбца.
- Выводится результат удаления.