Решение
type
mas2 = array[1..20, 1..20] of integer;
{процедура заполняет таблицу так, чтобы все ее элементы были различны}
procedure create(var n, m: byte; var a: mas2);
var
i, j, k: byte; i1: byte;
B: array[1..2000] of integer;
L: boolean;
begin
Write('Введите размеры таблицы: ');
Readln(n, m);
for i := 1 to n do
for j := 1 to m do
begin
L := false;
repeat
A[i, j] := -450 + random(901);
if (i = 1) and (j = 1)
then k := 1
else begin
i1 := 1;
while (i1 <= k) and not L do
begin
L := (b[i1] = a[i, j]);
i1 := i1 + 1
end
end
until not L;
if not ((i = 1) and (j = 1)) then k := k + 1;
b[k] := a[i, j];
end;
end;
{процедура вывода таблицы на экран}
procedure print(m, n: byte; a: mas2);
var
i, j: byte;
begin
for i := 1 to m do
begin
writeln;
for j := 1 to n do
write(a[i, j]:5);
end;
writeln; writeln;
end;
{поиск местонахождения минимального элемента k-й строки}
procedure min(k, m: byte; a: mas2; var r: byte);
var
j: byte;
begin
r := 1;
for j := 2 to m do
if a[k, j] < a[k, r] then r := j;
end;
var
n, m: byte; a: mas2;
imax, jmax: byte; i, k: byte;
begin
randomize;
create(n, m, a);
print(n, m, a);
min(1, m, a, jmax); imax := 1; {первоначально в качестве искомого
значения берем минимальный элемент первой строки}
for i := 2 to n do
begin
min(i, m, a, k);
if a[i, k] > a[imax, jmax]
then begin imax := i; jmax := k end;
end;
writeln('Искомый элемент имеет индексы ',
imax, ' ', jmax, ' и равен ', a[imax, jmax])
end.
Результат работы программы
Введите размеры таблицы: 10 4 -107 -155 448 238 -389 -56 -354 323 -394 23 309 -154 90 329 39 240 -90 -71 340 -164 -215 -342 297 213 274 -53 -355 -435 84 190 -413 101 -301 218 -387 161 -376 -292 308 42 Искомый элемент имеет индексы 4 3 и равен 39
© Шестаков А.П., 2010