End Sub. Создать функцию, которая находит сумму всех элементов в двумерном массиве

Результат работы:

Пример

Создать функцию, которая находит сумму всех элементов в двумерном массиве.

Алгоритм

1.В окне базы данных нажать вкладку Модули/Создать и записать функцию:

Public Function СУММА(A() As Integer) As Integer

СУММА = 0

For i = 1 To UBound(A, 2)

For j = 1 To UBound(A, 2)

СУММА = СУММА + A(i, j)

Next j

Next i

End Function

2. В конструкторе форм создать форму с элементами: 2 текстовых поля под вывод матрицы и суммы элементов массива и кнопку, по нажатию которой пишем процедуру:

Private Sub Кнопка8_Click()

Dim A(3, 3) As Integer, i, j As Byte, s As String, y As Integer

' Заполнение матрицы через генератор случайных чисел

For i = 1 To 3

For j = 1 To 3

A(i, j) = Int(10 * Rnd(5))

s = s & Str(A(i, j)) & " "

Next j

s = s & Chr(13) & Chr(10)

Next i

Поле0.Value = s

' Вызов функции СУММА с передачей параметра А

y = СУММА(A)

Поле6.Value = Str(y)

End Sub

Пример

Вычислить n!

n!=1*2*3*4*5* …

При решении этой задачи удобно использовать понятие рекурсивности объекта.

Объект называется рекурсивным, если он целиком или частично определяет самого себя. Рекурсивной функцией-процедурой называется такая функция-процедура, которая вызывает саму себя.

Алгоритм.

1. Создаём модуль с функцией:

Public Function factorial(n As Integer) As Double

factorial = 1

If n > 0 Then

‘ Рекурсивный вызов функции

factorial = n * factorial(n - 1)

End If

End Function

2. В конструкторе создаём форму с 2 текстовыми полями для ввода n и вывода значения факториала и кнопкой, по нажатию которой пишется процедура:

Private Sub Кнопка8_Click()

Dim n As Integer, y As Double

n = Val(Поле0.Value) ‘ В переменную n записываем преобразованное в

‘ число значение текстового поля0

y = factorial(n)

Поле6.Value = Str(y)

End Sub

Классические задачи программирования: сортировка,

Поиск

Пример

Сортировка методом “пузырьков”.

1. Функция для сортировки:

Public Function сортировка(массив() As Variant) As Boolean

Dim a As Boolean, t As Variant, x As Integer

For x = LBound(массив) To UBound(массив)

If IsNull(массив(x)) Then Exit Function

Next x

Do

a = False

For x = UBound(массив) To (LBound(массив) + 1) Step -1

If массив(x - 1) > массив(x) Then

t = массив(x - 1)

массив(x - 1) = массив(x)

массив(x) = t

a = True

End If

Next x

For x = (LBound(массив) + 1) To UBound(массив)

If массив(x - 1) > массив(x) Then

t = массив(x - 1)

массив(x - 1) = массив(x)

массив(x) = t

a = True

End If

Next x

Loop While a

сортировка = True

End Function

2. Создадим форму с двумя текстовыми полями и кнопкой и по событию Нажатие кнопки пишем процедуру для вызова этой функции:

Private Sub Кнопка0_Click()

Dim массив() As Variant


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: