- •1. Простейшие конструкции языка Visual Basic
- •2. Функции языка Visual Basic
- •Функции преобразования типов данных
- •Функции даты и времени
- •3. Основные типы алгоритмических структур
- •If Условие Then
- •If Условие Then Действие 1 _
- •Цикл со счетчиком на языке vba.
- •Цикл со счетчиком на языке Visual Basic.
- •Циклы с условием на языке Visual Basic.
- •3.2 Работа с массивами Заполнение массива
- •Поиск в массивах
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