Компьютерные и информационные технологии



43

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

 

Кафедра прикладной математики и информатики

 

 

 

 

 

 

 

 

 

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе по курсу: «Методы и средства компьютерных информационных технологий»

 

 

 

 

 

 

 

 

 

 

 

 

 

Руководитель:                                                                                                                              

(подпись)                                                        (дата)

 

Разработал:                                                                                                                               Струк С.В.

ст. гр. ЦПИН-10п                            (подпись)                                                        (дата)

 

 

 

 

 

 

 

 

 

 

ДОНЕЦК 2011

 



43

 

РЕФЕРАТ

 

 

Пояснительная записка к курсовому проекту содержит: 68 страниц, 7 рисунков, 8 приложений, 5 источников.

 

Цель работы: изучить язык Postscript. Используя средства языка Postscript, написать программу, которая интерпретировалась бы как картинка, включающая в себя все базовые графические примитивы, различный текст, циклы. Также средствами языка Postscript написать программу, результатом которой является письмо рекламного содержания, включающее в себя текст (английский), печать (круглая), подпись.

Изучить систему команд для управления матричным принтером. Используя данные команды, организовать форматирование текста с последующим выводом на печать на матричный принтер.

Изучение структуры мыши и операций низкоуровневой работы с ней.

Проработать загружаемые наборы символов (можно на языке низкого уровня).

 

 

 

 

POSTSCRIPT, КОМАНДА, ПРИНТЕР, АССЕМБЛЕР, РЕГИСТР, ГРАФИЧЕСКИЕ ПРИМИТИВЫ, ТЕКСТ, ИМПУЛЬС, МЫШЬ, АДАПТЕР

 



43

 

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ……………………………………………………………………………5

1 Изучение языка PostScript………………………………………………….8

1.1 Основные понятия языка PostScript…………………………………………......8

1.2 Графика и текст в PostScript…………………………………………………12

1.3 Пример создания программы на языке PostScript………………………….14

2 СИСТЕМА КОМАНД ДЛЯ УПРАВЛЕНИЯ МАТРИЧНЫМ ПРИНТЕРОМ…….18

2.1 Основные понятия…………………………………………………………………18

2.2 Команды управления режимами печати…………………………………………22

2.3 Команды перемещения бумаги…………………………………………………...24

2.4 Работа с загружаемым знакогенератором………………………………………..26

2.4.1 Подготовка образов загружаемых символов для черновой печати……...26

2.4.2 Подготовка образов загружаемых символов для качественной печати...28

2.4.3 Команды работы с загружаемым знакогенератором……………………..29

3 ПРИЕМЫ НИЗКОУРОВНЕВОЙ РАБОТЫ С МЫШЬЮ…………………………..33

3.1 Структура мыши………………………………………………………………….33

3.2.Операции низкоуровневой работы с мышью………………………………….34

4. ЗАГРУЖАЕМЫЕ СИМВОЛЫ……………………………………………………….40

ВЫВОДЫ………………………………………………………………………………..43

Перечень ссылок…………………………………………………………………………44

Приложение А.1. Листинг программы, которая интерпретировалась средствами языка Postscript как картинка, включающая в себя все базовые графические примитивы, различный текст, циклы

ПРИЛОЖЕНИЕ А.2. Листинг программы, которая интерпретировалась средствами языка Postscript, результатом которой является письмо рекламного содержания, включающее в себя текст (английский), печать (круглая), подпись

ПРИЛОЖЕНИЕ Б.1. Демонстрация пошагового применения системы команд управления матричным принтером

ПРИЛОЖЕНИЕ Б.2. Команды принтера для печати текста в черновом режиме

с использованием разработанных матриц символов и загружаемого знакогенератора

ПРИЛОЖЕНИЕ В.1. Листинг программы низкоуровневой работы с мышью (на языке низкого уровня - Ассемблере)

ПРИЛОЖЕНИЕ Г.1. Листинг программы на языке Ассемблер для применения замены шрифта, например, на шрифт GOTHIK.FNT, ко всем символам

