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

Var a : array[1..T, 1..S] of integer;

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

BEGIN

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

READLN(N);

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

READLN(M);

FOR 1 := 1 TO N DO

BEGIN

WRITELN('BBOДИTE ', М,' ЧИСЕЛ');

FOR J := 1 ТО М DO

READ(A[I, J])

END;

FOR I := 1 TO N DO

BEGIN

MIN := A[l, M];

JM := M;

FOR J := M DOWNTO 1 DO

IF MIN>A[I, J] THEN

BEGIN

JM := J;

MIN := A[l, J]

END;

WRITELN('B СТРОКЕ I =', I, 'САМЫЙ ПРАВЫЙ MIN =', MIN);

WRITELN('CТОЛБЕЦ', JM)

END;

END.

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

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

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

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

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

Переменные:

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

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

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

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

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

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

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

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

2 2 0 -17 25 -17

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

3 4 10 -17 0 0

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

5 4 10 -17 20 45

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

14 25 -16 6 7 8

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

1 2 3 4 5 6

В СТРОКЕ I = 1 САМЫЙ ПРАВЫЙ MIN = -17

СТОЛБЕЦ 6

В СТРОКЕ I = 2 САМЫЙ ПРАВЫЙ MIN = -17

СТОЛБЕЦ 4

В СТРОКЕ I = 3 САМЫЙ ПРАВЫЙ MIN = -17

СТОЛБЕЦ 4

В СТРОКЕ I = 4 САМЫЙ ПРАВЫЙ MIN = -16

СТОЛБЕЦ 3

В СТРОКЕ I = 5 САМЫЙ ПРАВЫЙ MIN = 1

СТОЛБЕЦ 1

Рис. 7.2. Результат работы PG7_2

Задача 7.3 Дана матрица N х М, состоящая из натуральных чисел. Выбрать в строках самые левые наименьшие элементы и поставить их в первый столбец.

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

PROGRAM PG7_3;

CONST T = 100; S = 100;

Var a : array[1..T, 1..S] of integer;

N, M, 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('BBOДИTE ЧЕРЕЗ ПРОБЕЛ', M,' ЧИСЕЛ');

FOR J := 1 TO M DO

READ(A[I, J])

END;

FOR I := 1 TO N DO

BEGIN

MIN := A[I, 1];

JM := 1;

FOR J := 1 TO M DO

IF MIN>A[I, J] THEN

BEGIN

JM := J;

MIN := A[l, J]

END;

A[l, JM]:= A[l, 1];

A[l, 1] := MIN

END;

FOR I := 1 TO N DO

BEGIN

FOR J := 1 TO M DO

WRITE(A[I, J] : 4);

WRITELN

END;

END.

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

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

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

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

- для каждой строки меняем местами минимальный элемент и элемент в первом столбце;

- выводим матрицу на экран.

Переменные:

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

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

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

JM - столбец минимального элемента для каждой строки;

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

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

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

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

3 2 0 -17 25 -17

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

3 4 10 -17 0 0

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

5 4 10 -17 20 45

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

14 25 -16 6 7 8

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

1 2 3 4 5 6

-17 2 0 3 25 -17

-17 4 10 3 0 0

-17 4 10 5 20 45

-16 25 14 6 7 8

1 2 3 4 5 6

Рис. 7.3. Результат работы PG7_3

Задача 7.4 Дана матрица N х М, состоящая из латинских букв. Отсортировать каждую строку в алфавит­ном порядке.

PROGRAM PG7_4;

CONST T = 100;S = 100;