Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Вычисление суммы, произведения и количества элементов в одномерном массиве
Вычисление суммы, произведения и количества элементов в одномерных массивах производится обязательно в цикле, перед которым сумма приравнивается к нулю, произведение – к единице, количество – к нулю. Например, в одномерном массиве, состоящем из пяти элементов, для вычисления суммы следует записать следующее:
sum = 0 For i = 1 To 5 sum = sum + A(i) Next i MsgBox (sum)
Для вычисления произведения:
pr = 1 For i = 1 To 5 pr = pr * A(i) Next i MsgBox (pr)
Для вычисления количества:
kol = 0 For i = 1 To 5 kol = kol + 1 Next i MsgBox (kol)
Если необходимо вычислить сумму, произведение или количество элементов массива, удовлетворяющих некоторому условию, то в цикле следует записать условный оператор, в котором проверяется это условие.
Пример Задан целочисленный массив А, состоящий из N элементов. Вычислить среднее арифметическое четных элементов и среднее геометрическое нечетных элементов.
Программный код
Option Explicit Sub PR16() Dim i As Integer, S As Integer Dim K1 As Integer, K2 As Integer, N As Integer Dim PR As Double, SA As Double, SG As Double Dim A(50) As Integer N = Val(InputBox(" Введите N" )) S = 0: PR = 1: K1 = 0: K2 = 0 For i = 1 To N A(i) = Cells(1, i) Next i For i = 1 To N If A(i) mod 2 = 0 Then S = S + A(i) ‘ вычисление суммы и K1 = K1 + 1 ‘ количества четных элементов End If If A(i) mod 2 < > 0 Then PR = PR * A(i) ‘ вычисление произведения и K2 = K2 +1 ‘ количества нечетных элементов End If Next i MsgBox(" S=" & S & " K1=" & K1) MsgBox(" PR=" & PR & " K2=" & K2) If K1 < > 0 Then SA = S / K1 ‘ вычисление среднего арифметического MsgBox(" SA=" & SA) Else MsgBox(" четных элементов нет" ) End If If K2 < > 0 And PR> 0 Then SG = PR ^ (1 / K2) ‘ вычисление среднего геометрического MsgBox(" SG=" & SG) Else MsgBox(" нечетных элементов нет" ) End If End Sub
Вычисление минимального и максимального элементов в одномерных массивах
При вычислении минимального или максимального элементов в одномерном массиве должны выполняться следующие условия: Y(i), если Y(i) > Max; Max = Max, если Y(i) £ Max.
Y(i), если Y(i) < Min; Min = Min, если Y(i) ³ Min.
За первоначальное значение максимального элемента можно принять очень маленькое число или первый элемент массива, а за первоначальное значение минимального элемента – очень большое число или первый элемент массива, т.е., например, если массив состоит из целых чисел, то Max = – 32000 или Max = Y(1), Min = 32000 или Min = Y(1).
Пример 1 Прочитать с рабочего листа Excel одномерный массив. Вычислить минимальный и максимальный элементы этого массива и поменять их местами. Новый массив поместить на тот же лист ниже первого. Минимальный и максимальный элементы также напечатать на рабочем листе.
Программный код
Sub PR17() Dim A(10) As Integer Dim i As Integer, R As Integer Dim Min As Integer, Max As Integer, IMin As Integer, IMax As Integer For i = 1 To 10 A(i) = Cells(1, i) ‘ ввод массива Next i Min = 32000: Max = –32000 For i = 1 To 10 If A(i) > Max Then Max = A(i) ‘ вычисление максимума IMax = i ‘ и его номера End If If A(i) < Min Then Min = A(i) ‘ вычисление минимума IMin = i ‘ и его номера End If Next i Cells(2, 1) = " Max=" Cells(2, 2) = Max Cells(2, 4) = " IMax" Cells(2, 5) = IMax Cells(3, 1) = " Min=" Cells(3, 2) = Min Cells(3, 4) = " IMin" Cells(3, 5) = IMin R = A(IMax) ‘ меняем местами A(IMax) = A(IMin) ‘ максимальный и A(IMin) = R ‘ минимальный элементы For i = 1 To 10 Cells(5, i) = A(i) ‘ вывод массива Next i End Sub
В результате работы этой программы на рабочем листе Excel появятся следующие данные (рис. 5).
Рис. 5. Вычисление минимального и максимального элементов массива Пример 2 Задан одномерный массив Х(N). Вычислить максимальный из отрицательных элементов этого массива. Программный код Sub PR18() Dim Х(100) As Integer Dim i As Integer, N As Integer, Max As Integer N = Val(InpurBox(“Введите N”)) For i = 1 To 10 Cells(1, i) = Int(Rnd * 100 – 50) X(i) = Cells(1, i) Next i Max = –32000 For i = 1 To 10 If X(i) > Max And X(i) < 0 Then Max = X(i) Next i MsgBox(“Max=” & Max) End Sub
Двумерные массивы
Двумерные массивы представляют набор однотипных элементов, расположенных в несколько строк и столбцов, например, двумерный массив из целых чисел выглядит следующим образом:
4 –3 2 4 5 6 3 2 4 0 7 1 2 6 0 12 24 25 8 4 0 4 5 8 3
Каждый элемент двумерного массива обозначается при помощи имени и индексов, заключенных в круглые скобки, например, A(i, j), X(4, 3), P(2× i, j+1), первый индекс – номер строки, второй – номер столбца. Двумерный массив, называемый также матрицей, описывается при помощи оператора Dim.
Dim A(10, 10) As Тип ‘ нумерация с нуля Dim A(1 To 10, 1 To 10) As Тип ‘ нумерация с единицы
Матрица, у которой количество строк равно количеству столбцов, называется квадратной матрицей.
Ввод двумерного массива 1. Считывание массива с рабочего листа Excel.
For i = 1 To N For j = 1 To M A(i, j) = Cells(i, j) Next j Next i
‘ N – количество строк массива, M – количество столбцов массива. 2. Формирование массива на рабочем листе Excel при помощи счетчика случайных чисел, а затем считывание массива с рабочего листа.
Randomize For i = 1 To N For j = 1 To M Cells(i, j) = Int(Rnd * 100 – 50) A(i, j) = Cells(i, j) Next j Next i Вывод двумерного массива Вывод двумерного массива на рабочий лист Excel выглядит следующим образом:
For i = 1 To N For j = 1 To M Cells(i, j) = A(i, j) Next j Next i Формирование матрицы
При формировании квадратной матрицы будем пользоваться следующими инструкциями. Общий вид квадратной матрицы, например размерности 4´ 4, выглядит следующим образом:
В квадратной матрице выделяются главная и побочная диагонали. Условия нахождения элемента на главной или побочной диагонали показаны на рис. 7. Относительно каждой диагонали элемент матрицы может находиться выше или ниже диагонали. Условия нахождения элемента в каждой из частей матрицы показаны на рис. 8. I, J – номера строки и столбца, в которых находится элемент матрицы.
Рис. 7. Главная и побочная диагонали
Рис. 8. Условия нахождения элемента выше или ниже диагонали
Относительно обеих диагоналей элемент матрицы может находиться в одной из четвертей. Условия нахождения элемента в каждой из них показаны на рис. 9.
Рис. 9. Нахождение элемента в одной из четвертей
Пример 1 Сформировать матрицу X(N, N) вида
На побочной диагонали матрицы стоят 5, на главной диагонали стоят 4, в I четверти – 0, во II четверти – 2, в III четверти – 3, в IV четверти – 1.
Программный код Option Explicit Sub PR22() Dim a(10, 10) As Integer Dim N As Integer Dim i As Integer Dim j As Integer N = Val(InputBox(" Введите N" )) Range(Cells(1, 1), Cells(100, 100)).Select ‘ выделяет диапазон ячеек Selection.Clear ‘ очищает выделенный диапазон ячеек Cells(1, 1).Select ‘ снимает выделение For i = 1 To N For j = 1 To N If i + j = N + 1 Then a(i, j) = 5 If i = j Then a(i, j) = 4 If i < j And i + j < N + 1 Then a(i, j) = 0 If i < j And i + j > N + 1 Then a(i, j) = 2 If i > j And i + j > N + 1 Then a(i, j) = 3 If i > j And i + j < N + 1 Then a(i, j) = 1 Next j Next i Cells(1, 1) = " Полученная матрица" For i = 1 To N For j = 1 To N Cells(i + 1, j) = a(i, j) Next j Next i End Sub Пример 2 Сформировать матрицу X(N, N) вида
Описание и вывод матрицы будут как в предыдущем примере, здесь и далее будем рассматривать только фрагмент программы, в котором формируется матрица.
For i = 1 To N For j = 1 To N X(i, j) = 0 If i = j Then X(i, j) = i If i + j = N + 1 Then X(i, j) = N + 1 – i Next j Next i
Пример 3 Сформировать матрицу Y(N, N) вида
For i = 1 To N For j = 1 To N If i = 1 Or i = N Or j = 1 Or j = N Then Y(i, j) = 1 Else Y(i, j) = 0 Next j Next i
Пример 4 Сформировать матрицу Z(N, N) вида
For i = 1 To N For j = 1 To N If i > = j Then Z(i, j) = j Else Z(i, j) = 0 Next j Next i
Пример 5 Сформировать матрицу Q(N, N) вида
For i = 1 To N For j = 1 To N If (i +j) mod 2 = 0 Then Q(i, j) = 1 Else Q(i, j) = 2 Next j Next i
Популярное:
|
Последнее изменение этой страницы: 2017-03-08; Просмотров: 1005; Нарушение авторского права страницы