Основы языка программирования Visual Basic: Учебное пособие, страница 10

Название

Символ

Использование

Приоритет

Меньше чем

     a<b

7

Меньше или равно

 <=

     a<=b

7

Больше чем

     a>b

7

Больше или равно

 >=

     a>=b

7

Равно

=

     a=b

7

Не равно

<> 

     a<>b

7

С помощью логических операторов можно составить более сложное логическое выражение.

Логические операторы

Название

Обозначение

Использование

Приоритет

НЕ

Not

           Not a

6

И

And

a  And  b

5

ИЛИ

        Or 

           a  Or  b

4

Исключающее ИЛИ

Xor

a  Xor  b

3

Эквивалентность

Eqv

a  Eqv  b

2

Включение

Imp

a  Imp  b

1

Оператор Not работает только с одним значением. Результат оператора противоположен значению правой части выражения, в котором он используется.

Оператор Аnd проверяет истинность обоих выражений одновре-менно.

Оператор Or проверяет истинность выражений. Если хотя бы одно из выражений будет истинным, то результат – истина. Если оба выражения ложны, то и результат ложен.

Оператор Xor дает истинный результат в том случае, если истинно одно из выражений.

Оператор Eqvпроверяет эквивалентность двух выражений. Если их логические значения совпадают, то результат операции будет истинным.

Оператор Impпроверяет, включает ли первое выражение второе.

Примеры записи логических выражений:

A >= 0  Or  A <= 10

F+5 <> 10 And C= 6

Рассмотрим запись оператора, реализующего структуру Развилка, представленную ниже.


нет

 
     

Условный оператор может быть неполным, т.е. у него могут отсутствовать операторы, выполняемые по условию да или нет, например:

нет

 
 


нет

 
 


10.2.2. Модифицированная структура Развилка

Во многих случаях по условию "истинно" или "ложно" может выполняться группа операторов. В этом случае структура Развилка называется модифицированной. Алгоритм модифицированной структуры Развилка имеет вид:

 
 
 
         

Для реализации модифицированной структуры Развилка может использоваться только условный оператор If, записанный следующим образом:

If условие Then

                         [операторы]    

[Else

                        [операторы]]

End If

Пример.

Пусть математическая модель задачи определяется так:

y1 = tg(x2); ввести значение y2, если x Ј 0

y1 = cos(x) + sin2(x); y2 = 0      , если х > 0

Очевидно,  что  входными данными служит значение  x, а выходными – y1 и y2.

Схема алгоритма:

 


Этому алгоритму соответствует следующая программа на языке программирования Visual Basic

Dim x As Single,y1 As Single, y2 As Single

x = Inputbox("Введите значение х", "Модифицированная структура РАЗВИЛКА")

If  x<=0 Then

y1=Tan(x^2)

y2=Text1.text

Else

          y1=Cos(x)+Sin(x)^2

y2=0

End If

Print "y1 =" & Format(y1,"0.00") & "   y2 =" & Format(y2,"0.00")

10.2.3. Вложенная структура Развилка

Если в ходе вычислительного процесса в зависимости от сложности принимаемого решения требуется проверить несколько условий, то используется вложенная структура Развилка. Схема алгоритма может иметь вид:

Вложенная структура Развилка также может быть модифицирован-ной. При программировании вложенной структуры Развилка можно использовать несколько условных операторов If. Однако вложенные операторы If … Then … Else можно создать c помощью конструкции ElseIf (без пробела), которая имеет следующий синтаксис:

If Условие1 Then

[операторы]

 ElseIf Условие2 Then

                                                       [операторы]

[Else

             [операторы]]

End If

          При задании такой последовательности Visual Basic проверяет Условие1. Если оно истинно, выполняются операторы этой ветви, затем происходит переход к оператору End If. Если условие ложно, то выполняются операторы, определяемые значением Условия2, записанные после ключевого слова ElseIf.

Примечание. При составлении алгоритма с несколькими условиями рекомендуется проверять условия в порядке от наиболее вероятных к менее вероятным, при этом обеспечивается наибольшая эффективность выполнения программы.

Пример.

Пусть математическая модель задачи записана в виде:

Подпись: Входные данные: х - вещественного типа

Выходные данные: y - вещественного типа

Cхема алгоритма этой задачи будет иметь вид:

 


Программа может выглядеть так:

Dim x As Single, y As Single

x=InputBox("x=")

If  x>0 Then

        y = Sin(x)

 Else

        If  x = 0 Then 

       y = 10

 Else

      y = Cos(x)

                            End if

          End If

Print "y=" & Format(y,"0.000") 

или так:

Dim x As Single, y As Single

x = InputBox("x=")

If  x>0 Then

y=Sin(x)

           ElseIf  x = 0 Then

      y = 10

Else

    y = Сos(x)

          End If

Print "y=" & y

При использовании условного оператора If необходимо обратить внимание на следующие особенности: в многострочной структуре операторы, выполняемые в случае истинности условия, нельзя записывать в одной строке с ключевым словом Then. В противном случае Visual Basic не распознает многострочный синтаксис конструкции.