Печатать эту главуПечатать эту главу

Лабораторная работа. Основы работы в VBA. Алгоритмическая структура - ветвление

3. Логические выражения, логические операции и операции отношения

         Логическое выражение, стоящее после оператора If или ElseIf может быть истинным или ложным. В отличии от арифметических выражений логические выражения принимают не числовые значения, а логические значения – "TRUE" (истина) и  "FALSE" (ложь).

         В логических выражениях можно использовать следующие операции отношений:  =,  <,  >,  < =,  > =,  < >  (равно, меньше, больше, меньше либо равно, больше либо равно, не равно).

         В логическом выражении допустимы два или несколько условий (операций отношения), которые связываются логическими операциями And,  Or,  Not  (И,  ИЛИ,  НЕ). Логические операции осуществляют манипуляции над битами. Они возвращают значение "Истина" (не нулевое) и "Ложь" (нулевое) значения. Описание логических операций приведено в таблице 1.

 Таблица 1. Логические функции языка VBA

Операция

Название

Логическое

выражение

Объяснение

And

Логическое

умножение (И)

А And B

Логическое выражение истинно, когда выполняются оба условия одновременно (истинно А и истинно В).

Or

Логическое сложение (ИЛИ)

А Or В

Логическое выражение истинно, когда хотя бы одно из условий выполняется (истинно или А или В или оба условия одновременно).

Not

Логическое отрицание (НЕ)

Not A

Логическое выражение истинно, когда условие A не выполняется (А ложно).

Xor

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

А Xor В

Логическое выражение истинно, когда условия А и В не совпадают.

Eqv

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

А Eqv В

Логическое выражение истинно, когда А и В одновременно истинны или одновременно ложны.

Imp

Импликация

A Imp B

A IMP B принимает значение "ложь", если A истинно, а В ложно, и значение "истина" в других случаях.

 

Пример 3. Разработать программу вычисления интервальной функции с использование оператора IfThen, заданной графически на рисунке.

 

Sub lomanaya_funktsiya()

Dim x As Single

Dim y As Integer

    ' вводим значение аргумента

x = InputBox("Введите значение аргумента функции х", "Запрос задачи")

    вычисляем значение функции

If (x >= 1 And x < 3) Or (x >= 5 And x < 7) Or (x >= 9 And x < 11) Then

        y = 1

ElseIf (x >= 4 And x < 5) Or (x >= 11 And x < 12) Then

        y = 2

ElseIf x >= 7 And x < 9 Then

        y = -1

ElseIf x >= 3 And x < 4 Then

        y = -2

Else

        y = 0

End If

    ' выводим ответ

MsgBox "При x = " & x & " функция равна " & y, , "Ответ задачи"

End Sub

 

         Пример 4. Определить, попадает ли точка с координатами х0, у0 под кривую функции у=sin x, заданную в интервале 0≤x≤.2π

 

Sub Primer()

Dim x0 As Single, x_radian As Double

Dim y0 As Double, y As Double

x0 = InputBox("Введите х координату точки от 0 до 360 градусов", "Запрос задачи на попадание")

If x0 < 0 Or x0 > 180 Then

x0 = InputBox("Вы ввели неверное число. Повторите ввод", "Повторный запрос")

End If

y0 = InputBox("Введите у координату точки", "Повторный запрос")

' перевод х из градусов в радианы

x = x0 * 4 * Atn(1) / 180

вычисляем значение функции

y = Sin(x_radian)

If y > y0 Then

MsgBox "Точка лежит под кривой", , "Ответ"

ElseIf y = y0 Then

MsgBox "Точка лежит на кривой", , "Ответ"

ElseIf y < y0 Then

MsgBox "Точка лежит над кривой", , "Ответ"

End If

End Sub