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

         

РЕКОМЕНДАЦИИ ПО ПРИМЕНЕНИЮ ОПЕРАТОРА DO В СТИЛЕ ФОРТА


Как уже отмечалось, слова DO и LOOP являются операторами управления и, следовательно, должны быть выполнены в пределах одного определения. Это означает, что вы не можете выполнить отладку определений, содержащих цикл, в режиме калькулятора, за исключением тех случаев, когда вы моделируете цикл сами.

Рассмотрим, каким образом «оперившийся» программист может заняться отладкой определения СЛОЖНЫЕ-ПРОЦЕНТЫ (из первого раздела настоящей главы). Прежде чем добавить сообщения ." , программист может кратко записать такой вариант на листе бумаги: : СЛОЖНЫЕ-ПРОЦЕНТЫ ( вклад процент — ) SWAP 21 1 DO CR I . 2DUP R% + DUP . LOOP 2DROP ;

Он может вести отладку этого варианта за терминалом, используя . или .S для проверки результата на каждом шаге цикла. Такой «диалог» выглядит следующим образом:

При моделировании мы не используем фразы "граница счетчик DO", "I" и "DUP".1000 6 SWAP .S<return>

6 1000 ok 2DUP .S<return> Шаг 1

6 1000 6 1000 ok R% .S<return>

6 1000 60 ok

+ .S<return>

6 1060 ok 2DUP R% + .S<return>

6 1124 ok 2DROP .S<return> Шаг 2

Стек ПУСТ ok

Цикл отлажен. Считая, что выполнен последний шаг, проверяем, не пуст ли стек.

Полезный прием. Как очистить стек и при этом эмоционально разрядиться. Иногда начинающий программист может случайно написать цикл, который после себя оставляет в стеке множество значений, например:

: ПЯТЕРКИ ( -- ) 100 0 DO I 5 . LOOP ;

вместо

: ПЯТЕРКИ ( — ) 100 0 DO I 5 * . LOOP ;

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

ASDFKJ

что, естественно, не является словом Форта и приведет к тому, что текстовый интерпретатор вызовет ABORT, который, помимо всего прочего, почистит оба стека. (Но объясните новичку, что не нужно бить по клавишам при каждой ошибке.)



Содержание раздела







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий