Упражнение 1, второй способ решения (Двумерные массивы)

Дана матрица NхМ, состоящая из натуральных чисел. Найти в ней наименьший элемент и опреде­лить его местоположение. Если таких элементов несколько, то вывести на экран положение каж­дого из них.

Задачу можно решить за один просмотр матрицы. Но в этом случае необходимо ввести вспомогательный двумерный массив, в который заносятся значения строк и столбцов минимальных элементов.

PROGRAM PG5_1A;

CONST T= 100;

S = 100;

VAR A : ARRAY[1..T, 1..S] OF INTEGER;

В : ARRAY[1..T*S, 1..2] OF INTEGER;

N, M, IM, JM, I, J, MIN, К : INTEGER;

BEGIN

WRITE(‘BBEДИTE КОЛИЧЕСТВО СТРОК N = ‘);

READLN(N);

WRITE(‘BBEДИTE КОЛИЧЕСТВО СТОЛБЦОВ М = ‘);

READLN(M);

FOR I := 1 TO N DO

BEGIN

WRITELN(‘BBЕДИТE ‘, M, ‘ ЧИСЕЛ’);

FOR J := 1 TO M DO

READ(A[I, J])

END;

MIN := A[1, 1];

К := 0;

FOR I := 1 TO N DO

FOR J := 1 TO M DO

IF MIN>A[I, J] THEN

BEGIN

К := 1;

B[1, 1] := I;

B[1, 2] := J;

MIN := A[l, J]

END ELSE

IF MIN = A[l, J] THEN

BEGIN

K:=K+1;

B[K, 1] := I;

B[K, 2] := J

END;

IF К = 1 THEN BEGIN

WRITELN(‘EДИHHCTBEHHЫЙ МИНИМУМ MIN = ‘, MIN);

WRITELN(‘CTPOKA ‘, IM, ‘ СТОЛБЕЦ ‘, JM)

END ELSE

BEGIN

WRITELN(‘B МАТРИЦЕ’, К, ‘МИНИМУМОВ MIN =’, MIN);

FOR I := 1 TO К DO

WRITELN(‘CTPOKA’, B[l, 1], ‘СТОЛБЕЦ’, B[l, 2])

END

END.

Для решения задачи:

— формируем тело программы и описываем переменные;

— вводим размеры массива А и значения его элементов;

— просматриваем элементы массива, ищем минимальное значение и запоминаем значение индексов в вспомогательном массиве В;

— считаем количество минимальных элементов;

— в зависимости от К либо выводим информацию о единственном минимальном элементе, либо организуем вывод информации о всех минимальных элементах из массива В.

Переменные:

А — двумерный массив;

В — вспомогательный массив;

N, М — количество строк и столбцов массива;

I, J — переменные цикла;

К — количество минимальных элементов;

IM, JM — строка и столбец минимального элемента;

MIN — текущий минимум.

Добавить комментарий