Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Второй реферат по Комп Графике.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
50.55 Кб
Скачать

Процедуры и функции

Подпрограммы являются одними из основных элементов языка. Они представляют собой процедуры и функции.

• Процедура начинается с оператора Sub и заканчивается End Sub, между которыми и помещается код. Процедуры могут вызываться или самим Visual Basic, например, реализованные в виде обработчиков событий, или другими процедурами и функциями. Имя процедуры обработки события состоит из имени объекта, знака подчёркивания и имени события:

Private Sub Command1_Click() 'Событие будет вызвано при нажатии на элемент управления "Кнопка"

...

End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Вызывается при перемещении указателя мыши в окне формы

...

End Sub

На самом деле Visual Basic реализует цикл обработки оконных сообщений Windows. В примере с формой, цикл отфильтрует сообщение WM_MOUSEMOVE и автоматически вызовет процедуру Form_MouseMove с параметрами: какие кнопки мыши были нажаты, координаты указателя. Данный механизм скрывает от разработчика некоторые аспекты программирования в среде Windows, позволяя ему сразу приступить к написанию пользовательского кода. В большинстве случаев, класс решаемых задач не потребует от программиста знаний о сообщениях и оконных функциях. Но Visual Basic не ограничивает программиста самому реализовать обработку оконных сообщений. Это позволяет очень гибко подходить к построению приложений, но и потребует достаточного опыта для написания подобного кода, который может вызвать нестабильную работу программы вплоть до аварийного завершения.

• Функции в VB начинаются с ключевого слова Function и заканчиваются End Function. Возвращаемое значение функции присваивается переменной, совпадающее с названием функции. Для того, чтобы досрочно прервать выполнение процедуры или функции, существуют специальные операторы Exit Sub и Exit Function. Visual Basic 6.0 содержит встроенные функции для работы с файловой системой, датой и временем, математические функции, функции взаимодействия с системой, функции для работы со строками, функции приведения типов и функции осуществляющие финансовые расчёты. Также существуют недокументированные функции, которые позволяют работать, например, с указателями.

Пример функции для решения квадратного уравнения:

Private Sub Main()

Dim RetX1 As Double, RetX2 As Double

Dim strStatus As String

strStatus = SolveQuadraticEquation(4, 6, 2, RetX1, RetX2) 'Решение уравнения 4*X^2 + 6*X - 2 = 0

'Выводим ответ

MsgBox "Решение: " & strStatus & vbCrLf & _

"X1 = " & RetX1 & vbCrLf & _

"X2 = " & RetX2, vbInformation

End Sub

'Функция решения квадратного уравнения

Public Function SolveQuadraticEquation(ByVal A As Double, _

ByVal B As Double, _

ByVal C As Double, _

ByRef X1 As Double, _

ByRef X2 As Double) As String

Dim D As Double

D = (B * B) - (4 * A * C) 'Получаем значение дискриминанта

If D >= 0 Then

X1 = (-B - Sqr(D)) / (2 * A) 'Вычисляем корни уравнения

X2 = (-B + Sqr(D)) / (2 * A)

SolveQuadraticEquation = "Решение получено" 'Функция возвращает сообщение о решении

Else

SolveQuadraticEquation = "Дискриминант < 0. Корней нет"

End If

End Function

В этом примере можно заметить модификатор ByVal перед аргументами A, B и C. Это способствует тому, что параметры в функцию будут переданы по значению. Модификатор ByRef, напротив, передаёт значение по ссылке. Для такого типа модификатора, функция может модифицировать значения переменных, переданных в качестве параметров. Visual Basic по-умолчанию всегда передаёт значения по ссылке, если ни один из модификаторов не был указан.