Автор работы: Пользователь скрыл имя, 25 Марта 2013 в 11:36, реферат
Visual Basic разработан в 1991 г. фирмой Microsoft как удобное и мощное средство
визуального проектирования программ, работающих в операционной среде Windows.
При относительной простоте языка, он позволяет быстро создавать программный
продукт, который мало отличается от подобных продуктов, созданных профессионалами
с использованием языков C и Pascal.
Модификация языка Visual Basic может использоваться в Microsoft Office, в частности в Excel и Access. Он обеспечивает простой доступ и эффективную обработку
данных различных систем управления базами данных (СУБД).
Программа (тело программы), это последовательность операторов, выполняющихся друг за другом. В каждой строке может помещаться один оператор. В одной строке можно объединить несколько операторов, разделив их двоеточием. В VB есть возможность разделить одну логическую строку на несколько физических. Разделителем строк служит знак подчеркивания, следующий за знаком пробела. Логическая строка может содержать до 1023 символа и не более десяти разделителей.
Оператор безусловного перехода передает управление на оператор, помеченный меткой, указанной в операторе GoTo.
Метка это обычный идентификатор. Одной меткой с двоеточием можно пометить только один оператор. Оператор перехода можно использовать только внутри программы (подпрограммы). Нельзя из одной подпрограммы перейти в другую подпрограмму или наоборот. Не рекомендуется переходить внутрь структурированного оператора (например, цикла):
M1: Print “Это метка”
Оператор перехода для перехода к оператору с меткой M1 будет иметь вид:
GoTo M1
Условный оператор If в VB может иметь однострочную или многострочную структуру.
Однострочная структура имеет вид:
If <ЛогическоеВыражение> Then <Оператор1> [Else <Оператор2>]
где:
Выполнение:
Многострочная структура имеет вид:
If <ЛогическоеВыражение1> Then
<Операторы1>
[ElseIf <ЛогическоеВыражение2> Then
[<Операторы2>]
……………………………………
ElseIf <ЛогическоеВыражениеN> Then
[<ОператорыN>]]
[Else
[<ОператорыN+1>]]
End If
Выполнение: Последовательно проверяются логические выражения начиная с первого. Выполняются те <ОператорыI>, для которых впервые <ЛогическоеВыражениеI> станет равным True. Далее управление передается за End If. Если нет логического выражения равного True выполняются <ОператорыN+1> и управление передается за End If.
If Ball >= 14 Then
Sball = “Отлично”
ElseIf Ball >= 10 Then
Sball = “Хорошо”
ElseIf Ball >= 5 Then
Sball = “Удовлетворительно”
Else ‘ Else : Sball = “Неудовлетворительно”
Sball = “Неудовлетворительно”
End If
Оператор If допускает вложения. Кратность вложения не ограничена.
Условный оператор Select Case имеет следующий вид:
Select Case <Выражение>
[Case <Значение1>
[<Операторы1>]]
[Case <Значение2>
[<Операторы2>]]
……………………..
[Case <ЗначениеN>
[<ОператорыN>]]
[Case Else
[<ОператорыN+1>]]
End Select
Выполнение: Выполняются те первые <ОператорыI>, для которых <Выражение> = <ЗначениеI>. Далее управление передается за End Select. Если нет <ЗначенияI> равного <Выражению>, то выполняются <ОператорыN+1> и управление передается за End Select. Если для разных значений надо выполнить одни операторы, то их можно объединить, записав через запятую или использовать ключевое слово To, если их целый диапазон. Кроме того можно использовать операции отношения при использовании ключевого слова Is:
Select Case Ball ‘Ball - Переменная выбора
Case Is >= 14
Sball = “Отлично”
Case 10,11,12,13
Sball = “Хорошо”
Case 5 To 9 ‘5-9
Sball = “Удовлетворительно”
Case Else ‘Остальные
Sball = “Неудовлетворительно”
End Select
Можно одновременно использовать все три способа: Case 1,3, 7 To 15, Is >23.
Значения переменной выбора могут быть не только числовыми, но и строковыми. При этом строковые значения берутся в кавычки: Case "Москва".
Цикл – это оператор или группа операторов, которые в программе выполняются многократно.
В VB существуют два основных типа циклов – циклы со счетчиком (с известным числом повторений) и циклы с условием (с неизвестным числом повторений.
Цикл For…Next это цикл со счетчиком:
For <Счетчик> = <НачальноеЗначение> To <КонечноеЗначение> [Step <Шаг>]
[<Операторы>]
[Exit For]
Next [<Счетчик>]
где:
<Счетчик> - параметр цикла, числовая переменная, необязательно целого типа;
<НачальноеЗначение> - выражение,
определяющее начальное значени
<КонечноеЗначение> - выражение,
определяющее конечное
<Шаг> - выражение, определяющее
значение на которое
For, To, Step, Next – ключевые слова;
Exit For – оператор досрочного выхода из цикла.
Порядок работы:
Замечания:
Пример 1:
For I1 = 5 To 1 Step –0.5
For I2 = 10 To 15
Print I1*I2
Next I2
Next I1 ‘Next I2, I1
Пример 2: Каково будет K при выходе из цикла?
K = 0: M = 0
For I = 1 To 10 – M Step 1 + M
K = K + 1: M = M + 1
Next I ‘ K = 10
Особенностью циклов с условием является условие, может быть любым выражением логического типа, см. табл. 12.5.1:
Таблица 12.5.1
Цикл с предусловием |
Цикл с постусловием |
Do [While / Until <Лог.Выражение>] [<Операторы>] [Exit Do] Loop |
Do [<Операторы>] [Exit Do] Loop [While / Until <Лог.Выражение>] |
Цикл с While выполняется до тех пор, пока логическое выражение имеет значение True. Цикл с Until выполняется до тех пор, пока логическое выражение имеет значение False. Если логическое выражение проверяется в начале цикла, то операторы могут никогда не выполняться, если логическое выражение принимает с самого начала неподходящее значение. Если логическое выражение проверяется в конце, то операторы выполняются хотя бы один раз. Для досрочного выхода из цикла используется Exit Do. Если While / Until <Лог.Выражение> отсутствует, то цикл превращается в бесконечный.
В VB есть еще один оператор While:
While <Выражение>
[<Операторы>]
Wend
Выполнение: Тело цикла (<Операторы>) выполняется пока <Выражение>=True. Выход из цикла осуществляется как только оно станет равным False.
Замечание: Тело цикла может совсем не выполняться, если вначале <Выражение>=False.
Для этого цикла нет оператора досрочного выхода, кроме GoTo.
Пример1:
Dim S As Integer, I As Integer
S = 2: I = 1
Do While S < 10
S = S + I
I = I + 1
Loop ‘S = 2 + 1 + 2 + 3 + 4 = 12
Пример2: Составить программу для вычисления суммы ряда:
y=1 + 2/x + (2*3)/x^2 + (2*3*2)/x^3 + (2*3*2*3)/x^4 + ... принимая, что |x|>3.
Вычисления продолжать до тех пор, пока модуль разности между слагаемым и его предыдущим значением не станет меньше заданной величины (точности вычисления).
Command1 Click
Private Sub Command1_Click()
Dim x!, tv! ‘Single
x = Val(Text1.Text)
tv = Val(Text2.Text)
Dim pr!, sl!, s!
Dim m As Byte, zn% ‘Integer
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
Text3.Text = Str(s)
End Sub
Command2 Click
Private Sub Command2_Click()
End
End Sub
Результаты работы программы представлены на рис. 21:
Рис. 21.
В языке VB имеется два вида подпрограмм (subroutine), это процедуры и функции.
Процедуры подразделяются на процедуры обработки событий и общие процедуры.
Событиями могут быть: событие Load (загрузка) происходит при загрузке формы, событие Click (щелчок) происходит при нажатии кнопки мыши на каком-нибудь объекте формы и т. д. При этом происходит вызов соответствующей процедуры. Общие процедуры это действия, которые могут выполняться неоднократно в различных местах программы, для чего организуется их вызов.
Результатом работы функции является возвращаемое значение. Функции могут быть стандартными (встроенными), уже имеющимися в трансляторе языка VB, или созданные самим программистом (функции пользователя).
Процедура в языке VB имеет вид:
[Public / Private][Static] Sub <ИмяПроцедуры>
([<CписокФормальныхПараметов>]
[<Объявление переменных
[<Операторы>]
[Exit Sub]
End Sub
Public / Private – необязательные ключевые слова, определяющие область видимости процедуры. Глобальная (Public) доступна из других модулей. Локальная (Private) доступна только внутри данного модуля. Если область видимости явно не указана, то по умолчанию она будет определена как глобальная.
Static – необязательное ключевое слово, определяющее статус переменных, объявленных внутри процедуры. При наличии этого слова переменные будут сохранять свои значения между последовательными вызовами, в противном случае – нет.
Exit Sub – необязательный оператор, прерывающий выполнение процедуры и возвращающий управление на оператор, следующий за оператором вызова.
<CписокФормальныхПараметов> - это список входных и выходных параметров. Входной параметр – параметр, значение которого должно быть определено до начала работы процедуры, и переданный в процедуру в момент ее вызова. Выходной параметр – это параметр, значение которого определяется в результате работы процедуры. Процедура может не иметь входных параметров или не иметь выходных или и тех и других. В этом случае в заголовке процедуры останутся только пустые круглые скобки. Кроме того любой из параметров может быть одновременно и входным и выходным. Это касается общих процедур. Процедуры обработки событий имеет набор параметров, зависящих от конкретного события и не может быть изменен разработчиком. Список формальных параметров имеет вид:
[ByRef / ByVal] <ИмяПараметра1>[()] [As <ИмяТипа1>]
[, [ByRef / ByVal] <ИмяПараметра2>[()] [As <ИмяТипа2>] [, ….. ]]
ByVal / ByRef – определяет способ передачи данных в процедуру при ее вызове.
ByRef определяет, что данные передаются их адресом параметра в памяти. Поэтому, если процедура изменяет значение параметра, то изменение сохраняется и после окончания работы процедуры (параметр может быть как входным, так и выходным параметром).
ByVal определяет, что данные в процедуру передаются своей копией. Поэтому, если процедура изменяет значение параметра, то изменение не сохраняется после окончания работы процедуры, копия исчезает вместе с процедурой в момент окончания ее работы (параметр может быть только входным параметром).
По умолчанию – ByRef.
Процедуры обработки событий и общие процедуры вызываются по-разному. Первые запускаются автоматически в случае совершения события. Для запуска общих процедур используется следующий оператор:
[Call] <ИмяПроцедуры> [(]<
<СписокФактическихПараметров> - список
параметров, которые замещают формальные
параметры при исполнении
Если при вызове процедуры используется ключевое слово Call, то список фактических параметров должен быть указан в скобках. Если процедура вызывается без использования Call, то параметры перечисляются без скобок. Если процедура не имеет параметров и используется слово Call, то после имени процедуры следует ставить пустые скобки.
При вызове процедуры происходит следующее: если вызвана процедура без списка формальных параметров, то эта процедура просто выполняется, обращение к процедуре с параметрами приводит к замене формальных параметров на фактические, далее выполнение процедуры. После выполнения процедуры, управление передается в программу на оператор, следующий за оператором вызова, в программу передаются значения выходных параметров процедуры заменой формальных параметров снова на фактические, а также новые значения глобальных переменных, если они использовались и изменили свои значения в процедуре.
Пример1: Повторение примера приведенного на рис. 17. (стр. 14, сложение двух чисел):
(General) (Declarations)
Option Base 1
(General) Sum
Sub Sum(A() As Single)
A(3) = A(2) + A(1)
End Sub
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)
Call Sum(C())