uses
Crt;
type Matr = array[1..100,1..100] of integer;
var A:Matr;
n:integer;
yes:Boolean;
row,col:Integer;
i,j:Integer;
s1,s2,s3,s4:Integer;
op:Integer;
op2:Char;
f:Text;
{ввод случайный}
procedure inputR(var b:matr;var m:integer);
var i,j:integer;
begin
for i :=1 to m do
for j:= 1 to m do
b[i,j]:=random(50);
end;
{ввод ручной}
procedure inputH(var b:matr;var m:integer);
var i,j:integer;
begin
for i :=1 to m do
for j:= 1 to m do
begin
writeln('input element[',i,j,']');
readln(b[i,j])
end;
end;
{вывод на экран}
procedure output(var b:matr;var m:integer);
var i,j:integer;
begin
for i :=1 to m do
begin
for j:= 1 to m do
write(b[i,j]:4);
writeln;
end;
end;
{Вывод в файл}
procedure outputMF(var b:matr;var m:integer;filename:string);
var i,j:integer;
f:text;
begin
assign(f,filename);
rewrite(f);
writeln(f,'Initial matrix');
Writeln(f,'----------------');
for i :=1 to m do
begin
for j:= 1 to m do
write(f,b[i,j]:4);
writeln(f);
end;
Writeln(f,'----------------');
close(f);
end;
{поиск элемента одновременно максимального в строке и минимального в столбце}
procedure FindPoints(var b:matr;var r,c:Integer; var f:boolean);
var
i,j:integer;
k:integer;
max,min:integer;
begin
f:=false;
for i:=1 to n do
begin
min := 1;
for j:=1 to N do
if a[i,j]>a[i,min] then min := j;
max := 1;
for k:=1 to n do
if a[k,min]<a[max,min] then max := k;
if max = i then begin
f:=True;
r:=max;
c:=min;
end;
end;
Writeln('b[',r,c,']=',b[r,c]);
end;
{основная программа}
begin
Randomize;{// запуск генератора случайных чисел}
s1:=0; {инициализация переменных}
s2:=0;
s3:=0;
s4:=0;
{ввод размерности матрицы}
Writeln('Input dimension of matrix n=');
Readln(n); {// ввод размерности матрицы}
{выбор ввода элементов матрицы}
Writeln('choose the input method:');
Writeln('1-Hand');{ввод ручной}
Writeln('2-Random'); {ввод случайных чисел}
Readln(op);
case op of
1: inputH(a,n);{//ввод ручной }
else
inputR(a,n); {// ввод случайных чисел}
end;
clrscr;
{вывод элементов матрицы на экран}
writeln('Initial matrix');
Writeln('----------------');
output(a,n); {// вывод элементов матрицы на экран}
Writeln('----------------');
{поиск элемента по условию}
FindPoints(a,row,col,yes);
readln;
end.