Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УчебноеПособие по VB_6.doc
Скачиваний:
57
Добавлен:
24.12.2018
Размер:
3.17 Mб
Скачать

Функции пользователя

Наряду с процедурами имеются и пользовательские функции, синтаксис которых похож на синтаксис пользовательских.

Синтаксис функции пользователя:

Function ИмяФункции ( аргумент1 As тип, [, аргумент2 As тип ] ) As тип

< операторы >

ИмяФункции = результат

End Function.

В качестве аргументов могут быть константы, переменные или выражения. В конце процедуры записывается оператор ИмяФункции = результат , здесь ИмяФункции – простая переменная, имя которой совпадает с именем функции. Этим оператором имени функции передается вычисленное значение.

Использование пользовательских функций

Функции пользователя используются так же, как и встроенные функции Visual Basic. То есть, они используются в выражениях справа от знака равно, могут включаться также в оператор Print:

< имя переменной > = ИмяФункции ( аргумент 1 [, аргумент 2, …])

Print ИмяФункции

Допускаетсятакже использование функции в следующем формате:

ИмяФункции (аргумент 1 [, аргумент 2, …])

Внутри функции можно объявлять локальные переменные, указывая их тип: статические или динамические. Переменные уровня формы доступны всем функциям, подключенным к данному модулю или форме. Преждевременный выход из функции осуществляется с помощью оператора Exit Function.

Подключение пользовательских функций и процедур к текущей форме осуществляется следующим образом:

  • открыть окно Программы (Code);

  • выбрать пункт меню Tools, Add Procedure;

  • указать в диалоговом окне имя процедуры;

  • установить переключатель Function;

  • щелкнуть по кн. OK.

Пример 3.4. Вычислить значение Sin(x) c точностью 0.001. Математическая модель решения данной задачи представляется следующей формулой:

Вычисление факториала оформим в виде процедуры. Входным параметром функции будет целое число одинарной длины n – факториал. Функция возвращает целое число двойной длины.

Public Function Factorial(n As Integer) As Double

Dim i As Integer, F As Double

F = 1

For i = 1 To n

F = F * i

Next i

Factorial = F

End Function

----------------------------------------------------------

Private Sub Form_Click()

Dim n As Integer, F As Double, k As Integer

Dim x As Single, y As Single, s As Single

x = Val(InputBox("Аргумент X"))

e = Val(InputBox("Точность вычисления"))

y = 1 + e: s = 0: k = 1

While Abs(y) >= e

y = (-1) ^ (k - 1) * x ^ (2 * k - 1) / Factorial(2 * k - 1)

s = s + y

k = k + 1

Wend

Print Str$(s)

End Sub

В Visual Basic 6.0 функции имеют новую возможность: они могут возвращать массивы. Можно, например, возвратить массив целых чисел без предварительного преобразования его в строку и обратно:

Private sub Form_Load()

Dim b As Byte, I As Integer

Dim ReturnArray() As Byte

I=Cbite(54)

ReturnArray() = ArrayFunction(b)

For I=0 To Ubound(ReturnArray)

Debug.Print ReturnArray(i)

Next I

End Sub

---------------------------------------------------------------------

Public Function ArrayFunction(b As Byte) As Byte()

Dim x(2) As Byte()

x(0)=b

x(1)=b+Cbyte(200)

x(2)=b+b

ArrayFunction = x

End Function

В данном примере в процедуре Form_Load массиву ReturnArray присваивается массив, возвращаемый функцией ArrayFunction, состоящий из трех элементов.

3.2.5. Операторы для управления вычислительным

процессом

Операторы выбора

Оператор выбора позволяет выбрать одну альтернативу из двух (условный оператор IF) или из многих (оператор Select Case).

Условный оператор IF

Различают одностроковые и многостроковые условные операторы If.

Синтаксис однострокового оператора IF:

а) простой одностроковый оператор (рис. 3.6, 3.7):

If <условие> Then <операторы>

При выполнении оператора If проверяется условие и, если оно исти­нно, то выполняется действие, указанное после оператора Then. Если вы­ражение ложно, то управление передается на оператор, следующий за опе­ратором If.

П римеры:

If x<e Then Goto m1

IF x<a Then y=Sin(x)*Exp(2^Log(x)): Goto m2

б) простой расширенный оператор If

If <условие> Then <операторы1> Else <операторы 2

При выполнении оператора If, если условие истинно, то выполняются операторы, указанные после оператора Then, в ином случае выполняются операторы, следующие за оператором Else. После выполнения соответству­ющей группы операторов управление передается на оператор, следующий за оператором If.

После операторов Then и Else может быть указано несколько опера­торов, разделенных двоеточием. Однако, число операторов ограничено дли­ной строки. Кроме того, чтение, анализ и поиск ошибок в длинных строках затруднителен

. Синтаксис многострокового оператора IF:

а) простой

If <условие> Then

<перваягруппа операторов>

Else

<вторая группа операторов>

End If

б) расширенный

If <условие> Then

<первая группа операторов>

ElseIf <условие> Then

<вторая группа операторов>

Else

<третья группа операторов>

End If

При записи операторов следует обращать внимание на структуру за­писи. Структура должна соответствовать той, что указана в примере.

Достоинство многострокового оператора If состоит в том, что число операто­ров в группах не ограничено.