К содержанию

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

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

Частые вопросы

Как часто обновляются данные по теме «Упражнение 1, второй способ решения (Двумерные массивы)»?

Страница пересматривается, когда меняются публичные условия, состав линейки или появляются устойчивые жалобы пользователей. Дата в карточке и в карте сайта меняется только после правки текста.

Нужна ли регистрация, чтобы пользоваться материалами Языки программирования Pascal и Delphi?

Нет. Все обзоры, таблицы и FAQ открыты. Формы заявок, если встречаются, ведут на сайты компаний и не являются частью этого проекта.

Где смотреть источники и контакты редакции Языки программирования Pascal и Delphi?

Автор указан в карточке страницы. Служебные разделы — «О проекте», «Контакты» и политика конфиденциальности — в подвале сайта.

Есть ли смысл читать FAQ, если уже есть рейтинг?

Да. FAQ отвечает на типовые вопросы выбора, рейтинг — на сравнение позиций. Это разные блоки одной страницы.