Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Grafika_Turbo-Pascal.doc
Скачиваний:
24
Добавлен:
08.03.2015
Размер:
362.5 Кб
Скачать

Геометрия

Для вычерчивания сопряжения двух прямых с помощью дуги или для соединения линией концов дуги используют процедуру возвращающую координаты последней команды Arc:

GetArcCoords(var ArcCoords:ArcCoordsType)

где

Type

ArcCoordsType =

record

X,Y : integer; { центр дуги }

Xstart,Ystart : integer; { начальная позиция }

Xend,Yend :integer { конечная позиция }

end;

Рассмотрим пример построения линии, соединяющей концы

построенной дуги.

Uses Graph,Crt;

Var

Driver,Mode,Color:integer;

ArcCoords:ArcCoordsType;

begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

Arc(100,100,0,270,30);

GetArcCorrds(ArcCoords);

with ArcCoords do

Line(Xstart,Ystart,Xend,Yend);

readln;

CloseGraph

End.

SetAspectRatio(Xasp,Yasp:word ):word - функция изменяющая

коэффициент удлинения графического изображения.

Пример обращения к функции: SetAcpectRatio(10,15)

Установки вывода текста.

Для анализа установок выводимого текста используется процедура, возвращающая текущий шрифт, направление, размер и выравнивание текста, заданные процедурами SetTextStyle и SetTextJustify :

GetTextSettings( var TextInfo:TextSettingsType), где

TextSettingsType определен как:

type TextSettingsType=

record

Font:word; { номер шрифта }

Direction:word;{ направление вывода }

CharSize:word; { размер символа }

Horiz:word; { горизонтальное выравнивание }

Vert:word { вертикальное выравнивание }

end;

Организация библиотек пользователя

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

  • построения различных рамок;

  • оформления и управления меню различного типа;

  • установки цвета символов и фона;

  • управления звуком, курсором.

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

В Турбо Паскале любая библиотека представляет собой автономно компилируемую программную единицу, называемую библиотечным модулем и может включать в себя описание констант, типов данных, переменных, процедур и функций. Библиотечный модуль имеет расширение TPU или TPL. Примером стандартных библиотечных модулей являются Crt, Graph, Printer, System, Overlay.

Cоздание библиотечного модуля определяет использование зарезервированных слов Unit, Interface, Implementation, Begin, End

и имеет следующую структуру:

Unit < имя библиотечного модуля >;

Interface

< интерфейсная часть >

Implementation

< исполняемая часть >

Begin

< инициирующая часть>

End.

Где

Unit - заголовок модуля, в котором указывается имя библи отечного модуля. Это имя должно совпадать с именем файла, содержащий исходный текст модуля и используется для ссылки на библиотечный модуль из основной программы или для связи с другими модулями и записывается в предложении Uses.

Пример. Исходный текст модуля находится в файле MyCrt.pas, поэтому данный библиотечный модуль имеет заголовок Unit MyCrt, а в основной программе присутствует предложение Uses MyCrt;

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

В интерфейсной части запрещены опережающие описания. Для ссылки на другой модуль используется предложение Uses с указанием имени используемого модуля. Предложение Uses располагается после служебного слова Interfaсe.

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

Например запрещены обращения :

Unit A; Unit B; или Unit A;

Interface Interface Interface

Uses B; Uses A; Uses A;

End. End. End.

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

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

End - конец модуля.

При построении библиотеки придерживаются следующих этапов:

1) Формирование модуля UNIT в который войдут все процедуры будущей библиотеки. Полученный модуль имеет расширение PAS.

2) Компиляция в режиме Compile,Make,Build главного меню TURBO PASCAL модуля UNIT на диск . Полученный библиотечный модуль будет иметь расширение TPU.

3) Проверка работоспособности вашей библиотеки.

Для примера рассмотрим создание личной библиотеки с именем MyCrt, в которую войдут наиболее oбщие процедуры, дополняющие модуль Crt, описанные в разделе 1.2.

Проверку работоспособности библиотечного модуля MyCrt проверим на примере программы PrimMenu.

ПРИМЕР.

UNIT maycrt;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]