Элемент матрицы назовем «седловой» точкой, если он является наименьшим в строке и одновременно наибольшим в столбце. Для заданной целочисленной матрицы размером N x M напечатать индексы всех её «седловых» точек — Pascal(Паскаль)

uses crt;
type arr=array[1..100,1..100]of integer;
var
a:arr;
i,n,m:integer;
 
procedure vvod(var a:arr; n,m:integer);
var i,j:integer;
begin
 writeln('Введите элементы матрицы');
 for i:=1 to n do
 for j:=1 to m do
 begin
  write('A[',i,' ',j,']: ');
  readln(a[i,j]);
 end;
end;
 
procedure print(var a:arr; n,m:integer);
var i,j:integer;
begin
 for i:=1 to n do
 begin
  for j:=1 to m do write(a[i,j]:2,' ');
  writeln;
 end;
end;
 
procedure sedlov(a:arr; n,m:integer);
var i,j,min,max,jet,k:integer;
begin
 min:=1;
 max:=1;
 k:=0;
 For i:= 1 to m do
 begin
  For j:= 1 to n do
   if a[min, i] > a[j, i] then min:= j;
  For jet:= 1 to m do
   if a[min, max] < a[min, jet] then max:= jet;
  if a[min, i] = a[min, max] then
  begin
   inc(k);
   writeln('Седловая точка:   matrix[',min,',',max,']=',a[min,max]);
  end;
 end;
 if k=0 then writeln('Net selovyh tochek');
end;
 
begin
 clrscr;
 write('Размер матрицы N, M: ');
 readln(n,m);
 vvod(a,n,m);
 writeln('Исходная матрица:');
 print(a,n,m);
 writeln;
 sedlov(a,n,m);
 readln;
end.

Leave a Comment

62 − 54 =