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



         

Глава 4. Еще об арифметических операциях - часть 7


Используйте идеи из упражнений 2 и 3 и напишите слово для определения номера строки и номера в строке любого символа в тексте из строчек фиксированной длины. При вызове слова в стеке должны находиться номер символа и длина строки, Приемы, которые вы применили в упражнениях 2-4, пригодятся впоследствии, когда вам потребуется определить местонахождение данных, хранящихся в блоках форта, а именно эти приемы помогут вам найти номер блока, в котором находится конкретный фрагмент данных и число байтов смещения внутри этого блока. 5. Напишите определение слова MOD (под именем NEWMOD) для Форт79, используя стандарт Форт-83- В этом процессе вам нужно будет дать определение деления / в Форт-79. 6. Найдите значение выражения 2000*100/30. Проделайте это двумя способами, избегая в обоих случаях переполнения. В первом используйте */, в другом - /MOD- Теперь проделайте то же, чтобы в результате выдавалось значение частного и остатка. Можете ли вы сделать это также двумя способами? Дальше мы узнаем, как использовать остаток, который получается со словом MOD для выполнения арифметических операций с имитацией плавающей запятой.

Операции с величинами и знаками чисел

Каждое из слов МАХ и MIN сравнивают два числа и оставляют в стеке соответственно большее. или меньшее из них. Так, например, 7 3 МАХ оставляет в стеке 7, в то время как 7 3 MIN возвращает в стек 3. Имеется много применений этих слов, некоторые из них мы увидим в упражнениях. Одно из наиболее частых применений - для ограничения диапазона чисел, поступающих входе. Предположим, что вы хотите ограничить диапазон чисел значениями от 5 до 25. Это может быть сделано следующим словом: : LIMIT-RANGE 5 МАХ 25 MIN :

Если встречается число больше, 25, то в стек помещается число 25, в то же время, когда число меньше 5, в стек помещается 5. При определении слов FL/ и FLMOD вы уже видели, как можно сравнить числа, и использовали для этого конструкцию IF...THEN, и вам, вероятно, нетрудно представить, что МАХ и MIN можно определить таким же способом.


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