АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

End Function

Читайте также:
  1. Correlation of style, norm and function in the language
  2. End Function
  3. End Function
  4. Measurement of AC frequency and phase angle. Design and function of frequency and phase meters.
  5. Other syntactical functions of the Infinitive
  6. Predicative Constructions that Function as Objects
  7. Stylistic function notion
  8. The notion of style in functional stylistics
  9. WAYS OF RENDERING THE LEXICO-GRAMMATICAL MEANINGS AND FUNCTIONS OF THE ENGLISH INFINITIVE
  10. Блок обчислення математичних функцій Math 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

Dim test As Boolean

массив = Array(4, 12, 3, 7, 9, 1) ‘задание массива

For i = LBound(массив) To UBound(массив) ‘ печать исходного массива

s = s & массив(i) & " "

Next i

Поле1.Value = s

test = сортировка(массив) ‘ вызов функции “Сортировка”

s = " "

For i = LBound(массив) To UBound(массив) ‘ печать результата

s = s & массив(i) & " "

Next i

Поле3.Value = s

End Sub

 

Результат:

 

 

Пример

Быстрая сортировка

Алгоритм такой сортировки очень элегантен за счёт рекурсивного вызова функции.

Пишем функцию для быстрой сортировки:

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)