Сразу же вынужден извиниться! В материалы предыдущего занятия, уважаемые подписчики, совершенно необъяснимым образом вкралась “очепятка”. Фрагмент после алгоритма Угол_Сек следует читать так: “При обращении
к алгоритму реальными фактическими значениями параметра D могут быть 60 секунд для секундной стрелки, 3600 секунд для минутной стрелки и 3600 * 12 = 43200 секунд для часовой стрелки. Но чисто формально ничто не запрещает использовать для параметра D любое иное отличное от нуля значение. Конечно,
при этом следует понимать, что никаким реально существующим часам это значение соответствовать не будет.”
Как мне кажется, уважаемые подписчики, мы с вами очень даже неплохо поработали над линейными алгоритмами и подпрограммами с результатами числового типа. Теперь нам предстоит изучить аналогичный материал в отношении логических величин.
Вот краткий перечень всего того, что нам нужно будет сегодня освоить: переменные и константы логического типа, логические операции, а также логические выражения.
ЛОГИЧЕСКИЕ ВЕЛИЧИНЫ И ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ
Как уже упоминалось на одном из предыдущих зянятий, с помощью величин логического типа описывают ситуации альтернативного характера (нельзя-можно, плохо-хорошо и т.п.). Вполне естественно, что логический тип относится к простым.
Константы логического типа в АЯ обозначаются стандартными именами НЕТ и ДА, в Паскале для этого же используются стандартные идентификаторы False и True. В математической логике первое из каждой пары значений обозначает “ложь”, второе – “истину”.
Если некоторой переменной назначается логический тип, то в АЯ и в Паскале для этого используются стандартные имена типов лог и Boolean соответственно.
Выражение называют логическим, если в результате его вычисления получается значение логического типа.
В состав логического выражения могут входить операнды логического типа, служебные (зарезервированные) слова для указания логических операций, а также круглые скобки, регулирующие порядок их выполнения. К операндам логического типа относятся логические константы, переменные логического типа,
обращения к функциям логического типа, а также специфические логические величины – отношения.
Кроме логических операций, в логических выражениях могут присутствовать также операции сравнения (см. таблицу). Последние как раз и используются для образования специфических величин логического типа, называемых отношениями.
Обозначение операции
Вид операции
Описание операции
на АЯ
на Паскале
не
Not
унарная
логическое отрицание
и
And
бинарная мультипликативная
логическое умножение
или
Or
бинарная аддитивная
логическое сложение
xor
Xor
бинарная аддитивная
логическое сложение по модулю 2
=
=
операция сравнения
равно
<>
<>
операция сравнения
не равно
<
<
операция сравнения
меньше
>
>
операция сравнения
больше
<=
<=
операция сравнения
меньше или равно (не больше)
>=
>=
операция сравнения
больше или равно (не меньше)
Операции сравнения применяются к двум однотипным величинам, независимо от их типов. Допустимо сравнение величин целочисленного и вещественного типов. А вот операндами логических операций могут быть величины только логического типа.
Порядок вычисления логического выражения при отсутствии регулирующих круглых скобок (правило приоритетов):
1) вычисляются значения всех логических функций;
2) поочерёдно слева направо выполняются унарные логические операции;
3) поочерёдно слева направо выполняются бинарные мультипликативные операции;
4) поочерёдно слева направо выполняются бинарные аддитивные операции;
5) поочерёдно слева направо выполняются операции сравнения.
Если в составе выражения присутствуют круглые скобки, регулирующие порядок выполнения операций, то прежде всего должны быть вычислены фрагменты выражения, заключённые в скобки.
Рассмотрим правила выполнение логических операций над некоторыми двумя логическими величинами A и B. Их обычно представляют в виде, так называемых, таблиц истинности.
A
B
Not A
A And B
A Or B
A Xor B
False
False
True
False
False
False
False
True
True
False
True
True
True
False
False
False
True
True
True
True
False
True
True
False
В отношении синтаксиса логических выражений основные требования таковы:
-поскольку операции сравнения имеют самый низкий приоритет, то, при наличии в составе выражения логических операций, отношения при необходимости следует заключать в круглые скобки; благодаря этому операции
сравнения будут выполняться в первую очередь;
-для самостоятельных отношений использование круглых скобок не обязательно;
-между операндами допустимо указание не более чем одной бинарной логической операции;
-унарная логическая операция может быть указана несколько раз подряд, в том числе, вместе с бинарной.
В заключение приведём примеры вычисления логических выражений.
Пускай x = 5 и y = –6.
-Выражение (x = 5) илиНЕТи (x+y <> –1) истинно. Действительно, после
вычисления отношений получаем: ДАилиНЕТиНЕТ. После выполнения логической операции и имеем ДАилиНЕТ. Выполнение логической операции или даёт окончательный результат ДА.
-То же выражение с применением скобок ((x = 5) илиНЕТ) и (x+y <> –1)
ложно. Действительно, после вычисления отношений имеем (ДАилиНЕТ) иНЕТ. После выполнения логической операции или получаем ДАиНЕТ. После выполнения логической операции и получаем окончательный результат НЕТ.
-Выражение не (x < 0) и (x+y < 0) или (x*y > 0) ине (y = –6) истинно. Действительно, после вычисления отношений имеем неНЕТиДАилиНЕТинеДА. После выполнения логических операций не получаем ДАиДАилиНЕТиНЕТ. После выполнения логических операций и имеем ДАилиНЕТ. Окончательно получаем ДА.
Уважаемые подписчики! При необходимости задать вопрос, проконсультироваться, уточнить или обсудить что-либо обращайтесь через Гостевую книгу моего персонального сайта http://a-morgun.narod.ru