на экране

ПРИЛОЖЕНИЕ Г.2. Листинг программы на языке Ассемблер для замены в стандартной таблице знакогенеpатоpа любого символа, например цифры «7», на букву греческого алфавита, например на «ми»

ПРИЛОЖЕНИЕ Г.3. Листинг программы на языке Ассемблер для замены буквы английского алфавита на соответствующую на клавише букву русского алфавита, например, «f»→«а»

 

 


ВВЕДЕНИЕ

 

Технология в переводе с греческого (techne) означает искусство, мастерство, умение, а не что иное, как процессы. Под процессом следует понимать определённую совокупность действий, направленных на достижение поставленной цели. Процесс должен определяться выбранной человеком стратегией и реализовываться с помощью совокупности различных средств и методов.

Под технологией материального производства понимают процесс, определяемый совокупностью средств и методов обработки, изготовления, изменения состояния, свойств, формы сырья или материала. Технология изменяет качество или первоначальное состояние материи в целях получения материального продукта.

Информация является одним из ценнейших ресурсов общества наряду с такими традиционными материальными видами ресурсов, как нефть, газ, полезные ископаемые и др., а значит, процесса её переработки по аналогии с процессами переработки материальных ресурсов можно воспринимать как технологию. Тогда справедливо следующее определение.

Информационная технология – процесс, использующий совокупность средств и методов сбора, обработки и передачи данных (первичной информации) для получения информации нового качества о состоянии объекта, процесса или явления (информационного продукта).

Цель технологии материального производства - выпуск продукции, удовлетворяющей потребности человека или системы.

Цель ИТ - производство информации для её анализа человеком и принятия на его основе решения по выполнению какого-либо действия.

Известно, что, применяя разные технологии к одному и тому же материальному ресурсу, можно получить разные изделия, продукты. То же самое будет справедливо и для технологии переработки информации.

Информационная технология тесно связана с информационными системами, которые являются для нее основной средой. На первый взгляд может показаться, что определения информационной технологии и системы очень похожи между собой. Однако это не так.

Информационная технология является процессом, состоящим из четко регламентированных правил выполнения операций, действий, этапов разной степени сложности над данными, хранящимися в компьютерах. Основная цель информационной технологии — в результате целенаправленных действий по переработке первичной информации получить необходимую для пользователя информацию.

Информационная система является средой, составляющими элементами которой являются компьютеры, компьютерные сети, программные продукты, базы данных, люди, различного рода технические и программные средства связи и т.д. Основная цель информационной системы — организация хранения и передачи информации. Информационная система представляет собой человеко-компьютерную систему обработки информации.

Реализация функций информационной системы невозможна без знания ориентированной на нее информационной технологии. Информационная технология может существовать и вне сферы информационной системы. Информационная технология мультимедиа, где с помощью телекоммуникационной связи осуществляются передача и обработка на компьютере изображения и звука.

Таким образом, информационная технология является более емким понятием, отражающим современное представление о процессах преобразования информации в информационном обществе. В умелом сочетании двух информационных технологий — управленческой и компьютерной — залог успешной работы информационной системы.

Реализация технологического процесса материального производства осуществляется с помощью различных технических средств, к которым относятся: оборудование, станки, инструменты, конвейерные линии и т.п.

По аналогии и для информационной технологии должно быть нечто подобное. Такими техническими средствами производства информации будет являться аппаратное, программное и математическое обеспечение этого процесса. С их помощью производится переработка первичной информации в информацию нового качества. Выделим отдельно из этих средств программные продукты и назовем их инструментарием, а для большей четкости можно его конкретизировать, назвав программным инструментарием информационной технологии. Определим это понятие.

Инструментарий информационной технологии - один или несколько взаимосвязанных программных продуктов для определенного типа компьютера, технология работы в котором позволяет достичь поставленную пользователем, цель.

В качестве инструментария можно использовать следующие распространенные виды программных продуктов для персонального компьютера: текстовый процессор (редактор), настольные издательские системы, электронные таблицы, системы управления базами данных, электронные записные книжки, электронные календари, информационные системы функционального назначения (финансовые, бухгалтерские, для маркетинга и пр.), экспертные системы и т.д.

 

 

 


1 Изучение языка PostScript

 

1.1 Основные понятия языка PostScript

 

Язык PostScript был разработан Джоном Уорноком (John Warnock) в фирме Adobe Systems в 1982 г. PostScript создавался в качестве простого стандартного языка для описания вида текста, чертежей и простых изображений на печатаемой странице, что наложило определенный отпечаток на используемые в PostScript конструкции.

Язык содержит около 250 операторов, что позволяет одни и те же действия запрограммировать самыми разными способами. С другой стороны разработчики не предполагали, что программы на PostScript будут большими, поэтому средства структуризации в языке не сильно развиты. Треть языка PostScript посвящена графике, остальное – это обычный процедурный язык программирования, который включает в себя элементы из многих других языков, но наиболее близок к языку Форт.

Очень важно, что описание страниц на PostScript не зависит от устройства, на котором страница будет воспроизведена. Как правило, программы на PostScript генерируются приложениями, например, текстовыми процессорами, программами для настольных издательских систем, в частности CorelDrow.

Одной из причин, вызвавшей появление и расцвет языка PostScript является необходимость выводить текст и изображения на растровые внешние устройства: матричные, струйные и лазерные принтеры, а также экраны мониторов. Основное свойство таких устройств заключается в том, что изображение на них строится из массива прямоугольных элементов, называемых пикселами (от picture element – элемент изображения). Каждый пиксел имеет в этом массиве свой адрес – номер строки и номер столбца, где он расположен, а также цвет: у обычных матричных принтеров пикселы могут быть либо черного цвета, либо белого (в этом случае их часто называют точками); у лазерных принтеров пикселы имеют до 256 градаций серого цвета, у цветных мониторов – до сотен тысяч цветов. Устанавливая определенные пикселы, в нужные цвета, мы получаем на экране текст и графические изображения.

PostScript-устройство (принтер, монитор) – это устройство, в котором имеется интерпретатор языка PostScript. Интерпретатор PostScript принимает из компьютера текстовый файл с описанием страницы и преобразует его в растровую форму, которая и выводится на печать или на экран. Во время преобразования описания интерпретатор выполняет различные действия, зависящие от типа устройства. Так если на черно-белое печатающее устройство выводится полутоновое изображение, то интерпретатор PostScript этого устройства выполняет разбиение полутоновых областей на зоны с определенным уровнем серого цвета и заполняет каждую зону черными точками с плотностью, зависящей от этого уровня, что создает иллюзию полутонов на результирующем изображении.

Передача описания страницы по многим причинам более выгодна, чем передача сразу всего массива составляющих страницу пикселов (растрового образа страницы). Во-первых, описание во много раз компактнее даже сильно сжатого изображения. Во-вторых, процесс подготовки печатной страницы требует значительного времени: если пересылается описание, то подготовкой к печати занимается процессор принтера или дисплейный процессор, что освобождает процессор персонального компьютера (ПК) для выполнения другой работы и тем самым повышает его производительность. И, наконец, самое важное преимущество – это независимость описания от типа устройства.

Чтобы обеспечить независимость описания страницы от всего разнообразия внешних растровых устройств в языке PostScript введено понятие текущей страницы.

:justify">Текущая страница – «идеальная»  страница в памяти, на которой рисует PostScript. Она не зависит от физических характеристик принтера, на который страница будет выводиться. В начале работы программы это совершенно чистая страница. Когда текущая страница полностью описана, она посылается на принтер, который распечатывает ее с таким качеством, которое способен обеспечить.

Текущий путь (current path) – это набор соединенных между собой отдельных точек, линий, кривых, которые вместе описывают фигуры и их положение. На текущий путь не накладывается никаких ограничений (он может пересекать сам себя и т. д.). Элементы текущего пути задаются их позициями на текущей странице.

Текущий путь обрезки (Current clipping path) – это границы области, в которой может быть нарисовано изображение.

Набор символов. Все виды скобок (круглые, квадратные, фигурные, угловые) и знак процента являются для PostScript специальными знаками. Остальные символы - подмножество кода ASCII используются в программе без ограничений и называются регулярными символами.

Стек. PostScript резервирует для обрабатываемых данных часть памяти, именуемую стеком. Данные, помещаемые в стек, извлекаются из него в обратном порядке, т. е. последнее записанное туда число удаляется первым. Такая дисциплина обслуживания называется LIFO. На самом деле PostScript оперирует четырьмя различными стеками: операндов, словарей, выполнения и состояния графики.

Стек операндов – содержит собственно объекты PostScript и результаты действий над ними. Операторы PostScript получают операнды только через стек.

Типы данных. Как и другие распространенные языки программирования PostScript поддерживает различные типы данных, включая integer, real, boolean, массивы и строки. В нём определяются также объекты типа mark (отметка, метка) и dictionary (словарь). Примеры записи целых чисел:

  345  -87  38554  0  +57

Если величина числа превышает предел для представления целых чисел, оно автоматически конвертируется интерпретатором в число типа real. Примеры записи действительных чисел:

-2.0  12.3  2E-5  0.0  345.6e8  -.025

Беззнаковые целые числа могут быть записаны в любой из 35 систем счисления с использование префикса в виде:

              база#число

где:
база – основание системы счисления, десятичное целое число от 2 до 36;
число – представление числа в системе в указанной префиксом системе счисления. Цифры в системах счисления по основанию больше 10 представляются буквами латинского алфавита от A до Z. Например:

       16#cb2e 2#11001011  8#377

Строка – это последовательность символов, заключенная в круглые скобки.

Несмотря на большое количество встроенных операторов в PostScript нет зарезервированных слов. Любое слово переопределяемо. Программа в PostScript может рассматриваться как данные и это сближает его с языками типа Лисп.

Операции над данными в PostScript требуют, чтобы их операнды сначала были помещены в стек. Такой стиль программирования, при котором операнды задаются до операции над ними (оператора) называется постфиксной нотацией. Так запись операции сложения двух чисел, допустим 4+5, в PostScript будет выглядеть так:

4 5 add

Позиция элемента на странице описывается парой координат х, у. Каждое выходное устройство имеет встроенную систему координат, с помощью которой адресуются точки на странице. Эту систему будем называть пространством устройства (device space). Оно отличается от устройства к устройству. Нет единообразия в расположении начала координат, а также масштабов по вертикальной и горизонтальной осям.

Позиция на текущей PostScript-странице описывается в системе координат пользователя (или в пространстве пользователя), которая не зависит от пространства устройства. Координаты PostScript-программе перед печатью текущей страницы автоматически преобразуются из пространства пользователя в пространство устройства. Пространство пользователя, таким образом, представляет систему координат, внутри которой страница может быть описана независимо от конкретной машины, где эта страница будет напечатана.

Пространство пользователя может быть изменено тремя способами:

начало его системы координат может быть перенесено в любую точку пространства пользователя;

оси могут быть повернуты в любом направлении;

3. масштаб по каждой оси может быть произвольно изменен, т. е. может быть задано любое линейное преобразование из пространства пользователя в пространство устройства.

Элементы данных в языке PostScript называются объектами (числа, массивы, строки, символы). Над объектами можно производить различные действия, но если в других языках объекты помещаются в переменные и адресуются указанием имени переменной, то PostScript работает с данными напрямую, используя механизм стека.

Программы на PostScript записываются с использованием только печатаемых символов кода ASCII, что позволяет обращаться с ними, как с обычными файлами, т. е. не возникает никаких проблем при пересылке таких файлов по сетям.

Для отладки программ на PostScript удобно использовать программу RIP, хотя она и работает под DOS. Так как в разных моделях принтеров реализованы различные версии этого языка, то при выводе PostScript-программы на реальный принтер посмотрите его документацию. В частности иногда перед текстом примера следует поставить знак процента, за которым следует восклицательный знак, т. е. %!. Эта комбинация символов переключает на PostScript принтер, понимающий разные языки описания страниц (обычно ещё имеется PCL5).

 

1.2 Графика и текст в PostScript

 

Язык PostScript был разработан для получения графических изображений, для этого у него имеется большой набор операторов. Рисование в PostScript начинается с конструирования пути на идеальной поверхности, называемой текущей страницей. Путь – набор прямых и кривых линий, определяющих область, которая будет заполнена, или траекторию, которая будет нарисована на текущей странице. Конструируя путь, необходимо решить, что с ним делать: мы можем нарисовать линию заданной толщины или заполнить его, чтобы создать непрерывное изображение. После того, как заполнение текущей страницы закончено, ее можно распечатать на физическом листе бумаги.

В PostScript не существует различия между графикой и текстом. Символ текста рассматривается как один из графических объектов, размещаемых на текущей странице. Поэтому для совмещения на ней текста и графики не требуется никаких специальных действий.

Графические операторы PostScript выполняют свои действия в пространстве пользователя, или, иначе говоря, в пользовательской системе координат. Это пространство независимо от какого-либо физического устройства и результат работы операторов PostScript при печати автоматически преобразуется в систему координат устройства. Однако иногда бывает удобно изменить действующую по умолчанию систему координат. Можно, например, перенести в другое место начало координат, изменить ориентацию осей и масштабы по ним.

Перенесение начала координат. Для этой цели служит оператор translate. Он берет из стека два числа, и перемещает пространство пользователя в точку с этими новыми координатами. Например, строка:

     150 180 translate

переместит их начало координат в точку (150, 180). После этого все позиции на текущей странице будут отмеряться от этой точки.

До сих пор мы работали с графикой явным образом, меняя с помощью операторов ее состояние. Состояние графики – это набор данных, которые описывают, как операторы будут влиять на текущую страницу. Пара взаимодополняющих операторов, gsave и grestore, позволяют сохранить текущее состояние графики, а затем в нужный момент восстановить его. Это может потребоваться до и после использования оператора fill, который очищает текущую траекторию. Если нужно продолжить рисование из какой-либо точки заполняемой оттенком серого фигуры, то удобно просто восстановить состояние графики, сохраненное до выполнения fill.

Оператор gsave сохраняет копию текущего состояния графики в стеке состояния графики. Этот стек может хранить до 32-х состояний графики, включая текущее состояние. Оператор grestore восстанавливает состояние графики, сохраненное в стеке самым последним. Все характеристики текущего графического состояния, включая текущий путь, уровень серого цвета, ширину линии и систему пользовательских координат возвращаются в состояние, в котором они были перед выполнением оператора gsave.

В языке поддерживаются две цветовые модели: HSB (тон-насыщенность-яркость) и RGB (красный-зеленый-голубой). В каждой из этих моделей можно задать любой цвет с помощью трёх числовых параметров. В более простой модели RGB цвет задаётся сочетанием интенсивности трёх основных цветов: красного, зеленого и голубого. Интенсивность цвета задаётся числом в диапазоне от 0 до 1, причём 0 означает полное отсутствие данного цвета, а 1 – его максимальную интенсивность. Если для всех трёх цветов заданы равные интенсивности, то в результате получится чистый серый цвет с градацией по всей шкале от белого (0, 0, 0) до черного (1, 1, 1). Уровень серого цвета обычно устанавливается оператором setgray.

В HSB тон задаёт собственно цвет. Он определяется его расположением на цветовом круге: 0° - чистый красный, 120° - зелёный, 240° - синий. Остальные цвета получаются из смешения двух соседних. (Так, 60° -- жёлтый, , 180° - голубой, 300° - фиолетовый.) Насыщенность – густота цвета заданного тона: 0 соответствует отсутствию цвета, а 1 – максимальной его насыщенности. Яркость – общая интенсивность цвета (содержание белого цвета в данном цвете): 0 соответствует чёрному цвету, а 1 – белому (максимальной интенсивности). Цвет может быть задан с помощью соответствующих модели операторов setrgbcolor и sethsbcolor.

 

