Семь уроков по PostScript

         

Операторы add и sub.



Операторы add и sub.

Операторы смотрят находятся ли в стеке их операнды. В общем случае оператор удаляет их из стека и помещает туда результат выполнения своих действий. Например, оператор add (сложение) удаляет из стека два верхних числа, складывает их и оставляет сумму в стеке. Так строка программы, приведенная ниже, будет влиять на стек как показано на рисунке. Аналогично работает оператор sub, вычитающий число, находящееся в вершине стека, из числа, лежащего в стеке следующим.

Другие арифметические операторы:

div - деление. Второе число делится на число в вершине стека.

13 8 div -> 1.625

idiv - целочисленное деление.

25 3 idiv-> 8

mod - второе число делится на число в вершине стека, сохраняя остаток от деления.

7 5 mod-> 8

Операнды операторов mod и idiv должны быть целыми числами.

mul - перемножает два числа в вершине стека, помещая вместо них их произведение.

8 9 mul-> 72

neg - изменяет знак числа, находящегося в вершине стека.

-37 neg-> 37

(sgrt, exp, ceiling, sin)

Запись арифметических выражений.

Выражение 5+(8:2) на языке PostScript можно представить несколькими способами:



82 div 5 add

либо

5 8 2 div add

Чуть более сложный случай, выражение 9-(4*7), можно записать минимум двумя способами:

9 4 7 mul sub

4 7 mul 9 exch sub

Во втором способе введен новый оператор exch. Он меняет местами положение двух верхних чисел в вершине стека.

рисунок

Применение оператора exch вызвано тем, что sub вычитает число в вершине стека из следующего за ним, что без exch приводит к неверному порядку действий.



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