Задача 19. Посчитать число четных чисел в матрице А(5 x 5).
Решение. Алгоритм включает ввод матрицы, перебор ее значений с проверкой на четность, подсчет суммы четных значений и вывод результата. Для программирования задачи возьмем переменную (например, k) в качестве счетчика четных чисел. Проверку на четность реализуем с помощью функции Mod.
Вся программа:
Sub matrixNumber()
Dim i, j, k, A(5, 5) As Integer
For i = 1 To 5 ‘вводим матрицу из листа Excel:
For j = 1 To 5
A(i, j) = Cells(i, j)
Next j
Next
k = 0 ‘обнуляем счетчик четных чисел
For i = 1 To 5 ‘начинаем перебор элементов матрицы:
For j = 1 To 5
If A(i,j) Mod 2 = 0 Then ‘проверяем на четность
k = k + 1 ‘считаем четные значения
End If
Next
Next
MsgBox (k) ‘печатаем результат
End Sub
Задача 20. Посчитать сумму элементов, стоящих на четных позициях строк и столбцов матрицы А(7 x 7).
Решение. Здесь уже не важна четность элементов, важна четность позиций: элемент А(2,4), например, нам подходит, а элемент А(3,4) уже нет. Чтобы попасть на четную позицию, излишне использовать функцию Mod для счетчиков строк i и столбцов j. Достаточно изменять шаг каждого цикла с приращением 2.
Программа:
Sub matrixIndex()
Dim i, j, s, A(7, 7) As Integer
For i = 1 To 7
For j = 1 To 7
A(i, j) = Cells(i, j)
Next
Next
s = 0 ‘обнуляем хранилище суммы
For i = 2 To 7 Step 2 ‘перебираем только четные строки, начиная с 2
For j = 2 To 7 Step 2 ‘перебираем только четные столбцы, начиная с 2
s = s + A(i, j) ‘элементы A(i, j) лежат на пересечении четных строк и столбцов
Next
MsgBox (s)
End Sub
Задача 21. Обнулить элементы главной диагонали матрицы А(5 x 5).
Решение. В задачах, связанных с диагоналями матриц, следует обращать внимание на зависимость значений индекса j (счетчика столбцов) от i (счетчика строк). Если обнаружена закономерность, то можно избавиться от множества лишних операторов и сделать программу более внятной и компактной. Например, все элементы главной диагонали имеют номера столбцов, совпадающие с номерами строк, т.е. «типичный» представитель этой диагонали – элемент А(i,i). На побочной диагонали –это элемент А(n-i+1), если число столбцов матрицы равно n и счет строк начинается с 1. Поэтому для работы с этими диагоналями достаточно простого цикла, без вложенных.
Программа задачи:
Sub topDiagonal()
Dim i, j, A(5, 5) As Integer
For i = 1 To 5 ‘вводим матрицу из листа Excel:
For j = 1 To 5
A(i, j) = Cells(i, j)
Next
Next
For i = 1 To 5 ‘обнуляем диагональ
A(i, i) = 0
Next
For i = 1 To 5 ‘выводим матрицу на лист Excel:
For j = 1 To 5
Cells(i, j) = A(i, j)
Next
Next
End Sub
Таким образом, весь алгоритм обнуления диагонали –один простой цикл- For и одно присваивание.