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


НЕМНОГО ЛОГИКИ - часть 2


Этот раздел математики теперь называют булевой алгеброй. Таким образом, термин «булевский флаг» (или даже «булевская переменная») просто обозначает флаг, который будет использован в логической операции. 

Иными словами, только пара значений «истина» дает в результате истину.

Допустим далее, что мы подбираем картонный ящик для дисковода, имеющего следующие параметры: высота — 6 дюймов, ширина — 19 дюймов, длина — 22 дюйма. Для того чтобы дисковод поместился в ящик, должны быть выдержаны все параметры: и высота, и ширина, и длина. Если параметры ящика заданы в стеке, то можно написать следующее определение: : ОБЪЕМ ( длина ширина высота -- ) 6 > ROT 22 > ROT 19 > AND AND IF ." Подходит " THEN ;

Проверить слово ОБЪЕМ можно следующей фразой:23 20 7 ОБЪЕМ Подходит ок

Третий вид комбинации флагов называется исключающим ИЛИ. В Форте эта операция выполняется словом XOR. Результат получается истинным только в тех случаях, когда хотя бы один из флагов истинен, но не оба сразу.

Ниже приводится пример применения такой операции. Слово ?ЗНАКИ выбирает из стека два числа. Если их знаки совпадают (оба числа положительны или оба отрицательны), то выдается сообщение «Знаки совпадают», в противном случае выдается сообщение «Знаки разные»:: ?ЗНАКИ ( nl n2 — ) 0< SWAP 0< XOR IF ." Знаки разные " ELSE ." Знаки совпадают • THEN ;

По мере усложнения ваших прикладных программ вы можете писать операторы Форта в виде текста на естественном языке в постфиксной форме, что очень легко читается. Только определите где-нибудь отдельные слова, находящиеся внутри определения, которые будут проверять некоторое условие и оставлять в стеке флаг. Следующий пример: вам предстоит выполнить фотосъемку, но прежде необходимо проверить освещенность И наличие пленки в фотоаппарате:: ФОТОСЪЕМКА ?СВЕТ ?ПЛEHKA AND IF СНИМОК THEN ;

Другой фрагмент, который мажет быть использован в программе обработки данных:: СЛУЖБА-ЗНАКОМСТВ C-ЮМОPOM ОТЗЫВЧИВЫЙ AND ЛЮБИТ-ИСКУССТВО ЛЮБИТ-МУЗЫКУ OR AND КУРИТ NOT AND IF ." У нас имеется подходящая для вас кандидатура " THEN ;

Здесь такие слова, как С-ЮМОРОМ и ОТЗЫВЧИВЫЙ, предназначены для выполнения проверки записи из дискового файла, содержащего информацию о возможных партнерах.

Обращаем ваше внимание на то. что до тех пор, пока мы не oбясним некоторые тонкости использования слов NOT, OR, AND, и XOR, их следует применять только с аргументами, являющимися логическими флагами, т.е. с нулем или отрицательной единицей. Все рассмотренные выше операции сравнения (за исключением операции « — », применяемой вместо «не равно») оставляют в стеке логические флаги Поэкспериментируйте, чтобы посмотреть, как выполняются команды NOT, OR, AND и XOR с числами, отличными от 0 и -1




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



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