Решение
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