Логические выражения и вычисление их значений
Логические выражения называют условиями. Условие, если оно выполняется, имеет значение True, если не выполняется, - False. Эти логические значения являются результатами вычисления логических выражений.
Условия различают простые и сложные.
Для построения простых условий используются операции сравнения: >, <, =, >=,<=, <>.
Для построения сложных условий используются логические операции и, возможно, круглые скобки Not, And, Or.
Результаты выполнения логических операций для логических выражений A и B приведены в таблице 7.3.
Таблица 7.3
Таблица истинности
A | B | Not A | A And B | A Or B |
True | True | False | True | True |
False | True | True | False | True |
True | False | False | False | True |
False | False | True | False | False |
Программирование ветвлений
Ветвление в VISAUL BASIC организуется с использованием:
· условного оператора IF,
· оператора выбора CASE.
Условный оператор IF.
Для проверки одного условия и выполнения оператора или блока операторов используется оператор IF…THEN. Этот оператор можно использовать с разным синтаксисом: однострочным (линейным) и многострочным (блочным).
а) Однострочный:
If условие Then операторы1 [Else операторы2]
б) Блочный:
If условие Then
блок операторов1
[Else
блок операторов2]
EndIf
Пример решения задачи с использованием блочного оператора IF показан на рис. 7.7.
Рис. 7.7. Пример решения задачи с использованием блочного оператора IF:
в) Для проверки более одного условия и выполнения одного из нескольких блоков операторов используется оператор IF вида:
If условие 1 Then
блок операторов 1
ElseIf условие 2 Then
блок операторов 2
……………
ElseIf условие n Then
блок операторов n
[Else
блок операторов Else]
End If
Например:
Public Function Obr_Err (Err_Num As Integer) As _
Integer
Dim Txt As String
If Err_Num=6 Then
Txt=”переполнение” : Obr_Err=2
ElseIf Err_Num=11 Then
Txt=”деление на нуль” : Obr_Err=2
Else
Txt=”нераспознанная ошибка”&Err_Num : Obr_Err=3
EndIf
Err.Clear
MsgBox Txt, VbOkOnly, “Ошибки выполнения”
End Function
Оператор выбора SELECT CASE
Используется для проверки одного условия и выполнения одного из нескольких блоков операторов.
Формат записи оператора:
Select Case проверяемое выражение
Case список выражений 1
операторы 1
Case список выражений 2
операторы 2
Case список выражений 3
операторы 3
……………………………….
Case Else
операторы группы Else
End Select
Проверяемое выражение вычисляется в начале работы оператора Select Case. Это выражение может возвращать значение любого типа (логическое, числовое, строковое).
Список выражений – одно или несколько выражений, разделенных стандартным символом –разделителем(;).
При выполнении оператора проверяется, соответствует ли хотя бы один из элементов этого списка проверяемому выражению. Эти элементы списка выражений могут иметь одну из следующих форм:
- выражение
- выражение 1 To выражение 2
- Is логический оператор(оператор сравнения) выражение
Например, Is >= 10
Пример процедуры, использующей оператор выбора, представлен на рис. 7.8.
Рис. 7.8. Пример решения задачи с использованием оператора
Select Case.
Методы Print и Cls
Метод Print применяется для вывода данных в форму или на принтер. Для вывода на принтер используется метод Printer.Print, а для вывода в текущую форму достаточно просто написать Print.
Метод Cls убирает с формы весь текст, выведенный ранее. Если его не вызвать, после нескольких вызовов Print текст исчезает под нижним краем формы.
Программирование циклов
В VISAUL BASIC существуют три оператора цикла:
1) For … Next
2) While … Wend
3) Do … Loop
Оператор цикла For … Next
Оператор цикла For…Next имеет формат:
For счетчик = начало To конец [Step приращение]
операторы
Next [счетчик]
Рассмотрим пример решения задачи 6, использующей цикл с параметром. Требуется найти сумму 7 чисел.
Private Sub Command1_Click()
Dim a(7) As Integer, s As Integer
s = 0
For i = 1 To 7
a(i) = Val(InputBox("Введите число"))
s = s + a(i)
Next
Print s
End Sub
Оператор цикла WHILE…WEND
Используется для организации циклов с предусловием и имеет следующий формат:
While условие продолжения цикла
операторы тела цикла
Wend
Рассмотрим пример решения задачи 4 - вывести в форму все значения, большие 1, причем каждое последующее значение получается путем деления предыдущего пополам. Блок-схема решения этой задачи приведена на рис. 6.7.
Private Sub Command1_Click()
Dim x As Single
x = InputBox("Введите число")
While x > 1
Print x
x = x / 2
Wend
End Sub
Оператор цикла DO…LOOP
Используется для организации циклов с неопределенным числом повторений (с предусловием и с постусловием).
Этот оператор для организации цикла с предусловием может использоваться в двух модификациях:
а) Do While условие продолжения цикла
операторы тела цикла
Loop
б) Do Until условие прекращения цикла
операторы тела цикла
Loop
Для организации цикла с постусловием этот оператор также может быть использован в двух модификациях:
в) Do
операторы тела цикла
Loop While условие продолжения цикла
г) Do
операторы тела цикла
Loop Until условие прекращения цикла
На рис. 7.9 приведен пример использования цикла с постусловием для решения задачи сортировки одномерного массива по возрастанию элементов.
Рис. 7.9. Пример использования цикла с постусловием.