Начальный курс программирования на языке Форт


НЕМНОГО ЛОГИКИ


Форт (как и большинство языков программирования) дает вам возможность комбинировать флаги. Возьмем, к примеру, комбинацию по принципу «или». Даны значения двух флагов. Если хотя бы одно из них истинно, то Форт-система выполнит действие, если оба значения ложны — не выполнит.

Поясним изложенное на следующем примере/Допустим, вы хотите вывести имя АРТИШОК в том случае, если исходное число либо отрицательно, либо кратно 10. Как это сделать на Форте? Рассмотрим выражение:

Ниже приводятся значения, которые получаются при исходном значении, скажем равном 30:

 

Флаги логически складываются? Что же происходит при таком сложении флагов? Вы получаете в результате истину, если хотя бы один из флагов (или сразу оба) истинны. Ниже приводятся четыре возможных сочетания двух флагов и результаты операции OR (ИЛИ) над ними.

 

Определение в нашем простом примере, следовательно, будет выглядеть так: : ОВОЩ ( n) DUP 0< SWAP 10 MOD 0= OR IF ." Артишок " THEN ;

Ниже приводится улучшенный вариант приведенного выше оп-ределения слова ?ДЕНЬ. Предыдущее определение браковало только элементы, значение которых превышало 31, а отрицатель-ные значения не допускались вовсе. : ?ДЕНЬ ( день) DUP 1 < SWAP 31 > OR IF ." Ошибка " ELSE ." Спасибо " THEN ;

(Во многих Форт-системах для таких случаев предусмотрено слово WITHING (В ИНТЕРВАЛЕ). См. вопросы в конце главы.)

Другой комбинацией флагов является комбинация по принципу И. Здесь для получения истины оба флага должны быть истинны. Например, чтобы сделать сквозняк, нужно открыть обе двери: входную И выходную. Сравните с комбинацией ИЛИ: если входная ИЛИ выходная дверь (или сразу обе) будут открыты, то налетят мухи1.

Форт включает слово AND (И), Ниже приводится таблица результатов операции AND над двумя флагами:

1 Для любознательных и начинающих. Применение слов, аналогичных «или»' и «и», при создании некоторых фрагментов прикладных программ называется логикой. Нотация для логических операций была разработана в XIX в. Дж. Булем.


Начало  Назад  Вперед



Книжный магазин