Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИГА_Учимся программировать TURBO PASCAL 7.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.62 Mб
Скачать

Var a : array[1..T, 1..S] 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 ТО N DO

BEGIN

WRITELN('BBOДИTE ЧЕРЕЗ ПРОБЕЛ ', M,' ЧИСЕЛ');

FOR J := 1 ТО М DO

READ(A[I, J])

END;

MIN := A[1, 1];

IM := 1;JM := 1;K := 0;

FOR I := 1 TO N DO

FOR J := 1 TO M DO

IF MIN>A[I, J] THEN

BEGIN

К := 1;IM := I;JM := J;

MIN := A[l, J]

END

ELSE

IF MIN = A[l, J] THEN К := K+1;

IF К = 1 THEN

BEGIN

WRITELN('B МАТРИЦЕ ОДИН МИНИМАЛЬНЫЙ ЭЛЕМЕНТ MIN =', MIN);

WRITELN('B ', IM, 'СТРОКЕ, В ', JM, 'СТОЛБЦЕ')

END

ELSE

BEGIN

WRITELN('B МАТРИЦЕ ', К, 'МИНИМАЛЬНЫХ ЭЛЕМЕНТОВ MIN = ', MIN);

FOR I := IM TO N DO

FOR J := 1 TO M DO

IF MIN = A[l, J] THEN WRITELN('B СТРОКЕ ', I,'В СТОЛБЦЕ', J)

END

END.

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

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

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

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

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

- в зависимости от К либо выводим информацию о единст­венном минимальном элементе, либо организуем повторный просмотр массива А для вывода информации о всех мини­мальных элементах.

Переменные:

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

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

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

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

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

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

ВВЕДИТЕ КОЛИЧЕСТВО СТРОК N = 5

ВВЕДИТЕ КОЛИЧЕСТВО СТОЛБЦОВ М = 6

ВВОДИТЕ ЧЕРЕЗ ПРОБЕЛ 6 ЧИСЕЛ

2 2 0 -17 25 -17

ВВОДИТЕ ЧЕРЕЗ ПРОБЕЛ 6 ЧИСЕЛ

3 4 10 -17 0 0

ВВОДИТЕ ЧЕРЕЗ ПРОБЕЛ б ЧИСЕЛ

5 4 10 -17 20 45

ВВОДИТЕ ЧЕРЕЗ ПРОБЕЛ 6 ЧИСЕЛ

14 25 -16 6 7 8

ВВОДИТЕ ЧЕРЕЗ ПРОБЕЛ б ЧИСЕЛ

1 2 3 4 5 6

В МАТРИЦЕ 4 МИНИМАЛЬНЫХ ЭЛЕМЕНТОВ MIN = -17

В СТРОКЕ 1 В СТОЛБЦЕ 4

В СТРОКЕ 1 В СТОЛБЦЕ 6

В СТРОКЕ 2 В СТОЛБЦЕ 4

В СТРОКЕ 3 В СТОЛБЦЕ 4

Рис. 7.1. Результат работы PG7_1

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

PROGRAM PG7_1A;

CONST T = 100;S = 100;

Var а : 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('ВВЕДИТЕ КОЛИЧЕСТВО СТРОК N = ');

READLN(N);

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

READLN(M);

FOR I := 1 TO N DO

BEGIN

WRITELN('BBЕДИTE ', 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

K:= 1;

B[1. 1] := I;

B[1. 2] := J;

MIN := A[l, J]

END

ELSE

IF MIN = A[l, J] THEN

BEGIN

К := K+1;

B[K, 1] := I;

B[K. 2] := J

END;

IF К = 1 THEN

BEGIN

WRITELN('EДИНСТВЕННЫЙ МИНИМУМ 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 - текущий минимум.

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

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

ROGRAM PG7_2;

CONST T = 100;S = 100;