Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_Метод_Часть_4_Массивы.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
620.54 Кб
Скачать

3.2. Задачи для дополнительного решения

  1. Дан двумерный массив целых чисел. В каждой его строке найти количество четных элементов.

Задача 2*. Дан двумерный массив целых чисел. В каждой его строке найти количество элементов, попадающих в промежуток от А до В.

  1. Дан двумерный массив целых чисел. В каждом его столбце найти сумму нечетных элементов.

  2. Дан двумерный массив. Найти число пар одинаковых "соседних" элементов в каж­дой строке.

  3. Дан двумерный массив. Найти число пар одинаковых "соседних" элементов в каж­дом столбце.

  4. Дан двумерный массив целых чисел. Для каж­дой строки выяснить имеются ли в ней положительные элементы.

Задача 7*. Дан двумерный массив целых чисел. Для каж­дой строки выяснить имеются ли в ней элементы, последняя цифра кото­рых равна А.

  1. Дан двумерный массив целых чисел. Для каж­дого его столбца выяснить имеются ли в нем нечетные элементы.

  2. Дан двумерный массив. Найти строку с максимальной суммой элементов.

Задача 10*. Дан двумерный массив целых чисел. Определить минимальный номер строки, состоящей только из положительных элементов.

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

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

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

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

  5. Дан двумерный массив целых чисел. Определить есть ли в нем строка, в которой имеются одинако­вые элементы.

3.3. Определение максимального и минимального значения в каждой строке или столбце матрицы

Алгоритм решения

Для нахождения максимального (минимального) элемента некоторой строки с номером i необходимо допустить, что первый элемент текущей строки является наибольшим (наименьшим), и организовать цикл для перебора и сравнения всех элементов данной строки. Параметром этого цикла следует выбрать номер столбца j. Циклически все последующие элементы строки i сравниваются с допустимым. Если текущее значение больше (меньше) допустимого максимума (минимума), то оно принимается за новое наибольшее (наименьшее) значение. В противном случае наибольшее значение остается прежним. Этот процесс продолжается до тех пор пока не будут сравнены все элементы текущей строки i. После окончания цикла по столбцам найденное максимальное (минимальное) значение сохраняется в массиве В. Для вычисления максимума (минимума) каждой из всех строк необходимо описанные действия повторить для всех значений i.

Схема нахождения максимума (минимума) в каждом столбце аналогична описанному алгоритму.

Программная реализация

для нахождения максимального значения

для нахождения минимального значения

в каждой строке

FOR i = 1 TO n

MAX = A(i,1)

K = 1

FOR j = 2 TO m

IF A(i,j) > MAX THEN

MAX=A(i):K= j

END IF

NEXT j

B(i) = MAX

NEXT i

FOR i = 1 TO n

MIN = A(i,1)

L = 1

FOR j = 2 TO m

IF A(i,j) < MIN THEN

MIN=A(i,j):L= j

END IF

NEXT j

B(i) = MIN

NEXT i

в каждом столбце

FOR j = 1 TO m

MAX = A(1,j)

K = 1

FOR i = 2 TO n

IF A(i,j) > MAX THEN

MAX=A(i):K= i

END IF

NEXT i

B(j) = MAX

NEXT j

FOR j = 1 TO m

MIN = A(1,j)

L = 1

FOR i = 2 TO m

IF A(i,j) < MIN THEN

MIN=A(i,j):L= i

END IF

NEXT i

B(j) = MIN

NEXT j

пример 17

Дана матрица чисел. Поменять местами первый и максимальный элемент массива в каждой строке.

Тест

Данные

Результат

n = 3, m = 3

Исполнение алгоритма

i

j

Проверка условия

MAX

K

(номер MAX)

Матрица

1

A(1,1) = 1

1

2

A(1,2)>MAX (истина)

2>1

A(1,2) = 2

2

3

А(1,3)>MAX (ложь)

0<2

значение максимума остается прежним

2

A(2,1) = -2

1

2

A(2,2)>MAX (истина)

5>-2

A(2,2) = 5

2

3

A(2,3)>MAX (ложь)

1<5

значение максимума остается прежним

3

A(3,1) = -1

1

2

А(3,2)>MAX (ложь)

-7<-1

значение максимума остается прежним

3

A(3,3)>MAX (истина)

4>-1

A(3,3)=4

3

Блок-схема алгоритма

Начало

Ввод n,m, массив А

i=1,n

max=Ai1 ; K=1

j=2,m

+ Aij>max -

max=Aij ; K=j

Обмен значений

элементов Аi1 и А

Вывод матрицы А

Конец

Программа

CLS

INPUT "введи размер матрицы " ; n, m

DIM A(n, m)

PRINT "введи матрицу"

'Цикл по строкам матрицы

FOR i = 1 TO n

'Цикл по столбцам матрицы

FOR j = 1 TO m

'Ввод элементов массива

INPUT A(i,j)

NEXT j, i

FOR i = 1 TO n

'Присваивание начального значения максимума

MAX = A(i,1)

K = 1

FOR j = 2 TO m

'Нахождение максимального значения и его номера

IF A(i,j) > MAX THEN MAX = A(i,j): K = j

NEXT j

' Обмен значений элементов Аi1 и А

SWAP A(i,1),A(i,K)

NEXT i

'Вывод преобразованной матрицы на печать

FOR i = 1 TO n

FOR j = 1 TO m

PRINT A(i,j);

NEXT j

PRINT

NEXT i

END

пример 18

Дан массив чисел. Найти номер столбца, где минимум наименьший.

Программа

CLS

INPUT "введи размер матрицы " ; n, m

DIM A(n, m), В(m)

PRINT "введи матрицу"

FOR j = 1 TO m

FOR i = 1 TO n

'Ввод элементов матрицы

INPUT A(i,j)

NEXT i, j

FOR j = 1 TO m

'Определение начального значения минимума в каждом столбце матрицы

MIN = A(1,j)

L = 1

FOR i = 2 TO n

IF A(i,j) < MIN THEN MIN = A(i,j): L = i

NEXT i

'Создание массива, состоящего из минимальных значений каждого столбца матрицы

B(j) = MIN

NEXT j

'Задание начального значения наименьшего значения среди минимумов каждого столбца матрицы

MIN1 = B(1)

L1 = 1

FOR J = 2 TO m

IF B(j) < MIN1 THEN MIN1 = B(j): L1 = J

NEXT i

PRINT "номер столбца, где самое наименьшее значение MIN =" ; L1

PRINT "его значение равно =" ; MIN1

END

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]