Лабораторные работы VB
Лабораторная работа №4
Разветвляющийся алгоритм
Цель:
Получение навыков в использовании условного оператора в программе;
Построение логических конструкций на основе рассматриваемого оператора.
Методические указания:
Оператор If … Then … Else
Оператор If … Then … Else представляет собой простейшую, но и самую распространенную форму проверки условий в Visual Basic. Оператор условия предоставляет возможность управлять порядком выполнения операторов в программе. После проверки на истинность условия он предлагает выполнить ту или иную последовательность операторов.
Синтаксис:
If <condition1> Then <statement>
Else
<condition2>
End If
или
If <condition1> Then
<statementblock1>
Elself <condition2> Then
<statementblock2>
...
Else
<statementblockN>
End If
Аргументы:
condition — выражение проверки условия, использующее логические операторы и операторы сравнения.
В случае если <condition> = True, выполняется оператор, следующий за служебным словом Then. Если <condition> = False, на истинность проверяются дополнительные условия Elself ... Then и, если и они не выполнены, выполняется оператор, следующий за ключевым словом Else;
statementblockN — исполняемый оператор; -
Elself <condition> Then — блок проверки дополнительного условия. Если <condition> = False, то оператор statementblock не выполняется и проводится проверка следующего условия;
Else <statementblock> — блок операторов, выполняемых в случае невыполнения всех предыдущих условий оператора.
Оператор условия: Select...Case
Оператор с условием Select-Case позволяет выбрать нужный оператор из нескольких при выполнении условного выражения. Этот оператор условия наиболее эффективен, когда условие ветвления зависит только от одной переменной.
Синтаксис:
Select Case <testexpression>
[Case <expressionlist1>
[<statementblock1>]]
[Case <expressionlist2>
[<statementblock2>]]
…
[Case Else
[<statementblockN>]]
Аргументы:
testexpression — переменная, свойство или выражение, которое является проверяемым условием выбора;
expressionlist2 — числовые или текстовые данные, относящиеся к проверяемому условию;
statementblock — оператор, выполняемый при условии совпадения переменной и соответствующего значения;
[Case Else ...] — опция, указывающая на выполнение соответствующего оператора при условии невыполнения ни одного из предыдущих условий.
Логические операторы в Visual Basic.
Логический оператор AND используется для логического объединения (конъюнкции или умножение) двух выражений. Программа проверяет, что оба выражения истинны одновременно. В таблице перечислены комбинации выражений и результаты, полученные при их объединении операцией AND.
Выражение 1
Выражение 2
Результат
И (1)
И (1)
И (1)
И (1)
Л (0)
Л (0)
Л (0)
И (1)
Л (0)
Л (0)
Л (0)
Л (0)
Логический оператор EQV
Оператор EQV проверяет эквивалентность двух выражений. Если логические значения совпадают, результат операции будет истинным. Если значения отличаются, то результат будет ложным.
Выражение 1 |
Выражение 2 |
Результат |
И (1) |
И (1) |
И (1) |
И (1) |
Л (0) |
Л (0) |
Л (0) |
И (1) |
Л (0) |
Л (0) |
Л (0) |
И (1) |
Логический оператор OR
Если нужно убедиться в том, что хотя бы одно из выражений истинно, воспользуйтесь оператором OR. Если хотя бы одно из выражений истинно, результат будет истинным. Если оба выражения ложны, результат будет ложным.
Выражение 1 |
Выражение 2 |
Результат |
И (1) |
И (1) |
И (1) |
И (1) |
Л (0) |
И (1) |
Л (0) |
И (1) |
И (1) |
Л (0) |
Л (0) |
Л (0) |
Логический оператор XOR
Если нужно убедиться в том, что истинно лишь одно из двух выражений, воспользуйтесь оператором XOR (операция исключающего OR). В отличие от OR он дает истинный результат лишь в том случае, если истинно одно выражение, но не оба.
Выражение 1
Выражение 2
Результат
И (1)
И (1)
Л (0)
И (1)
Л (0)
И (1)
Л (0)
И (1)
И (1)
Л (0)
Л (0)
Л (0)
Логический оператор NOT возвращает обратное логическое значение. Он может пригодиться при проверке условия, противоположного указанному.
Выражение |
Результат |
И (1) |
Л (0) |
Л (0) |
И (1) |
Задание 1
Даны два числа a и b. Найти:
Методические указания
Очевидно, что для определения ветви, по которой необходимо производить процесс вычисления значения х, достаточно проверить выполнение одного из условий, например a>b. Если оно не выполняется, то очевидно и без дополнительной проверки, что будет выполнено второе условие a<=b. Следовательно, схема алгоритма и код программы будут выглядеть следующим образом:
Private Sub Command1_Click()
a = Val(InputBox())
Text1.Text = a
b = Val(InputBox("Введите значение числа b","Ввод значений"))
Text2.Text = b
If a > b Then
x = Format$(a / b, "0.0000")
Text3.Text = x
MsgBox "Число а больше b, x=" & x, vbInformation, "Вычисление выражения"
Else
x = Format$(b / a, "0.0000")
Text3.Text = x
MsgBox "Число а меньше или равно b, x=" & x, vbInformation, "Вычисление выражения"
End If
End Sub
Рассмотрим примеры алгоритмов разветвляющейся структуры в случаях анализа более сложных логических условий:
Задание 2
Методические указания:
Блок-схема алгоритма и текст имеют вид:
Private Sub Command1_Click()
x = Val(InputBox("Введите значение числа x","Ввод значений"))
Text1.Text = x
If x < -1 Then
y = Format$(x ^ 3, "0.0000")
Text3.Text = y
ElseIf x <= 1 Then
y = Format$(x ^ 2, "0.0000")
Text3.Text = y
Else
y = Format$(Sqr(x), "0.0000")
Text3.Text = y
End If
MsgBox "Значение y=" & y, vbInformation, "Вычисление выражения"
End Sub
Задание 3 Найти значение у.
Замечание 1. При решении задачи использовать логический оператор ИЛИ (OR).
Задание 4
Определить время года по введенному номеру месяца.
Методические указания:
Для решения задачи используем оператор Select…Case.
Private Sub Command1_Click()
n = InputBox("Введите номер месяца", "Номер месяца")
Text1.Text = n
Select Case n
Case 1, 2, 12
MsgBox "Время года - зима", vbInformation, "Времена года"
Text2.Text = "Зима"
Text2.BackColor = vbBlue
Case 3, 4, 5
MsgBox "Время года - весна", vbInformation, "Времена года"
Text2.Text = "Весна"
Text2.BackColor = &HC0FFC0
Case 6, 7, 8
MsgBox "Время года - лето", vbInformation, "Времена года"
Text2.Text = "Лето"
Text2.BackColor = vbGreen
Case 9, 10, 11
MsgBox "Время года - осень", vbInformation, "Времена года"
Text2.Text = "Осень"
Text2.BackColor = vbYellow
End Select
End Sub