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


ВЫХОД ИЗ ЦИКЛА (LEAVE) И ВЕТВЛЕНИЕ (BRANCH) - часть 2


Как правило, лучше применять это сочетание в качестве последнего выражения перед LOOP.

Еще одно предупреждение: как и все условные операторы, слово LEAVE должно находиться в том же определении, что и условия, по которым оно покидает цикл (DO и LOOP). Запомните, что нельзя помещать LEAVE в определении слова, вызываемого из цикла. Приведем пример неправильного использования слова LEAVE:: ВЫБОР ВАРИАНТ1 IF ВАРИАНТ2 LEAVE THEN ; : НЕПРАВИЛЬНЫЙ-ЦИКЛ 1000 0 DO ВЫЧИСЛЕНИЯ ВЫБОР LOOP ;

Здесь LEAVE используется вне цикла. Эти определения будут скомпилированы, но при выполнении приведут к непредсказуемому результату (возможно, даже к разрушению системы).

Два полезных приема. PAGE и QUIT. Для того чтобы придать более аккуратный вид данным, выводимым циклически (таким как таблицы и геометрические фигуры), перед выводом информации вам, возможно, придется очистить экран с помощью слова PAGE (СТРАНИЦА). Вы можете использовать слово PAGE непосредственно всякий раз, когда нужно очистить экран

PAGE ПРЯМОУГОЛЬНИК

При этом экран будет очищаться перед выводом прямоугольника, который вы определили ранее. А можно поместить слово PAGE один раз в начало определения:: ПРЯМОУГОЛЬНИК РAGЕ 256 0 DO I 16 MOD 0= IF CR THEN ." *" LOOP ;

Если вы не хотите, чтобы по завершении вычисления на экране появилось приглашение ok, примените слово QUIT (ВЫЙТИ). Вы можете использовать QUIT непосредственно:

ПРЯМОУГОЛЬНИК QUIT

а можете сделать его последним словом определения (перед точкой с запятой).

Ниже дается перечень слов Форта, приводимых в настоящей главе. DO ... LOOP DO: ( граница Организация цикла со счетчиком по задан- индекс -- ) ному диапазону индексов. LOOP: ( -- )

DO ... +LOOP DO: ( граница Аналогично DO ... LOOP . Только к ин- индекс — ) дексу на каждом шаге добавляется значение +LOOP: ( n -- ) n (а не как всегда единица ).

LEAVE ( -- ) Немедленное завершение выполнения цикла LOOP или +LOOP. (Используетея только внутри цикла.)

BEGIN ... UNTIL: ( ? -- ) Организация цикла с условием, который за- UNTIL вершается, когда ? принимает значение истина.

BEGIN ххх WHILE: ( ? -- ) Организация цикла с условием, причем ххх WHILE ууу выполняется всегда, а ууу—только REPEAT если ? истинно.

.R ( u ширина- Вывод числа одинарной точности без зна- поля -- ) кa. Число выровнено справа по границе поля.

PAGE ( -- ) Чистка экрана дисплея и установка курсора в верхний левый угол.

QUIT ( -- ) Завершение выполнения текущей задачи и возврат управления на терминал.




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



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