Синтаксис print
Команда print имеет почти такой же синтаксис, что и display, но не форматирует вывод.
Команда print производит одну строку вывода:
print sum {p in PROD, t in 1..T} revenue[p,t]*Sell[p,t], sum {p in PROD, t in 1..T} prodcost[p]*Make[p,t], sum {p in PROD, t in 1..T} invcost[p]*Inv[p,t]; 787810 269477 3300 print {t in 1..T, p in PROD} Make[p,t]; 5990 1407 6000 1400 1400 3500 2000 4200
Если за print следует индексное выражение и двоеточие, тогда формируется вывод каждого элемента набора индекса:
print {t in 1..T}: {p in PROD} Make[p,t]; 5990 1407 6000 1400 1400 3500 2000 4200
Печатные записи обычно разделяются пробелом. Параметр print_separator может использоваться для изменения вида разделения. Например, можно установить print_separator для вложенных данных, которые будут импортированы из электронной таблицы. Для этого необходимо задать option print_separator "→", где → обозначает результат нажатия клавиши табуляции. За ключевым словом print (с необязательным индексным выражением и двоеточием) следует элемент печати или список элементов печати, разделенных запятыми. Элемент печати может быть значением или индексным выражением, за которым следует значение или заключенный в скобки список значений. Таким образом, элемент печати очень похож на элемент отображения, за исключением того, что могут отображаться только отдельные значения. Вместо короткого display rate, необходимо явно указать print{p в PROD} rate[p]. Таким образом, набор не может быть аргументом print, его аргументом могут быть элементы набора:
print PROD; syntax error context: print >>> PROD; <<< print {p in PROD} (p, rate[p]); bands 200 coils 140
В отличие от display, print позволяет индексированию быть вложенным в индексированный элемент:
print{p in PROD}(p, rate[p], {t in 1..T} Make[p,t]); bands 200 5990 6000 1400 2000 coils 140 1407 1400 3500 4200
Параметры print
Представление чисел в выводе print регулируется параметрами print_precision и print_round, которые работают точно так же, как параметры display_precision и display_round для команды display.
Изначально print_precision равен 0, а print_round - пустая строка, поэтому по умолчанию print использует столько цифр, сколько необходимо для представления значений с максимально возможной точностью. Для приведенных выше примеров print_round был установлен в 0, так что числа округляются до целых.
Работая в интерактивном режиме, полезно использовать print для просмотра нескольких значений на экране в более компактном формате, чем производит display. С выводом, перенаправленным в файл, print полезен для записи неформатированных результатов в форме, удобной для электронных таблиц и других инструментов анализа данных. Как и в случае с display, нужно просто добавить >filename в конце команды print.