Суммирование и перемножение элементов массивов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Суммирование и перемножение элементов массивов



 

Нахождение суммы или произведения всех или некоторых элементов массива является одной из основных операций при работе с массивами.

Пример. Найти сумму элементов одномерного массива .

Чтобы просуммировать все элементы массива, необходимо переменной, в которой будет храниться значение суммы, присвоить нулевое значение, а за­тем в цикле нарастить ее величину, последовательно прибавляя к ней значение каждого очередного элемента массива, начиная с первого и заканчивая послед­ним.

 

Dim A(1 То 15) As Single, i As Integer, S As Single

'Ввод массива

• • •

S = 0 'Начальное значение суммы

For i = 1 То 15

S = S + A(i) 'Накапливание суммы

Next i

Если требуется вычислить произведение, то в приведенном фрагменте достаточно заменить начальное значение переменной на 1, а знак «+» на «*».

Пример. Вычислить произведение элементов, расположенных ниже глав­ной диагонали квадратной матрицы .

 

  1 2 3 4 5
1 54 8 13 46 79
2 13 46 89 5 6
3 3 54 9 3 1
4 3 48 9 7 2
5 4 8 9 6 6

 

Главной диагональю квадратной матрицы называется диагональ, прохо­дящая через левый верхний и правый нижний угол, т. е. совокупность элемен­тов с одинаковыми индексами. Соответственно элементы, расположенные на диагонали, проходящей через правый верхний и левый нижний угол, составля­ют побочную диагональ матрицы.

Для перебора элементов матрицы ниже главной диагонали организуем двойной цикл. Во внешнем цикле будем изменять номер строки. Как видно из таблицы индекс i (номер строки) для элементов ниже главной диагонали изменя­ется от 2 до 5. Во внутреннем цикле будем изменять номер столбца. Как видно, что для второй строки индекс j изменяется от 1 до 1, для третьей - от 1 до 2, для четвертой - от 1 до 3, для пятой - от 1 до 4, т. е. в общем случае - от 1 до .

 

Sub Massiv7()

Dim B(l To 5, 1 To 5) As Single

Dim i As Integer, j As Integer

Dim P As Single 'Произведение

  

'Ввод матрицы

'----------------

 

'Начальное значение произведения

Р = 1

For i = 2 To 5

For j = 1 To i - 1

'Накопление произведения

Р = Р * B(i, j)

Next j

Next i

 

End Sub

 

Выбор элементов из массива

 

Задачи этого типа могут формулироваться по-разному, но в общем случае сводятся к выбору из данного массива элементов с заданными свойствами. Например: в заданном числовом массиве подсчитать количество положительных, отрицательных или нулевых элементов; в массиве целых чи­сел подсчитать количество четных или нечетных элементов; в таблице функции выбрать значения по модулю большие (или меньшие) заданного; найти сумму или произведение элементов из определенного интервала и т. п.

 

Пример. Сформировать вектор Y, состоящий из элементов кратных трём целочислен­ного вектора .

Для решения поставленной задачи необходимо в цикле для каждого эле­мента вектора X проверить, делится ли значение элемента на 3 без остатка. Если это условие выполняется, то добавить значение элемента в вектор Y. Так как нельзя заранее точно определить количество элементов в векторе Y, то следует описать его как динамический.

 

Sub Massiv8()

Dim Y() As Integer

Dim n As Integer 'Количество элементов в векторе Y

Dim X(35) As Integer

Dim i As Integer

'Ввод вектора Х

'-----------------

'Формирование вектора Y

n = О

For i = 1 To 35

If X(i) Mod 3 = 0 Then n = n + 1

ReDim Preserve Y(n)

Y(n) = X(i)

End If

Next

 

'Вывод массива

'---------------------

End Sub

 

Пример. Подсчитать количество элементов матрицы , значения ко­торых лежат в диапазоне от -30 до 50.

 

Sub Massiv9()

Dim A(l To 6, 1 To 8) As Single

Dim i As Integer, i As Integer

Dim n As Integer 'Искомая величина

'Ввод матрицы А

'---------------------

'Подсчет количества элементов по условию задачи

п = 0

For i = 1 To 6

For j = 1 To 8

If A(i, j) >= -30 And A(i, j) <= 50 Then

   n = n + 1

End If

Next j

Next i

End Sub



Поделиться:


Последнее изменение этой страницы: 2021-11-27; просмотров: 44; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.186.226 (0.007 с.)