Отправляет email-рассылки с помощью сервиса Sendsay

Всё о работе в Интернет

  Все выпуски  

Занятие 15.


Сразу же вынужден извиниться! В материалы предыдущего занятия, уважаемые подписчики, совершенно необъяснимым образом вкралась “очепятка”. Фрагмент после алгоритма Угол_Сек следует читать так: “При обращении к алгоритму реальными фактическими значениями параметра 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

С уважением, Александр.


В избранное