dup dup pop 23 exch pop pop 34 23 2 copy count dup 3 index 3 copy б copy
Г2. Инвертор
Какая последовательность операторов стека PostScript изменяет порядок верхних К элементов, если О К-3; О К-А.
ГЗ. Копирование?
Если бы команды сору уже не было в языке PostScript, смогли бы вы создать ее из других операторов PostScript?
Г1.5. Некоторые арифметические операторы
Два верхних элемента стека могут быть скомбинированы с помощью одного из нескольких арифметических операторов, таких как add, sub, mul. В случае любого из операторов два верхних элемента выталкиваются и комбинируются в соответствии с оператором, а результат проталкивается обратно в стек. Если оба оператора целые, то результат также целый. В противном случае результат вещественный. Ниже приведены примеры работы этих операторов:
Add: -5.2 12 add -* 6.8
Subtract: -5.2 12 sub -* -17.2 Multiply: -5.2 12 mul -» -62.4
1006
Приложение Г. Введение в PostScript® Для деления существует два оператора: d1v и 1d1v. Оператор d1v Выполняет обычное деление с целыми и вещественными числами и в результате выдает вещественное число. Оператор idiv работает только с целыми и возвращает Целую часть результата деления:
-27 8 div -» -3.375 -27 8 idiv -* -3
Оператор модуля mod возвращает остаток от деления второго от вершины стека целого числа на верхнее целое число:
178 34 25 7 mod -» 178 34 4 178 18 2547 10 mod -+ 178 18 7
С помощью последовательности операторов проталкивания и арифметических операторов можно использовать PostScript для вычисления значений более сложных выражений, сохраняя результат в стеке.
Пример
Вычислите выражение 1 + 3- 5- 6- 8- 9И оставьте результат в вершине стека. Решение
1 3 5 mul add 6 8 9 mul mul sub
Пример
Вычислите 8 - 242 - 3 - 24 + ê. Решение
24 dup mul 8 nul 3 24 mul sub 8 add
Кроме того, PostScript предлагает «побитовые» операторы, работающие с отдельными битами целого числа. Если пит - целые числа, то п m and -» (п & m) (% the bitwise aadof n and m) X побитовое умножение пит n m or -* (n | m) (t the bitwise orof n and m) % побитовое сложение пит