Выражения отношения
Операции отношения:
> >= < <= = <>
Операнды могут быть любого типа. Результат этих выражений логический.
"Кот" < "Котик" = True
2>4 = False
Двойные неравенства записываются с помощью логических операций:
A > 5 And A < 10 (5 < A < 10).
Некоторые свойства формы и элементов управления принимают значения True или False. Например, если свойство Visible (Видимость) имеет значение True, то форма или элемент управления видимы. При значении False – не видимы. Свойство Enabled (Доступна) также принимает значение True (форма или элемент управления имеют бледный цвет и не реагируют на какие-либо события (щелчок мыши и т.п.). Эти свойства могут быть операндами логического выражения.
Типовая алгоритмическая конструкция «развилка с условием».
Да Да
Условие Условие
Нет Действие Нет Действие 1
Действие 2
Условие задается рассмотренным логическим выражением. Условие принимает значение «Да» или «Нет». В зависимости от этого, на левой блок-схеме «Действие» выполняется (если условие принимает значение «Да») или не выполняется. На правой блок-схеме выполняется или «Действие 1» (если условие принимает значение «Да»), или «Действие 2» (если условие принимает значение «Нет»).
Условный оператор в Visual Basic (соответствует типовой алгоритмической конструкции «развилка с условием»).
If логическое выражение Then If логическое выражение Then
операторы операторы 1
EndIf Else
операторы 2
End If
Аналогично левой блок-схеме «операторы» выполняются, если логическое выражение принимает значение True. При значении False - не выполняются. «операторы 1» выполняются, если логическое выражение принимает значение True. При значении False - выполняются «операторы 2».
Примеры: If Х>=-5.3 And X<=2.87 Then
If Command1.Visible Then ............................................
............................................ Else
EndIf EndIf
Если в качестве оператора Действие 2 также используется оператор ветвления, то два ключевых слова Else и If можно объединить в одно ElseIf. Получим конструкцию
If ... Then ... ElseIf ... Then ... ElseIf ... Then ... Else ... End If
Пример
If A>B And C=1 Then
count = 2*a+b
N=N+1
ElseIf A<B And C=0 Then
count = (a-b)/3
N=N-1
Else
N=0
End If
Пример проекта.
Добавим на форму предыдущего проекта стандартные элементы:
Дополнительную Командную кнопку (CommandButton2);
Два переключателя (OptionButton)-обычно задаются на форме группой и позволяют выбрать какой-либо один вариант (определяется выбранным переключателем) из нескольких возможных. Из группы переключателей можно выбрать только один.
Выбранный переключатель определяется значением свойства Value, которое принимает значение True (переключатель выбран, в центре кружка жирная точка) или False (переключатель не выбран, в центре кружка нет точки). Щелчок мыши по переключателю переводит его в противоположное от имеющегося состояние.
Метка (Label2), в которой записан вид логического выражения.
Определим свойства элементов:
Переключатель (имя Option1): Caption-Арифм. вычисл.
Переключатель (имя Option2): Caption-Логическ. вычисл.
(Метка (имя Label1): Caption-С=A+B Alignement =2 -Center и BorderStyle = 1-FixedSingle )
Метка (имя Label2): Caption-A>=B And C<5.5. Alignement =2 -Center и BorderStyle = 1-FixedSingle
(Командная кнопка (имя Command1): Caption-Вычислить)
Командная кнопка (имя Command2): Caption-Начало.
Вид спроектированной формы показан на рисунке:
Процедуры обработки событий: Form_Load() (загрузка формы), Command2_Click() (щелчок мыши по командной кнопке «Начало»), Command1_Click() (щелчок мыши по командной кнопке «Вычислить»):
Private Sub Form_Load() Эта процедура делает все элементы
Label1.Visible = False управления на форме (кроме командной кнопки
Label2.Visible = False «Начало») невидимыми (свойству Visible
Option1.Visible = False элементов присваивается значение False)
Option2.Visible = False
Command1.Visible = False
End Sub
Private Sub Command2_Click() Эта процедура делает элементы видимыми
Command1.Visible = True (свойству Visible элементов присваивается
Option1.Visible = True значение True)
O ption2.Visible = True
Label1.Visible = True
Label2.Visible = True
End Sub
Private Sub Command1_Click()
Dim A As Single, B As Single, C As Single, Rez As Boolean
If Option1.Value Then
A = Val(InputBox("Введите значение первого слагаемого", "Окно ввода"))
B = Val(InputBox("Введите значение второго слагаемого", "Окно ввода"))
C = A + B
MsgBox "Сумма равна " & Str$(C), , "Ответ"
Else
A = Val(InputBox("Введите значение переменной А", "Окно ввода"))
B = Val(InputBox("Введите значение переменной B", "Окно ввода"))
C = Val(InputBox("Введите значение переменной C", "Окно ввода"))
Rez = A >= B And C < 5.5
MsgBox "Значение логического выражения равно " & Str$(Rez), , "Ответ"
End If
End Sub