Язык программирования Форт



         

Глава 7. Операторы сравнения и ветвления - часть 13


Но вы не хотите, чтобы слово TASK исполнялось, если в каком-либо диапазоне общий счет превысил 200. Иначе говоря, вы хотите прекратить исполнение, если количество случаев попадания в какой-либо диапазон превышает 200. Представляем слово, которое решает эту задачу : : (WT) DUP 100 < IP 1COUNT @ 199 > IF EXIT THEN TASK1 ELSE DUP 200 < IF 2COUNT @ 199 > IF EXIT THEN TASKS ELSE DUP 300 < IF 3COUNT @ 199 > IF EXIT THEN TASK3 THEN THEN THEN DROP ;

Этот пример показывает, что если использование слова EXIT в единственной конструкции IF...ELSE приводит к появлению лишних бесполезных слов, то во вложенных конструкциях IF...ELSE слово EXIT становится существенно необходимым.

Прежде чем закончить этот раздел, укажем на менее употребительное слово из Форт-83 и других версий - ABORT". Это слово ищет флаг в стеке и исполняется, если его значение истина, т.е. слово ABORT" содержит внутри себя конструкцию IF. Слово ABORT" выдает сообщение, которое следует после ", а затем исполняет операции присущие слову ABORT. Его назначение состоит в том, чтобы обнаруживать ошибки и давать об. этом сообщение. Вот, например, определение слова 0/? с использованием слова ABORT": : 0/? ?DUP 0= ABORT" Ошибка деления на 0 " ;

Приведенные ниже упражнения покажут некоторые более полезные на практике применения рассмотренных слов,

Упражнения

1. Определите слово ?END для оптимального выхода из программы, которая задавала бы следующие вопросы и выполняла бы соответствующие вашим ответам действия: Do you want to quit? (Y/N) Вы хотите закончить работу? и если введен ответ Y(да), то Do you want to save the stack? (Y/N) Вы хотите сохранить стек? (Да/Нет) 2. Если слово ?223 вводится непосредственно (не входит в определение через двоеточие), имеются ли какие-либо различия в его действии при следующих трех способах его определения : : ?223 223 = IF 1 COUNT +! ELSE QUIT THEN ; : ?223 223 = IF 1 COUNT +! ELSE EXIT THEN ; : ?223 223 = IF 1 COUNT +! THEN ; 3.


Содержание  Назад  Вперед