Дана матрица 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 — текущий минимум. |