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




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


Если нет совпадения ни с одной буквой, выполняется слово OTHER. Так же как и в NCASE, слово OTHERWISE, слово или слова, следующие за ним до слова CASEND, не являются обязательными. Заметьте, что не должно быть пробела между буквами или между буквами и кавычкой, если только вы не используете пробел для обозначения одного из вариантов выбора. Применение слова ACASE сходно с применением и NCASE, поэтому вместо разбора примеров предлагаем вам освоить его применение на упражнениях.

Упражнения

1. Создайте конструкцию выбора по целому, пользуясь векторным исполнением, которая выполняла бы арифметические действия над вторым и третьим числами в стеке по следующим правилам. Если в стеке находится 1, то слово ARITH выполняет сложение +; если 2, то вычитание -; если 3 или 4. то соответственно операции умножения * или деления /. Измените слово ARITH, пользуясь конструкцией IF так, что если число в стеке не попадает в диапазон чисел от 1 до 4, то в стек помещается 0. 2. Дайте другое определение слова ARITH, используя слово NCASE (включите выдачу нуля в стек, если используется неправильное число). 3. Определите слово NEWARITH, используя ACASE, так чтобы оно ожидало нажатия клавиши. Если будет нажата клавиша "+", числа нужно сложить; если нажата клавиша "-'', то вычесть; если нажата клавиша "*" или "/", то умножить или разделить соответственно. Если нажата неверная клавиша, то в стек должен выдаваться нуль. 4. Переделайте определение NEWARITH в NEWARITH1, используя конструкцию IF...ELSE...THEN. После того как вы это сделаете, вы оцените пользу слова ACASE. 5. Переделайте NEWARITH, как описано в упражнении 3, чтобы при нажатии неправильной клавиши печаталось сообщение " Неверный ввод " и исполнение прерывалось. Проделайте это, применяя слова ABORT и ABORT". 6. Можете ли вы придумать ситуацию, когда предпочтительнее использовать не NCASE и ACASE, а векторное исполнение?

Выводы

В некотором смысле возможность ветвления делает программу более эффективной.


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