Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA Л19 Л20.docx
Скачиваний:
5
Добавлен:
02.12.2018
Размер:
254.92 Кб
Скачать

2. Функции языка Visual Basic

ИмяФункции (СписокАргументов)

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

Математические функции

Таблица 4. Математические функции

Функция

Возвращаемое значение

Sin (А)

синус числа А

Cos (A)

косинус числа А

Tan (A)

тангенс числа А

Atn(A)

арктангенс числа А

Sqr(A)

квадратный корень из числа А

Log (A)

логарифм числа А

Ехр(А)

показательная функция числа А

Int (A)

наибольшее целое число, не превышающее число А

CInt (A)

целое число, ближайшее к числу А

Fix (A)

целое число, равное числу А без дробной части

Abs (A)

абсолютное значение числа А

Rnd(A)

случайное число

Пример. Вычислить гипотенузу прямоугольного треугольника, если известны его катеты.

Если dblA и dblB — это переменные, содержащие значения катетов прямоугольного треугольника, а переменная dblC содержит значение гипотенузы, то ее вычисление можно провести с помощью следующей программы:

Dim dblA, dblB, dblC As Double

Sub Command1_Click()

dblA = 2

dblB = 3

dblC = Sqr(dblA^2 + dblB^2)

Form1.Print "Гипотенуза равна:", dblC

End Sub

Строковые функции

В строковых функциях строками являются либо аргументы, либо возвращаемые функциями значения.

Функция определения длины строки. В функции определения длины строки Len(Строка$) аргументом является строка Строка$, а возвращает функция числовое значение длины строки (количество символов в строке). Синтаксис функции:

Len(Строка$)

Пусть аргументом функции Len будет строка "информатика", тогда значением целочисленной переменной intДлинаСтроки = Len("информатика") будет число 11.

Функции вырезания подстроки. В функциях вырезания подстроки (части строки) Left (Строка$, Длина%), Right(Строка$, Длина%) и Mid(Строка$, Позиция%, Длина%) аргументами являются строка Строка$ и числа или целочисленные переменные Длина% и Позиция%. Функции возвращают строковое значение, равное длине вырезанной подстроки. Синтаксис функций:

Left(Строка$, Длина%)

Right(Строка$, Длина%)

Mid(Cтpокa$, Позиция%, Длина%)

Значением функции Left является левая подстрока, которая начинается от крайнего левого символа строки и имеет количество символов, равное значению числового аргумента Длина%.

Пусть аргументом функции Left будет строка "информатика", тогда значением строковой переменной strЛеваяПодстрока = Left ("информатика", 2) будет строка "ин".

Значением функции Right является правая подстрока, которая начинается от крайнего правого символа строки и имеет количество символов, равное значению числового аргумента Длина%.

Пусть аргументом функции Right будет строка "информатика", тогда значением строковой переменной strПраваяПодстрока = Right ("информатика", 4) будет строка "тика".

Значением функции Mid является подстрока, которая начинается от позиции символа, заданной числовым аргументом Позиция%, и длиной, равной значению числового аргумента Длина%.

Пусть аргументом функции Mid будет строка "информатика", тогда значением строковой переменной strПодстрока = Mid ("информатика", 3,5) будет строка "форма".

Функции ввода и вывода

Функция InputBox (ОкноВвода). Для ввода данных в программу через текстовое поле на диалоговой панели используется функция InputBox (ОкноВвода). В качестве аргументов этой функции выступают три строки и значением функции является также строка. Синтаксис функции следующий:

InputBox (Приглашение$, Заголовок$ [, ПоУмолчанию$]

В процессе выполнения этой функции появляется диалоговая панель с текстовым полем. В строке заголовка панели будет печататься значение второго аргумента Заголовок$, на самой панели печатается значение аргумента Приглашение$, в текстовом поле печатается значение аргумента ПоУмолчанию$ (если это значение отсутствует, содержимое текстового окна также отсутствует).

Введенная пользователем в текстовом поле строка становится значением функции.

Dim strA As String

Sub Command1_Click()

strA = InputBox (“Введите текст”, ”Функция ОкноВвода”)

Form1.Print strA

End Sub

Рис. 8. Функция InputBox

В процессе выполнения программы в текстовом окне введем строку «Привет!», которая будет присвоена строковой переменной strA и затем напечатана на форме.

Рис. 9. Функция InputBox и результат ее действия

Функция MsgBox (ПанельСообщений). В простейшем случае функция MsgBox может работать в режиме оператора и использоваться для вывода сообщений не на форме, а на специальной панели сообщений. Синтаксис функции в режиме оператора использует запись аргументов без скобок:

MsgBox Сообщение$ [, Параметры] [, Заголовок$]

Строка Сообщение$ выводится на панели сообщений, аргумент Параметры определяет внешний вид панели, а строка Заголовок$ печатается в строке заголовка панели. Последние два аргумента, заключенные в квадратные скобки, не являются обязательными.

Действие функции MsgBox в операторной форме заключается в том, что на экране появляется окно сообщений. После нажатия кнопки Ok на панели сообщений выполнение программы продолжается.

В качестве примера использования функции рассмотрим простейшую программу, выводящую на панель сообщений слово «Привет!». Следует обратить внимание на необходимость вывода запятой вместо отсутствующего аргумента.

Private Sub Command_Button1_Click()

MsgBox "Привет!", , "Функция ПанельСообщений"

End Sub

Рис. 10. Функция MsgBox (ПанельСообщений)

В случае записи аргументов в скобках, функция MsgBox получает определенное значение, которое может быть присвоено какой-либо переменной. Синтаксис функции в этом случае следующий:

MsgBox(Сообщение$ [, Параметры] [, Заголовок$])

Внешний вид панели сообщений можно менять, используя различные значения параметров. На панели можно разместить пиктограммы разных видов и несколько наборов управляющих кнопок. Задать определенную пиктограмму или комбинацию кнопок можно как при помощи служебных слов, так и при помощи числовых кодов.

Таблица 5. Значения Параметров, определяющие вид панели сообщений

Объект панели сообщений

Код

Пиктограмма

vbCritical

16

vbQuestion

32

vbExclamation

48

vbInformation

64

Объект панели сообщений

Код

Набор кнопок

0

ОК

1

ОК, Отмена

2

Стоп, Повтор, Пропустить

3

Да, Нет, Отмена

4

Да, Нет

5

Повтор, Отмена

С помощью одного числа, являющегося суммой кодов нескольких параметров, можно одновременно установить определенную пиктограмму и определенную комбинацию кнопок, размещенных на панели сообщений. Например, число 36 можно рассматривать как сумму чисел 32 (код пиктограммы «Вопрос») и 4 (код комбинации кнопок Да, Нет).

В процессе использования условно-бесплатных программ пользователю часто предлагается зарегистрироваться. Процесс регистрации достаточно просто можно запрограммировать.

Dim bytA As Byte

Sub Command1_Click()

bytA = MsgBox("Вы хотите зарегистрироваться?", _

36, "Вопрос")

Form1.Print bytA

End Sub

Функция MsgBox выводит панель сообщений с текстом, пиктограмой вопроса и кнопками Да, Нет. Нажатие на кнопку приводит к определению значения функции, зависящего от выбранной кнопки.

Таблица 6. Значения функции MsgBox

Значения функции

Нажатая кнопка

1

ОК

2

Отмена

3

Стоп

4

Повтор

5

Пропустить

6

Да

7

Нет

Далее значение функции MsgBox присваивается целочисленной переменной bytA (нажатие на кнопку Да соответствует числу 6) и печатается на форме.

Рис. 11. Использование функции MsgBox

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]