program lab20; const Nmax = 10; type arra = array [1 .. Nmax] of integer; mtri = array [1 .. Nmax] of arra; var arrOfMax, arrOfIndex: arra; matr: mtri; maxOfMatr, i, j: integer; {max и index передаём по ссылке, arr - по константной ссылке} procedure findMaxAndIndex(const arr: arra; var max, index: integer); begin var i : integer; max := arr[1]; for i := 2 to Nmax do begin if max < arr[i] then begin max := arr[i]; index := i; end; end; end; begin {Заполняем двумерный массив} Randomize; for i := 1 to Nmax do begin for j := 1 to Nmax do matr[i, j] := random(50); end; {Выводим двумерный массив} for i := 1 to Nmax do begin for j := 1 to Nmax do begin Write(matr[i, j], ' '); end; Writeln; end; {Для каждой строки найдём максимальный элемент и соответствующий индекс} {Занесём максимальные элементы в отдельный массив arrOfMax} {А соответствующие индексы в отдельный массив arrOfIndex} for i := 1 to Nmax do begin Writeln("i = ", i, " Vals = ",arrOfMax[i], " ",arrOfIndex[i]); findMaxAndIndex(matr[i], arrOfMax[i], arrOfIndex[i]); Writeln("i = ", i, " Vals = ",arrOfMax[i], " ",arrOfIndex[i]); end; {Выводим arrOfMax} Writeln('Массив arrOfMax:'); for i := 1 to Nmax do Write(arrOfMax[i], ' '); Writeln; {Выводим arrOfIndex} Writeln('Массив arrOfIndex:'); for i := 1 to Nmax do Write(arrOfIndex[i], ' '); Writeln; {Находим максимальный элемент матрицы} maxOfMatr := arrOfMax[1]; for i := 2 to Nmax do begin if maxOfMatr < arrOfMax[i] then maxOfMatr := arrOfMax[i]; end; {Выводим максимальный элемент} Write('Максимальный элемент матрицы: ', maxOfMatr); end.