Логические операции в языке Кумир
Часто в командах ветвления условие может быть составным, т. е. образовываться из нескольких простых логических высказываний.
Задача: Определите, является ли контрольное число двузначным.
Решение.
Двузначные числа лежат в пределах от 10 до 99. Тогда достаточно выяснить принадлежит ли заданное число указанному отрезку.
Пусть контрольное число хранится в переменной number. Чтобы оно лежало в искомом диапазоне, необходимо, чтобы каждое из двух ниже приведенных условий имело значение да:
number ≥ 10
number ≤ 99
Данные условия являются простыми логическими высказываниями. Значит, необходимо составить логическое выражение, которое будет объединять простые высказывания с помощью соответствующей операции.
Рассмотрим логические операции, позволяющие из простых высказываний формировать составные. Выясним их обозначения в языке Кумир.
Название операции | Форма записи | Пример |
---|---|---|
Конъюнкция (логическое умножение) | и | (х ≥ -5) и (х ≤ 5) |
Дизъюнкция (логическое сложение) | или | (х < -5) и (х > 5) |
Инверсия (логическое отрицание) | не | не (х > 5) |
Свойства логических операций
Результат логического выражения, образованного с помощью операции дизъюнкции, будет истинным (принимает значение да), если хотя бы одно простое высказывание истинно.
Результат логического выражения, образованного с помощью операции конъюнкции, будет истинным (принимает значение да), когда все простые высказывания истинны.
Отрицание меняет значение логического выражения на противоположное.
Составим логическое выражение для решения поставленной выше задачи, используя свойства логических операций. Поскольку в нашей задаче должны выполнятся оба условия, то воспользуемся конъюнкцией:
number ≥ 10 и number ≤ 99
Тогда фрагмент кода для решения поставленной задачи может выглядеть следующим образом
{Фрагмент кода программы}
- если number ≥ 10 и number ≤ 99
- то вывод "Число двузначное"
- иначе вывод "Число не двузначное"
- все
Логические операции, как и математические, имеют приоритеты при вычислении логических выражений. Из перечисленных нами операций самый высокий приоритет у операции «не», следующая по приоритету - «и», «или» имеет самый низкий приоритет.
Заметим, что порядок применения операций можно изменить с помощью скобок. Например, пусть логическое выражение записано в следующем виде
не ((х < -5) или (х > 5))
1. Вычисляется значение логического выражения в скобках
2. Операция отрицания применяется к результату, вычисленному в скобках