Решение
 задач   С  ФОРМИРОВАНИЕМ  одноМЕРНОГО
МАССИВА  иЗ  двумернОГО 
Цель работы: изучение особенностей алгоритмизации и программирования задач, связанных с обработкой дву- и одномерных массивов в одной программе.
13.1. Примеры решения задач
Рассмотрим принцип обмена между элементами массива.
Пример 1. Поменять местами в каждой строке матрицы максимальный элемент и элемент, расположенный на главной диагонали:
Выполним замену значений элементов в матрице
 .
.
 Графическая схема алгоритма замены значений в матрице
представлена на рис. 13.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.  Найти строку
П р и м е р 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).
Ссылка на скачивание - внизу страницы.