Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
64
Добавлен:
10.04.2015
Размер:
3.02 Mб
Скачать

13.1. Примеры решения задач

Рассмотрим принцип обмена между элементами массива.

Пример 1. Поменять местами в каждой строке матрицы максимальный элемент и элемент, расположенный на главной диагонали:

Выполним замену значений элементов в матрице

.

Графическая схема алгоритма замены значений в матрице представлена на рис. 13.1.

На основании графической схемы

алгоритма (см. рис. 13.1) разработан

программный код:

Option Explicit

Sub PR1()

Dim i As Integer, j As Integer Dim N As Integer, m As Integer Dim C As Integer, , max As Integer

Dim k As Integer, p As Integer

Dim a(1 To 3, 1 To 3) As Integer

‘ нумерация с единицы

N = 3: m = 3

For i = 1 To N

For j = 1 To m

a(i, j) = Cells(i, j) ‘считывание A i,j

с рабочего листа Excel

Next i

For i = 1 To N

max = -32768

For j = 1 To m

If a(i, j) > max Then max = a(i, j): k = i: p = j

замена элементов

Next j

C = a(k, p)

a(k, p) = a(i, i)

a(i, i) = C ‘

Next i

For i = 1 To N

For j = 1 To m

Cells(i + 5, j) = a(i, j) ‘вывод массива

на лист Excel

Next j

Next i

End Sub

Пр и м е р 2. Найти строку сминимальным значением суммы элементов двумерного массива:

.

Все суммы строк элементов записать в одномерный массив.

Графическая схема алгоритма поиска строки с минимальным значением суммы элементов представлена на рис. 13.2, на основании которой разработан программный код PR2 формирования одномерного массива из минимальных значений сумм элементов строк матрицы:

Option Explicit

Sub PR2 ( )

Dim M As Integer, k, As Integer

Dim i As Integer, j As Integer

Dim min Аs Integer, N As Integer

Dim A(1 To 10, 1 To 10) As Integer

Dim S(1 to 10) As Integer

N =3: M = 3 : min = 32767

For i = 1 To N

For j = 1 To M

A(i, j) = Cells(i, j)‘ считывание A(i, j)

‘с рабочего листа Excel

Nextj

Next i

For i = 1 To N

S(i) = 0

For j = 1 To M

S(i) = S(i) + A(i, j )

Next j

Next i

For i = 1 To N

Cells(i+5, 5) =S(i) ‘вывод элементов массива

If S(i) <= min Then min = S(i): k = i

Nexti

Cells(5,11) =k‘вывод номера строкиcминимальным значением

суммы элементов

Cells(6,11) =min‘вывод минимальной суммы на рабочий листExcel

EndSub

13.2. Индивидуальные задания

Задание 1. Задать массив А(5, 5) с помощью генератора случайных чисел в интервале [– 10; 40]. Разработать ГСА и программный код обработки двумерного массива согласно своему варианту (табл. 13.1), результаты обработки массива вывести на рабочий лист Excel с пояснениями.

Таблица 13.1

Задание по обработке двумерного массива

Номер варианта

Задание

1

2

1

Поменять местами максимальные элементы, стоящие на главной и побочной диагоналях

2

Вычислить и запомнить сумму и количество положительных элементов каждого столбца матрицы. Результаты вычисления вывести на экран в виде двух строк

3

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

4

Найти в каждой строке матрицы максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно

5

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

Окончание табл.13.1

1

2

6

Найти в каждой строке наибольший элемент, поменять его и элемент главной диагонали местами

7

Найти строки с наибольшим и наименьшим значением суммы элементов. Вывести на печать найденные строки и суммы их элементов

8

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

9

Поменять местами значения элементов двумерного массива, симметричных относительно главной диагонали

10

Найти номер столбца двумерного массива, для которого среднеарифметическое значение его элементов минимально

11

В двумерном массиве заменить все элементы, меньшие значения суммы элементов первой строки, этой суммой

12

Задать матрицу с помощью генератора случайных чисел, находящихся в интервале [5; 20]. Найти столбец с минимальным значением произведения элементов

13

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

14

В двумерном массиве для каждого столбца найти: а) сумму нечетных элементов; б) количество положительных элементов; в) коли- чество элементов, значения которых кратны пяти

Задание 2. Создать массив С(6, 6) с помощью генератора случайных чисел в интервале [–20; 60].

Сформировать одномерный массив из элементов созданного двумерного массива по признаку, указанному в задании (выбирается согласно своему варианту). Разработать ГСА и программный код формирования одномерного массива и вывести массив на рабочий лист Excel:

1) из элементов четных строк, расположенных над главной диагональю;

2) из четных элементов побочной диагонали;

3) из элементов, значения которых кратны трем и которые расположены под главной диагональю;

4) каждый элемент, которого равен количеству элементов соответствующего столбца, больших числа n;

5) каждый элемент, которого равен сумме положительных элементов соответствующего столбца;

6) все его положительные элементы записать в один одномерный массив, а остальные – в другой;

7) каждый элемент, которого равен количеству нечетных отрицательных элементов соответствующего столбца;

8) каждый элемент, которого равен сумме элементов соответствующей строки, меньших числа n;

9) каждый элемент, которого равен сумме положительных элементов соответствующей строки, кратных четырем или пяти;

10) все его четные элементы записать в один одномерный массив, а нечетные – в другой;

11) из элементов, значения которых больше 10 и которые расположены над побочной диагональю;

12) каждый элемент, которого равен количеству положительных элементов соответствующей строки, кратных трем или семи;

13) из положительных элементов, значение которых кратны пяти;

14) из элементов, максимальных по модулю, в каждой строке;

15) из отрицательных элементов, расположенных под побочной диаго-налью.

Лабораторная работа 14

Соседние файлы в папке Лаб. работы по VBA