1.3 Пример создания программы на языке PostScript

 

По заданию курсовой работы необходимо было написать программу, используя средства языка  Postscript, которая интерпретировалась бы как картинка, включающая в себя все базовые графические примитивы, различный текст и циклы. Например, домик, солнце, трава (траву можно нарисовать, используя циклы), и подписать - "Это мой дом!" - все три части в одном файле.

Дом и такие элементы как ступеньки, окна, двери, крыша и т.д. были нарисованы с использованием оператора rlineto, который служит для перемещения, задаваемого не в абсолютных координатах, а в приращениях относительно текущей точки.

Пример из программы:

newpath %корпус дома

220 400 moveto

0 144 rlineto

144 0 rlineto

0 -144 rlineto

-144 0 rlineto

0.5 setgray

fill

Оператор newpath читает текущую страницу и объявляет, что начато рисование новой страницы. Конструирование пути начинается переносом воображаемого пера в заданную точку. Это перо при его переносах не оставляет "следа" на бумаге. Положение пера в каждый конкретный момент называется текущей точкой на текущем пути.

Оператор moveto переносит перо в точку, координаты которой заданы его операндами. Он извлекает из стека два числа и рассматривает их как координаты х и у точки, которая становится текущей. В системе координат, принятой в PostScript по умолчанию, начало координат находится в нижнем левом углу страницы. Координата х увеличивается вправо, а у – при движении вверх. Единица длины в этой системе равна 1/72 дюйма.

Оператор lineto добавит сегмент к текущему пути, рисуя линию между текущей точкой и точкой, координаты которой заданы его операндами. Точка, заданная как операнд lineto становиться текущей точкой. lineto в действительности не рисует ничего на текущей странице. Он просто добавляет сегмент линии к текущему пути. Позже эту линию можно будет нарисовать, но это не происходит автоматически.

Для заполнения квадрата, в нашем случае корпуса дома, служит оператор fill, который "заливает" квадрат серыми чернилами. Уровень серого цвета для заполнения фигуры задается аргументом оператора setgray – числом  в интервале от 0 (черный цвет) до 1 (белый).

Чтобы нарисовать желтое солнце, желтые шторы, красную крышу, зеленую траву использовался оператор setrgbcolor.

Трава была нарисована с помощью простого цикла с использованием оператора repeat:

newpath %трава

50 400 moveto

50 {

5 15 rlineto

5 -15 rlineto

}repeat

-280 0 rlineto

0 255 0 setrgbcolor

fill

В языке PostScript имеется три основных конструкции циклов: простой цикл, индексируемый цикл и условный цикл. Простой цикл реализуется с помощью оператора repeat, который берет из стека два операнда: счетчик цикла и повторяемую процедуру. Здесь всё достаточно прозрачно, непривычно, может быть, только то, что в качестве одного из аргументов выступает повторяемая процедура.

Индексируемый цикл напоминает широко известную по Бейсику конструкцию for... to... next. Оператор for берет из стека четыре операнда: начальное значение счетчика цикла, его приращение, конечное значение счетчика цикла и повторяемую процедуру. За исключением последнего операнда всё выглядит как и в обычной конструкции for. Следует учитывать, что непосредственно перед выполнением этой процедуры for помещает в стек текущее значение счетчика и, если он не используется, то его следует оттуда явным образом удалять. Вторая важная особенность for в том, что его операнды не обязательно должны быть целыми числами.

Условный цикл соответствует конструкции repeat...until в Паскале. Строится он из двух операторов: loop и exit. Опертор loop повторяет выполнение процедуры до тех пор, пока в ней не встретится оператор exit, который заканчивает циклическое выполнение, причем не только в конструкции loop, но и в for, repeat и forall. Если в повторяемой процедуре нет оператора exit, то цикл будет бесконечным.

Для печати текста использовался оператор show, был установлен шрифт Helvetica, цвет – синий:

/newsize {

scalefont setfont

}def

0 0 255 setrgbcolor

fill