Решение
задач С ФОРМИРОВАНИЕМ одноМЕРНОГО
МАССИВА иЗ двумернОГО
Цель работы: изучение особенностей алгоритмизации и программирования задач, связанных с обработкой дву- и одномерных массивов в одной программе.
13.1. Примеры решения задач
Рассмотрим принцип обмена между элементами массива.
Пример 1. Поменять местами в каждой строке матрицы максимальный элемент и элемент, расположенный на главной диагонали:
Выполним замену значений элементов в матрице
.
Графическая схема алгоритма замены значений в матрице представлена на рис. 13.1.
На основании графической схемы
алгоритма (см. рис. 13.1) разработан
программный код:
Sub PR1()
Dim i As Integer, j As Integer
Dim N As Integer, m As Integer
Dim C As Integer, , max 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
|
|
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 AsInteger, k, AsInteger
Dim i AsInteger, j AsInteger
Dim min Аs Integer, N AsInteger
Dim A(1 To 10, 1 To 10) AsInteger
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
Next j
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
Next i
Cells(5,11) = k ‘вывод номера строки c минимальным значением
суммы элементов
Cells(6,11) = min ‘вывод минимальной суммы на рабочий лист Excel
End Sub
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 |
В двумерном массиве для каждого
столбца найти: а) сумму нечетных элементов; б) количество положительных
элементов; в) коли- |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.