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

         

РЕЖИМ КАЛЬКУЛЯТОРА


Ниже приводятся четыре простейшие операции над целочисленными значениями, записанные на языке Форт1: + плюс ( n1 n2 -- сумма ) сложение ( n1 + n2 ) - минус ( n1 n2 -- разность) вычитание ( n1 - n2 ) * звездочка ( n1 n2 -- произведение) умножение ( n1 * n2 ) / слэш ( n1 n2 -- частное) деление ( n1 / n2 )

В отличие от калькулятора на терминале компьютера не предусмотрены специальные клавиши для выполнения операций умножения и деления. Вместо них мы пользуемся клавишами * и /.

Из предыдущего раздела вы уже знаете, что можно сложить два числа, поместив их в стек и выполнив слово +, а затем ., чтобы вывести результат на терминал:

1 Для нематематиков. Хотя данная глава и напоминает .немного учебник по алгебре, решение математических задач— всего лишь небольшая часть из того, что вы сможете делать с помощью Форта. Позднее вы познакомитесь с другими применениями Форта. Здесь же уместно напомнить, что целые числа — это такие круглые числа, как ... — 3, —2, —1, 0, 1, 2, 3, ,.., а целочисленная арифметика (что достаточно логично) — операции над целыми числами.17 5 + . 22 ok

Вы можете выполнить таким образом все арифметические операции даже без составления «программы», используя Форт-систему как калькулятор. Решите задачу на умножение: 7 8 * . 56 ok

Как видите, знак операции следует за значениями. Если же вы производите вычитание и деление, необходимо учитывать порядок следования значений («7 — 4» не эквивалентно «4 — 7»).

Запомните следующее правило: для записи выражения в пост-фиксной форме достаточно передвинуть знак операции в конец этого выражения: 

РЕЖИМ КАЛЬКУЛЯТОРА

Поэтому чтобы выполнить вычитание

7 - 4 =

наберите на клавиатуре 7 4 - . 3 ok

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


10.00 2.25 +

но и то, что вы можете получить лишь целочисленный результат, т. е.

21 4 / . 5 ok , а не 5.25 ok

Во-вторых, если вы попытаетесь выполнить умножение: 

10000 10 *

или перемножить подобные большие числа, то получите неожиданный результат. Поэтому мы вас предупреждаем, что все операции, о которых шла речь выше, а также операция, для вывода результата могут выполняться только над числами, лежащими в диапазоне от — 32 768 до 32767. Эти числа называются числами одинарной длины со знаком.

 
РЕЖИМ КАЛЬКУЛЯТОРА


Напомним, что, рассматривая перечень слов Фopтa, мы употребляли букву n, чтобы обозначить место, где должно находиться число. Так как в Форте числа одинарной длины используются гораздо чаще чисел других типов, вместо п следует подставлять число одинарной длины. Конечно, существуют операции, которые выполняются и над значениями из расширенного диапазона (двойной длины). Они обозначаются буквой d.

Все эти непонятные пока проблемы будут объяснены в свое время, так что не снижайте внимания.

Порядок чисел остается тем же. В качестве примера решите задачу на деление: 20 4 /

Слово / определено таким образом, что нижнее число в стеке делится на число, находящееся в его вершине. 

РЕЖИМ КАЛЬКУЛЯТОРА


Как поступить, если необходимо выполнить несколько операций? Например: 4 + (17 * 12)

Как известно, сначала нужно выполнить операцию, указанную в скобках, т. е. 17 умножить на 12, а затем добавить четыре. На Форте это будет выглядеть так:17 12 * 4 + . 208 ok

РЕЖИМ КАЛЬКУЛЯТОРА


Числа 17 и 12 помещаются в стек. Слово * перемножает их и возвращает результат в стек.

Далее число 4 помещается в стек над числом 204. Слово + «выкатывает» суммирующую машину и складывает эти два числа, а в стек возвращается только результат.

 
РЕЖИМ КАЛЬКУЛЯТОРА


Предположим, вы хотите сложить пять чисел. Вы можете это сделать на Форте, скажем, так: 17 20 + 132 + 3 + 9 + . 181 ok

 
РЕЖИМ КАЛЬКУЛЯТОРА


Еще одна интересная задача: (3+9) * (4+6)

Чтобы ее решить, мы должны сначала сложить числа 3 и 9, затем 4 и 6 и, наконец, перемножить полученные две суммы.На Форте это можно записать следующим образом: 3 9 + 4 6 + *

В результате вы получите.

 
РЕЖИМ КАЛЬКУЛЯТОРА


Заметьте, что мы весьма кстати сохранили сумму, равную 12, в стеке на то время, пока складывали числа 4 и 6.

Помните, что мы еще не пишем определений, а лишь используем Форт-систему в режиме калькулятора. Начинающим, возможно, потребуется решить несколько практических задач для того, чтобы чувствовать себя увереннее в применении постфиксной записи.


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