Задача 22. Дана матрица размером 5 x 5. Посчитать среднее значение элементов матрицы, расположенных строго ниже главной диагонали.

Решение. Для каждой строки этого куска матрицы номера столбцов нужных элементов изменяются от первого до пересекающегося с диагональю. На диагонали номер столбца совпадает с номером строки, т.е. j = i . Поскольку диагональ по условию не включена, то j изменяется не до i, а до i – 1.

 

Sub Матрица()

Dim M(5, 5) As Integer, S As Integer, k As Integer, Avg As Single

For i = 1 To 5

For j = 1 To 5

M(i,j) = InputBox("Введите элемент матрицы М(" & i & "," & j & ")")

Next

Next

S = 0

k = 0

For i = 2 To 5 ‘номера строк берутся от 2 до конца матрицы

For j = 1 To i – 1 ‘номера столбцов берутся от 1 до диагонали

S = S + M(i, j)

k = k + 1

Next

Next

Avg = S / k

MsgBox "Среднее значение = " & Avg

End Sub

 

Задача 23. Обнулить элементы матрицы А(5 x 5), лежащие правее ее главной диагонали и левее побочной, включая диагональные элементы.

Решение. Диагонали делят матрицу на 4 части, в задаче требуется обнулить верхнюю четверть. Обратите внимание, что для каждой строки этого куска обнуляются элементы, лежащие между диагоналями, т.е. из столбцов с номерами: для 1-ой строки – от 1 до 5, для 2-ой строки – от 2 до 4, для 3-ей - от 3 до 3, т.е., в общем случае, для i –той строки –от i до 5-i+1.

Программа:

 

Sub matrixKvota()

Dim i, j, A(5, 5) As Integer

For i = 1 To 5

For j = 1 To 5

A(i, j) = Cells(i, j) ‘ввод матрицы

Next

Next

For i = 1 To 3 ‘номера строк берутся от 1 до середины матрицы

For j = i To 5 - i + 1 ‘номера столбцов берутся от главной до побочной диагонали

A(i, j) = 0

Next

Next

For i = 1 To 5

For j = 1 To 5

Cells(i, j) = A(i, j) ‘вывод матрицы

Next

Next

End Sub

 

Задачи для самостоятельной работы:

1. Посчитать количество нулевых элементов в матрице А(5x5).

2. Перенести элементы, кратные трем, из массива А(5x 5) в массив В.

3. Обнулить элементы матрицы М(5x 5), лежащие ниже ее побочной диагонали, включая диагональные.

4. Поменять местами симметрично элементы верхней четверти и нижней четверти матрицы А(5x5), разделенной диагоналями на четыре части.

 

Лабораторная работа № 8. Задачи с данными строкового типа