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



         

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


Однако такое определение будет очень медленным. Многие программисты стремятся чаще использовать конструкцию IF...THEN, избегая применения слов МАХ и MIN. Но это их ошибка, поскольку МАХ и MIN позволяют значительно ускорить исполнение программы.

Слова ABS и NEGATE воздействуют на знак чисел. (Со словом NEGATE вы встречались в гл. 3.) Слово ABS возвращает в стек абсолютную величину числа. Так, например, -5 ABS возвращает в стек 5, а 5 ABS выдает в стек то же самое число 5.

В свою очередь, слово NEGATE всегда изменяет знак числа. Т.е. -5 NEGATE положит в стек 5, в то время как 5 NEGATE вернет в стек -5. Более медленная версия слова ABS, основанная на применении NEGATE и конструкции IF...THEN, приводится ниже: : ABS DUP 0 < IF NEGATE THEN ; Покажем применение этих операторов на нескольких упражнениях.

Упражнения

1. Определите слово, которое будет печатать наибольшее из трех верхних чисел в стеке. 2. Определите слово, которое будет печатать наименьшее из трех верхних чисел в стеке, оставляя в стеке исходные числа. 3. Определите слово, которое будет выдавать в стек 1, если любое из трех верхних чисел больше 5 (используйте оператор >). 4. Определите слово, которое будет возвращать 1. если все три верхних числа в стеке больше 5 (также используйте один из операторов сравнения), 5. Опишите слово, которое будет возвращать 1, если число на вершине стека больше, чем два следующих, находящихся ниже. 6. Определите слово, которое будет выражать разность температур, два значения которых находятся в стеке, как положительное число, независимо от знака температуры. 7. Определите слово, которое будет находить наибольшую абсолютную величину двух чисел, независимо от того, положительные они или отрицательные. 8. Определите слово, которое будет выдавать абсолютное значение того из двух чисел, которое ближе к нулю, независимо от знака чисел. 9. Используйте слово NEGATE для определения слова, действующего противоположно слову ABS, т.е. возвращающего число, равное по абсолютному значению исходному числу, но всегда отрицательное или нулевое. 10.


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