Автор работы: Пользователь скрыл имя, 25 Марта 2013 в 11:36, реферат
Visual Basic разработан в 1991 г. фирмой Microsoft как удобное и мощное средство
визуального проектирования программ, работающих в операционной среде Windows.
При относительной простоте языка, он позволяет быстро создавать программный
продукт, который мало отличается от подобных продуктов, созданных профессионалами
с использованием языков C и Pascal.
Модификация языка Visual Basic может использоваться в Microsoft Office, в частности в Excel и Access. Он обеспечивает простой доступ и эффективную обработку
данных различных систем управления базами данных (СУБД).
'Label4.Caption = A + B
Label4.Caption = C(3)
End Sub
Command2 Click
Private Sub Command2_Click()
End
End Sub
Функция отличается от процедуры. Она не вызывается подобно процедуре, а включается в состав выражения своим именем, как в математике: z=sin(x+2) – a/b. Функции в языке VB имеют следующий вид:
[Public / Private][Static]
Function <ИмяФункции> ([<CписокФормальныхПараметров>
[<Объявление переменных функции>]
[<Операторы>]
<ИмяФункции> = <Выражение>
[Exit Function]
End Function
Все служебные (ключевые) слова имеют такое же значение, как и в предыдущем случае. <Выражение> - это возвращаемое значение. Имени функции в теле функции должно быть присвоено значение хотя бы один раз. Список формальных параметров имеет вид:
[ByRef / ByVal] <ИмяПараметра1>[()] [As <ИмяТипа1>]
[, [ByRef / ByVal] <ИмяПараметра2>[()] [As <ИмяТипа2>] [, ….. ]]
Смысл ключевых слов и в этом случае такой же, как и в предыдущем случае.
Функция может быть вызвана из процедур обработки событий, пользовательских процедур и из других функций. Пользователь имеет возможность создания библиотеки процедур и функций.
Пример1: Повторение примера приведенного на рис. 17. и в предыдущем параграфе (сложение двух чисел):
(General) (Declarations)
Option Base 1
(General) Sum
Function Sum(A() As Single) As Single
A(3) = A(2) + A(1)
Sum = A(3)
End Function
Command1 Click
Private Sub Command1_Click()
'Dim A As Single
'Dim B As Single
Dim C(3) As Single
'A = Val(Text1.Text)
'B = Val(Text2.Text)
C(1) = Val(Text1.Text)
C(2) = Val(Text2.Text)
'Label4.Caption = A + B
Label4.Caption = Sum(C)
MsgBox "Нажми OK", 16, "2-е значение"
Label5.Caption = C(3)
End Sub
Command2 Click
Private Sub Command2_Click()
End
End Sub
Пример2: Составить программу для вычисления суммы ряда:
y=1 + 2/x + (2*3)/x^2 + (2*3*2)/x^3 + (2*3*2*3)/x^4 + ... принимая, что |x|>3.
Вычисления продолжать до тех пор, пока модуль разности между слагаемым и его предыдущим значением не станет меньше заданной величины (точности вычисления).
(General) Y
Function Y(x As Single, tv As Single) As Single
Dim pr!, sl!, s!
Dim m As Byte, zn%
s = 0: pr = 0: sl = 1: m = 2: zn = 1
Do While Abs(pr - sl) > tv
s = s + sl
pr = sl: sl = sl * m / x
m = m + zn: zn = -zn
Loop
Y = s
End Function
Command1 Click
Private Sub Command1_Click()
Dim x!, tv!
x = Val(Text1.Text)
tv = Val(Text2.Text)
Text3.Text = Str(Y(x, tv))
End Sub
Command2 Click
Private Sub Command2_Click()
End
End Sub
Язык VB допускает чтобы подпрограмма (процедура или функция) вызывала саму себя. В ряде случаев такое написание программы более компактно, но не надо забывать о многократно передаваемых параметрах, которые запоминаются и могут вызвать переполнение памяти.
Пример: Вычислить факториал целого числа.
(General) (Declarations)
Option Explicit
(General) fact
Private Function fact(x As Byte) As Long
Dim i As Byte
fact = 1
For i = 2 To x
fact = fact * i
Next
End Function
Form Click
Private Sub Form_Click()
Print fact(CByte(Text1.Text))
End Sub
Или функция с применением рекурсии:
(General) fact
Private Function fact(x As Byte) As Long
If x = 0 Or x = 1 Then fact = 1 Else fact = x * fact(x - 1)
End Function
Стандартных (встроенных) функций в языке VB более 200. Они доступны любому пользователю. По назначению их можно классифицировать по следующим группам:
Кратко рассмотрим некоторые из них:
1) Математические функции представлены в таблице 13.4.1. Аргумент x представляет собой число, имя числовой переменной или числовое выражение.
Таблица 13.4.1
Имя функции, параметр |
Возвращаемое значение |
Abs(x) |
Абсолютное значение числа |
Sin(x) |
Синус указанного в радианах угла |
Cos(x) |
Косинус указанного в радианах угла |
Tan(x) |
Тангенс указанного в радианах угла |
Atn(x) |
Арктангенс числа, результант в радианах |
Exp(x) |
Экспонента числа, e^x |
Log(x) |
Натуральный логарифм числа |
Fix(x) |
Число x без дробной части |
Int(x) |
Ближайшее целое <=x |
Sgn(x) |
Знак числа: 1, 0 или –1, если x>0, =0 или <0 |
Sqr(x) |
Квадратный корень числа |
Rnd[([x])] |
Датчик случайных чисел, Randomize-инициализатор |
2) Строковые функции
Таблица 13.4.2
Имя функции, параметры |
Возвращаемое значение |
InStr([I,] x1$, x2$) |
Позиция подстроки x2$ в строке x1$, поиск начинается с позиции I, с первой позиции по умолчанию, 0 – не найдена |
Left(x$, I) |
Левая подстрока длиной I строки x$ |
Right(x$, I) |
Правая подстрока длиной I строки x$ |
Mid(x$, n [, I]) |
Подстрока x$, начиная с позиции n, длиной I, до конца строки по умолчанию |
Len(x$) |
Длина строки x$ |
Lcase(x$) |
Строка x$ в нижнем регистре |
Ucase(x$) |
Строка x$ в верхнем регистре |
Trim(x$) |
Копия строки x$ без начальных и конечных пробелов |
Ltrim(x$) |
Копия строки x$ без начальных пробелов |
Rtrim(x$) |
Копия строки x$ без конечных пробелов |
Space(I) |
Строка из I пробелов |
String(I, <КодСимвола>) |
Строка из одинаковых символов длиной I |
StrComp(x$, x2$) |
Результат сравнения строк: -1, 0, 1, если x1$<x2$, x1$=x2$, x1$>x2$ |
3) Функции преобразования типа представлены в таблице 13.4.3.
Таблица 13.4.3
Имя функции, параметры |
Возвращаемое значение |
Asc(x$) |
Код первого символа строки x$ |
Chr(<КодСимвола>) |
Символ |
Oct(<ДесятиричноеЧисло>) |
Восьмеричное число |
Hex(<ДесятиричноеЧисло>) |
Шестнадцатеричное число |
Str(I) |
Преобразование числа I в строку |
Val(x$) |
Преобразование строки x$ в число |
CBool(<Выражение>) |
Преобразование выражения к типу Boolean |
CByte(<Выражение>) |
Преобразование выражения к типу Byte |
CCur(<Выражение>) |
Преобразование выражения к типу Currency |
CDate(<Выражение>) |
Преобразование выражения к типу Date |
CDbl(<Выражение>) |
Преобразование выражения к типу Double |
CInt(<Выражение>) |
Преобразование выражения к типу Integer |
CLng(<Выражение>) |
Преобразование выражения к типу Long |
CSng(<Выражение>) |
Преобразование выражения к типу Single |
CStr(<Выражение>) |
Преобразование выражения к типу String |
CVar(<Выражение>) |
Преобразование выражения к типу Variant |
Замечание: Chr(13) & Chr(10) – это клавиша “Ввод”.
4) Функции обработки даты и времени представлены в таблице 13.4.4.
Таблица 13.4.4
Имя функции, параметры |
Возвращаемое значение |
Date |
Текущая системная дата в формате: дд.мм.гг |
Time |
Текущее системное время в формате: чч:мм:сс |
Now |
Текущие дата и время в формате: дд.мм.гг чч:мм:сс |
Timer |
Количество секунд после полуночи |
Day(“<Дата>”) |
Число, 1-31 |
Month(“<Дата>”) |
Месяц, 1-12 |
Year(“<Дата>”) |
Год |
Hour(“<Дата>”) |
Час, 0-23 |
Minute(“<Дата>”) |
Минуты, 0-59 |
Second(“<Дата>”) |
Секунды, 0-59 |
Weekday(“<Дата>”,[ <1-й день недели>]) |
День недели, начиная с первого (подскажет VB), по умолчанию с воскресенья, 1- 7 |
DateAdd(“<Интервал>”, <Количество>, “<Дата>”) |
Дата, отличающаяся от заданной на определенное количество интервалов. Интервалы бывают: Yyyy – год; Q – квартал; M – месяц; Y – день (года); W – день (недели); WW – неделя; H – час; N – минута; S – секунда. |
5) Функции статуса представлены в таблице 13.4.5.
Таблица 13.4.5
Имя функции, параметры |
Возвращаемое значение |
IIf(<Выражение>, <Значение1>,<Значение2>) |
Если <Выражение>=True, то - <Значение1>, <Значение2> -в противном случае |
IsArray(<ИмяПеременной>) |
True, если переменная массив, False – в противном случае |
IsDate(<Выражение>) |
True, если выражение дата, False – в противном случае |
IsNumeric(<Выражение>) |
True, если выражение число, False – в противном случае |
IsMissing(<ИмяПараметра>) |
True – параметр передан в процедуру, False – в противном случае |
6) Системные функции.
К системным функциям относятся две функции, действие которых непосредственно зависит от операционной системы Windows. Это:
Функция InputBox имеет вид:
InputBox(<Приглашение>, [<Заголовок>] , [<НачЗначение>]
[, <XПозиция>, <YПозиция>] [, <HelpFile>] [, <Context>]) As String
где:
<Приглашение> - строковое выражение,
которое отображается в
<Заголовок> - строковая константа или переменная, которая отображается в заголовке окна;
<НачЗначение> - строковая константа или переменная, которая отображается в поле ввода как начальное значение;
<XПозиция>, <YПозиция> - координаты левого верхнего угла окна соответственно по горизонтали и вертикали (в твипах, 1440 tw = 1 дюйм, 567 tw = 1 см). По умолчанию окно отображается в центре экрана;
<HelpFile> и <Context> - параметры, которые позволяют открыть определенные файлы справочной системы.
В окне имеются две кнопки: “ОК” и “Отмена”. При нажатии кнопки “ОК” функция принимает значение, отображаемое в окне ввода. При нажатии кнопки “Отмена” функция принимает значение “пустышка” (“”).
Отобразить окно сообщений можно с помощью функции MsgBox() или с помощью оператора (процедуры) MsgBox. Разница между ними заключается в том, что функция отображает окно сообщений и возвращает некоторое значение, а оператор (процедура) только отображает окно сообщений.
Оператор (процедура) MsgBox имеет вид:
MsgBox <Приглашение> [, <Опции>] [, <Заголовок>] [, <HelpFile>] [, <Context>]
Функция MsgBox() имеет вид:
MsgBox( <Приглашение> [, <Опции>] [, <Заголовок>] [, <HelpFile>] [, <Context>])
As VbMsgBoxResult
Параметры <Приглашение>, <Заголовок>, <HelpFile>, <Context> такие же, как и в предыдущем случае. Параметр <Опции> есть сумма нескольких констант и имеет вид:
<Опции> = Button + Icon + Default + Modal + Extras (два последних могут не работать в русифицированной версии).
Для категорий Button, Icon, Default и Modal можно использовать только одну из допустимых констант. А для категории Extras допускается применение комбинации констант или их значений. Возможные константы приведены в таблице 13.4.6.:
Таблица 13.4.6
Константа |
Значение |
Описание |
Категория: Button: VbOKOnly VbOKCancel VbAbortRetryIgnore VbYesNoCancel VbYesNo VbRetryCancel |
0 1 2 3 4 5 |
Только кнопка OK Кнопки OK и Отмена Кнопки Стоп, Повторить и Пропустить Кнопки Да, Нет и Отмена Кнопки Да и Нет Кнопки Повторить и Отмена |
Категория Icon: VbCritical
VbQuestion
VbExclamation
VbInformation |
16
32
48
64 |
Отображает пиктограмму Critical Message (критическое сообщение) – крест Отображает пиктограмму Warning Query (запрос) – знак вопроса Отображает пиктограмму Warning Message (предупреждение) – восклицательный знак Отображает пиктограмму Information Message (информационное сообщение) – буква I |
Категория Default: VbDefaultButton1 VbDefaultButton2 VbDefaultButton3 VbDefaultButton4 |
0 256 512 768 |
По умолчанию активна первая кнопка По умолчанию активна вторая кнопка По умолчанию активна третья кнопка По умолчанию активна |
Категория Modal: VbAplicationModal VbSystemModal |
0 4096 |
Модальное диалоговое окно приложения Модальное диалоговое окно системы |
Категория Extras: VbMsgBoxHelpButton VbMsgBoxSetForeground VbMsgBoxRight VbMsgBoxRtlReading |
16384 65536 524288 1048576 |
Дополнительная кнопка для справки Отображение окна в фоновом режиме Текст выровнен по правому краю Текст отображается справа налево |
Возвращаемое функцией значение позволяет определить нажатую кнопку: