Курс лекций по V B 5.0Рефераты >> Программирование и компьютеры >> Курс лекций по V B 5.0
Выражение
Loop Until выполняется условие
Пример. Проверка пароля
Private Sub Form_Load ()
Do
X$ = InputBox$ (“Пароль ?”)
Loop Until X$ = “VB”
End Sub
Для остановки бесконечного процесса используют клавиши “Break” или Run|End или закрыть приложение. В программе можно использовать оператор Exit Do (или Exit For), которые переводят программу к оператору следующему после цикла.
Сложные неопределенные циклы
В неопределенных циклах проверка происходит в конце цикла и счетчика увеличивается еще на 1. Иногда это вызывает лишнее обновление счетчика. Можно передвинуть проверку условия на начало цикла:
Do Until условие
Тело цикла Выражение
Loop
Do While
Do
Loop Until аналогичен
Do
Loop While условие
Пример.
Do Do
Loop Until N>5 ? Loop While N <=5
Do While
Do
Выражение
Loop While условие
или
Do While условие
Выражение
Loop
В таких циклах можно объединять несколько условий, например
Do While X<=0 and txtDisplay.Text=“ “
?
?
Loop
Цикл While /Wend
While условие
. . . . .
Wend
Например, While x>0
S = S+x
Wend
Может быть несколько вложенных циклов. Любой Wend относится к ближайшему While. Do Loop дает структуру и гибкость цикла.
Условные операторы
If условие Then оператор
Например, If N>=0 and N<=9 Then Print “Ok”
Если в выражении If Then обрабатывается несколько операторов, тогда используется так называемый блок If Then.
While Wend
Вместо Do While x=0
Loop
While x=0
Wend
If условное выражение Then (Enter) несколько операторов Else необяза- несколько операторов тельно End If |
If выражение Then оператор Else If выражение Then оператор . . . Else оператор End If |
Оператор Select Case
Позволяет обрабатывать несколько вариантов выбора.
Select Case переменная или выражение
Case оператор проверки условия
действие 1
.
.
.
Case . . . . . .
действие n-1
End Select
Пример:
Select Case Ball
Case Is < 13 позволяет проверить значение переменной
Grade = 2
Case Is < 18
Grade = 3
Case Is < 22
Grade = 4
Case Else
Grade = 5
End Select
Пример 1. If Then Else
Private Sub Form_QueryUnload(Cansel As Integer, UnloadMode As Integer)
X % = MgBox(«Вы уверены?», VbYesNo)
If X % = VbNo Then
Cancel = True
Else
Cancel = False
End IF
End Sub
Пример 2.
If optColor1.Value Then
Color$ = «Красный»
Else If optColor2.Value Then
Color$ = «Зеленый»
Else If optColor3.Value Then
Color$ = «Синий»
Else
Color$ = «Белый»
End If
Пример:
Select Case Den
Case 1
Print «Пн»
Case 2
Print «Вт»
.
.
.
Case 7
Print «Вс»
End Select
В фразе Case можно задавать значения переменной в виде диапазона
Select Case Den
Case 1 to 5
Print «Рабочий день»
Case Else
Print «Выходной»
End Select
либо перечислением возможных значений
Select Case Den
Case 6, 7
Print «Выходной»
Case Else
Print «Рабочий день»
End Select
Массивы
2 вида массивы: управляющие и массивы переменных (обычные массивы или списки).
Управляющие массивы состоят из нескольких однотипных элементов управления, использующих общие свойства, по отличающимся порядковым номерам или индексам. Может быть не более 255 элементов в таком массиве. При этом новые элементы на форме помещаются на место исходных элементов управляющего массива. Поэтому при размещении на форме их следует позиционировать и двигать, чтобы они не перекрывали друг друга. Например, можно создать на форме матрицу надписей или текстовых полей.
Одномерные массивы или списки определяются именем и положением элемента в списке. Например данные о выпуске продукции за 12 месяцев.
Могут быть фиксированные и динамические списки. Размеры их могут быть велики и определяются объемом свободной памяти.
У фиксированных списков размер не меняется, а динамические списки могут менять свой размер. Для фиксированных списков память выделяется в начале работы программы и существует меньший риск переполнения памяти.
Динамические списки более гибки в работе.
Списки могут быть видимыми всему приложению, данной форме (модулю) или только одной процедуре.
Создание фиксированного списка:
а) в форме (модуле). Описание помещается в разделе деклараций формы (модуля)
Dim Massiv$(20)
доступен любой процедуре модуля или формы;
б) в пределах всего проекта (глобальный)
Public Massiv(20) As String - 21 элемент от 0 до 20
или Global
в) локальный массив, который сохраняется до следующего вызова процедуры
Private Sub .
Static Massiv A(20)
Создание динамических массивов.
а) в форме
В размере декларации формы Dim DYNMAS() As String
А внутри процедуры выделяем нужный размер
Private Sub .
Dim N %
ReDim DYNMAS(N) As String
При работе команды ReDim информация в массиве теряется.
Для сохранения информации при изменении размера массива
ReDim Preserve DYNMAS(N+1) As String
или (N-1) удалит последний элемент
б) Глобальный динамический список, видимого в пределах всего проекта
Public DYNMAS() As String
или Global
Далее можно использовать ReDIM в любой процедуре всего проекта.
Ввести данные в массив можно с помощью INPUT BOX, текстового поля.
Для изменения нумерации в массиве не с 0, а с 1 - оператор Option Base 1 в разделе деклараций формы (модуля).
Можно задавать массив диапазоном значений
вместо Dim A(19)
Dim A (1980 TO 2000)
Освобождение ОП от динамический массивов Erase DYNMAS/ Для фиксированных списков Erase только очищает массив.
Окна ввода
Окна ввода- это другая возможность, помимо текстовых полей, для ввода информации. Функция InputBox$ выводит на экран модальную диалоговую панель, которая в отличие от текстовых полей имеет фиксированный размер окна. У окна ввода есто строка заголовка и 4 элемента: подсказка, командные кнопки OK и Cancel и поле ввода. Синтаксис функции: Строковая переменная=
InputBox(“подсказка”[,заголовок][поумолчанию][,X][,Y][,файл справки, контекст])
где подсказка- текстовая строка или строковая переменная (1024 символа),
заголовок -содержание строки заголовка окна,
по умолчанию - начальное содержимое окна ввода,
X,Y- расстояние между левым (верхним) краями экрана и окна ввода. Если параметры не заданы, то окно располагается по центру на 1/3 высоты экрана.
Например, MyInput$=InputBox(“Введи число”, “Запрос”,”0”,100,200)