Задача 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 и одно присваивание.