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.
cHJvZ3JhbSBsYWIyMDsKICAgIGNvbnN0CiAgICAgICAgTm1heCA9IDEwOwogICAgdHlwZQogICAgICAgIGFycmEgPSBhcnJheSBbMSAuLiBObWF4XSBvZiBpbnRlZ2VyOwogICAgICAgIG10cmkgPSBhcnJheSBbMSAuLiBObWF4XSBvZiBhcnJhOwogICAgdmFyCiAgICAgICAgYXJyT2ZNYXgsIGFyck9mSW5kZXg6IGFycmE7CiAgICAgICAgbWF0cjogbXRyaTsKICAgICAgICBtYXhPZk1hdHIsIGksIGo6IGludGVnZXI7CiAgICB7bWF4INC4IGluZGV4INC/0LXRgNC10LTQsNGR0Lwg0L/QviDRgdGB0YvQu9C60LUsIGFyciAtINC/0L4g0LrQvtC90YHRgtCw0L3RgtC90L7QuSDRgdGB0YvQu9C60LV9CiAgICBwcm9jZWR1cmUgZmluZE1heEFuZEluZGV4KGNvbnN0IGFycjogYXJyYTsgdmFyIG1heCwgaW5kZXg6IGludGVnZXIpOwogICAgYmVnaW4KICAgICAgICB2YXIgaSA6IGludGVnZXI7CiAgICAgICAgbWF4IDo9IGFyclsxXTsKICAgICAgICBmb3IgaSA6PSAyIHRvIE5tYXggZG8KICAgICAgICBiZWdpbgogICAgICAgICAgICBpZiBtYXggPCBhcnJbaV0gdGhlbgogICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgbWF4IDo9IGFycltpXTsKICAgICAgICAgICAgICAgIGluZGV4IDo9IGk7CiAgICAgICAgICAgIGVuZDsKICAgICAgICBlbmQ7CiAgICBlbmQ7CiAgICBiZWdpbgogICAgICAgIHvQl9Cw0L/QvtC70L3Rj9C10Lwg0LTQstGD0LzQtdGA0L3Ri9C5INC80LDRgdGB0LjQsn0KICAgICAgICBSYW5kb21pemU7IAogICAgICAgIGZvciBpIDo9IDEgdG8gTm1heCBkbwogICAgICAgIGJlZ2luCiAgICAgICAgICAgIGZvciBqIDo9IDEgdG8gTm1heCBkbwogICAgICAgICAgICBtYXRyW2ksIGpdIDo9IHJhbmRvbSg1MCk7CiAgICAgICAgZW5kOwogICAgICAgIHvQktGL0LLQvtC00LjQvCDQtNCy0YPQvNC10YDQvdGL0Lkg0LzQsNGB0YHQuNCyfQogICAgICAgIGZvciBpIDo9IDEgdG8gTm1heCBkbwogICAgICAgIGJlZ2luCiAgICAgICAgICAgIGZvciBqIDo9IDEgdG8gTm1heCBkbwogICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgV3JpdGUobWF0cltpLCBqXSwgJyAnKTsKICAgICAgICAgICAgZW5kOwogICAgICAgICAgICBXcml0ZWxuOwogICAgICAgIGVuZDsKICAgICAgICB70JTQu9GPINC60LDQttC00L7QuSDRgdGC0YDQvtC60Lgg0L3QsNC50LTRkdC8INC80LDQutGB0LjQvNCw0LvRjNC90YvQuSDRjdC70LXQvNC10L3RgiDQuCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40Lkg0LjQvdC00LXQutGBfQogICAgICAgIHvQl9Cw0L3QtdGB0ZHQvCDQvNCw0LrRgdC40LzQsNC70YzQvdGL0LUg0Y3Qu9C10LzQtdC90YLRiyDQsiDQvtGC0LTQtdC70YzQvdGL0Lkg0LzQsNGB0YHQuNCyIGFyck9mTWF4fQogICAgICAgIHvQkCDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40LUg0LjQvdC00LXQutGB0Ysg0LIg0L7RgtC00LXQu9GM0L3Ri9C5INC80LDRgdGB0LjQsiBhcnJPZkluZGV4fQogICAgICAgIGZvciBpIDo9IDEgdG8gTm1heCBkbwogICAgICAgIGJlZ2luCiAgICAgICAgICAgIFdyaXRlbG4oImkgPSAiLCBpLCAiIFZhbHMgPSAiLGFyck9mTWF4W2ldLCAiICAiLGFyck9mSW5kZXhbaV0pOwogICAgICAgICAgICBmaW5kTWF4QW5kSW5kZXgobWF0cltpXSwgYXJyT2ZNYXhbaV0sIGFyck9mSW5kZXhbaV0pOwogICAgICAgICAgICBXcml0ZWxuKCJpID0gIiwgaSwgIiBWYWxzID0gIixhcnJPZk1heFtpXSwgIiAgIixhcnJPZkluZGV4W2ldKTsKICAgICAgICAgICAgZW5kOwogICAgICAgICAgICAKICAgICAgICB70JLRi9Cy0L7QtNC40LwgYXJyT2ZNYXh9CiAgICAgICAgV3JpdGVsbign0JzQsNGB0YHQuNCyIGFyck9mTWF4OicpOwogICAgICAgIGZvciBpIDo9IDEgdG8gTm1heCBkbwogICAgICAgICAgICBXcml0ZShhcnJPZk1heFtpXSwgJyAnKTsKICAgICAgICBXcml0ZWxuOwogICAgICAgIHvQktGL0LLQvtC00LjQvCBhcnJPZkluZGV4fQogICAgICAgIFdyaXRlbG4oJ9Cc0LDRgdGB0LjQsiBhcnJPZkluZGV4OicpOwogICAgICAgIGZvciBpIDo9IDEgdG8gTm1heCBkbwogICAgICAgICAgICBXcml0ZShhcnJPZkluZGV4W2ldLCAnICcpOwogICAgICAgIFdyaXRlbG47CiAgICAgICAge9Cd0LDRhdC+0LTQuNC8INC80LDQutGB0LjQvNCw0LvRjNC90YvQuSDRjdC70LXQvNC10L3RgiDQvNCw0YLRgNC40YbRi30KICAgICAgICBtYXhPZk1hdHIgOj0gYXJyT2ZNYXhbMV07CiAgICAgICAgZm9yIGkgOj0gMiB0byBObWF4IGRvCiAgICAgICAgYmVnaW4KICAgICAgICAgICAgaWYgbWF4T2ZNYXRyIDwgYXJyT2ZNYXhbaV0gdGhlbgogICAgICAgICAgICAgICAgbWF4T2ZNYXRyIDo9IGFyck9mTWF4W2ldOwogICAgICAgIGVuZDsKICAgICAgICB70JLRi9Cy0L7QtNC40Lwg0LzQsNC60YHQuNC80LDQu9GM0L3Ri9C5INGN0LvQtdC80LXQvdGCfQogICAgICAgIFdyaXRlKCfQnNCw0LrRgdC40LzQsNC70YzQvdGL0Lkg0Y3Qu9C10LzQtdC90YIg0LzQsNGC0YDQuNGG0Ys6ICcsIG1heE9mTWF0cik7CiAgICBlbmQuCiAgICA=