Similar presentations:
Переменные и процедуры
1.
3 Переменные и процедуры2.
3. 1 ПеременныеЧтобы определить переменную, ее имя и значение нужно занести в
текущий словарь. Это делается с помощью оператора def.
Например, определение переменной со значением, равным году
поступления в университет:
/beg_education 2014 def
Косая черта перед именем переменной beg_education показывает,
что интерпретатору следует поместить это имя в стек как литерал и не
искать его в словаре. Вслед за именем в стек заносится число 2014.
Затем def берет оба эти объекта из стека и помещает их в текущий
словарь. Второй элемент стека (beg_education ) становится ключом, с
которым ассоциировано значение первого элемента (2014).
Оператор def можно рассматривать как аналог оператора
присваивания в языках программирования.
-
Определенное с помощью def значение переменной можно
изменить новым оператором def;
использовать в других операторах.
3.
Определим новую переменную со значением, равным годуокончания университета:
/end_education beg_education 4 add def
Стек
Словарь
Ключ
Значение
beg_education
2014
end_education
2018
end_education
end_education
2014
end_education
2014
end_education
2018
4
4.
3.2 ПроцедурыПроцедура - это набор операторов, сгруппированных под общим
именем. Имя процедуры является ключом в словаре, а набор
операторов ассоциируется с ее значением.
Процедуры в PostScript определяются с помощью оператора def.
Набор операторов процедуры должен быть заключен в фигурные
скобки.
/name { операторы процедуры } def
Когда возникает потребность в выполнении набора операторов
процедуры, имя процедуры указывается в программе как отдельный
оператор. В языках программирования это называется вызовом
процедуры.
Данные, с которыми работает процедура, могут указываться
непосредственно в наборе операторов процедуры или загружаться в
стек перед вызовом процедуры.
5.
Программа перевода из миллиметров в пунктымм 25.4 / 72 *
мм 25.4 div 72 mul
Например,
100 25.4
-35 25.4
div
div
72
72
mul
mul
общие действия
Процедура перевода из миллиметров в пункты
Общие действия образуют набор операторов процедуры. Расстояние
в мм – данное, которое нужно будет загрузить в стек непосредственно
перед вызовом процедуры.
Определение процедуры:
/mm_to_pt { 25.4
div
72
Вызовы процедуры:
100 mm_to_pt
-35 mm_to_pt
mul } def