10.2.4. Функция IIF
Функция IIF имеет следующий синтаксис:
IIF(логическое выражение,выражение1,выражение2)
В отличие от оператора If функция IIF вычисляет два значения, но в зависимости от значения условного выражения возвращает только одно: если значение условного выражения истинно, то функция возвращает значение первого выражения, в противном случае – второго. Выражения могут быть представлены константами или вычисляемыми выражениями. Так, пример, рассмотренный на с. 36, можно записать в таком виде:
y=IIF(x>0,1,0)
Эта функция проверяет, имеет ли переменная x значение больше 0, и, если имеет, переменной y присваивается значение 1, в противном случае – значение 0.
Рассмотрим еще несколько примеров.
Пример 1.
Пусть необходимо вычислить значение функций y1 и y2.
y1 = a + ; y2 = a3, если x > a
y1 = arctg x , если x <= a,
где a = b + 1
Входные данные: x, b - вещественного типа
Выходные данные: y1, y2, a, х - вещественного типа
Схема алгоритма:
На форме разместим два текстовых поля для ввода значений x и b, командную кнопку и элемент управления "Надпись" для вывода значения переменной y2 (используется свойство Caption этого элемента управ-ления). Программа будет иметь следующий вид:
Private Sub Command1_Click()
Dim x As Single , a As Single, b As Single
Dim y1 As Double, y2 As Double
x=Text1.Text
b=Text2.Text
a=b+1
If x>a Then
y1=a+Abs(x)
y2=a^ 3
Label1.Caption = "При x=" & Str(x) & ", a =" & Str(a) & " : y2=" & Str(y2)
Else
y1=Atn(x)
End If
MsgBox Format(y1, "0.000"), , " y1 равно"
End Sub
При выполнении условия x<a (6<45+1), форма и диалоговое окно, содержащее значение переменной y1, будут иметь вид:
Пример 2.
Пусть необходимо вычислить значение функции Y
Входные данные: x - вещественного типа
Выходные данные: Y - вещественного типа
Схема алгоритма:
10.2.5. Оператор Select Case …. End Select
Использование оператора If становится неудобным, когда вложенность структуры Развилка превышает три. В таких случаях целесообразно применять оператор Select Case …. End Select,который позволяет сделать выбор из произвольного числа вариантов. Синтаксис этого оператора следующий:
Select Case выражение
Case значение
<операторы>
[ Case значение
<операторы> ]
[Case Else
<операторы >]
End Select
Параметр выражение – любое числовое, строковое, логическое выражение или переменная.
В этом операторе вместо вычисления логического условия выполняется сравнение значения <выражение> с каждой из величин, заданных параметром <значение>. Для блока Case можно указывать не только одно значение, но и несколько, разделенных запятой (например: 2, 3, 4). Можно определять также области сравнения (например: 4 To 6) или воспользоваться относительным сравнением (например: Is > = 9, где Is – ключевое слово). Очередной блок Case выполняется, если ни одно из предыдущих условий не является истинным. В операторе может быть произвольное число блоков Case. Если ни одно из условий не является истинным, то выполняются инструкции Case Else.
Например, оператор Select Case может использоваться для проверки принадлежности значения случайной величины некоторым заданным значениям. Используем функцию Rndдля получения случайного числа в диапазоне [0;10].
Randomize
Ns =Int(Rnd*10)+1
Select Case Ns
Case 1
Print "Равно 1"
Case 2,3
Print "Равно 2 или 3"
Case 4 to 6
Print "Больше или равно 4 и меньше или равно 6"
Case Is >=9
Print "Больше или равно 9"
Case Else
Print "Ни одно из предыдущих"
End Select
Следует обратить внимание, что выражение Is >= 9 определяет все значения переменной Ns, которые больше или равны 9. Если совпадения значений не обнаружится, то управление передается команде, которая следует за оператором End Select.
Пример 3.
Разработать информационную технологию, позволяющую в зависимости от значения введенных переменных и знака арифметической операции напечатать поясняющий текст и результат вычисления.
Option Explicit
Private Sub Form_Activate()
Dim a As Integer, b As Integer, s As Single
Dim z As String * 1
Dim stro As String * 10
a = InputBox("Введите a ")
b = InputBox("Введите b ")
1: z = InputBox("Введите знак ")
Select Case z
Case "+"
s=a+b
stro="Складываю! "
Case "*"
s=a*b
stro="Умножаю! "
Case "–"
s=a–b
stro="Вычитаю! "
Case "/"
s=a/b
stro="Делю! "
Case Else
MsgBox " Введен неверный знак операции – " & z & "Повторите ввод"
GoTo 1
End Select
MsgBox stro & a & z & b & "=" & Format(s,"0.000")
End Sub
10.2.6. Оператор безусловного перехода
Оператор безусловного перехода используется в тех случаях, когда после некоторого оператора следует выполнить не следующий по порядку оператор, а какой-либо другой, расположенный в любом месте активной процедуры. Синтаксис этого оператора следующий:
Goto имя метки или номер строки
Чтобы обеспечить переход к оператору, перед ним необходимо поставить метку, отделив ее от оператора двоеточием, а в операторе перехода указать имя этой метки. Метка может состоять из символов и цифр. Количество меток не ограничено, но имя должно быть уникальным.
В блоке объявлений метка описывается следующим образом:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.