Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Приложения к практическим ОАиП.docx
Скачиваний:
68
Добавлен:
10.06.2015
Размер:
213.59 Кб
Скачать

Стандартные стили заполнения

Константа

Значение

Маска

EmptyFill

0

Заполнение цветом фона

SolidFill

1

Заполнение текущим цветом

LineFill

2

Заполнение символами --, цвет – color

LtslashFill

3

Заполнение символами // нормальной толщины, цвет – color

SlashFill

4

Заполнение символами //  удвоенной толщины, цвет – color

BkslashFill

5

Заполнение символами \\ удвоенной толщины, цвет – color

LtbkSlahFill

6

Заполнение символами \\ нормальной толщины, цвет – color

HatchFill

7

Заполнение вертикально-горизонтальной штриховкой тонкими линиями, цвет – color

XhatchFill

8

Заполнение штриховкой крест-накрест по диагонали «редкими» тонкими линиями, цвет – color

InterLeaveFill

9

Заполнение штриховкой крест-накрест по диагонали «частыми» тонкими линиями, цвет – color

WideDotFill

10

Заполнение «редкими» точками

CloseDotFill

11

Заполнение «частыми» точками

UserFill

12

Заполнение по определенной пользователем маске заполнения, цвет – color

           

ПРИЛОЖЕНИЕ 15

Модули

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

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

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

Unit <имя модуля>; {заголовок модуля}

Interface

{интерфейсная часть}

Implementation

{раздел реализации}

Begin

{раздел инициализации модуля}

End.

После служебного слова Unit записывается имя модуля, которое (для удобства дальнейших действий) должно совпадать с именем файла, содержащего данный модуль. Поэтому (как принято в MS DOS) имя не должно содержать более 8 символов.

В разделе Interface объявляются все ресурсы, которые будут в дальнейшем доступны программисту при подключении модуля. Для подпрограмм здесь указывается лишь полный заголовок.

В разделе Implementation реализуются все подпрограммы, которые были ранее объявлены. Кроме того, здесь могут содержаться свои константы, переменные, типы, подпрограммы и т.д., которые носят вспомогательный характер и используются для написания основных подпрограмм. В отличие от ресурсов, объявленных в разделе Interface, все, что дополнительно объявляется в Implementation, уже не будет доступно при подключении модуля. При написании основных подпрограмм достаточно указать их имя (т.е. не нужно полностью переписывать весь заголовок), а затем записать тело подпрограммы.

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

Пример1. Модуль для работы с одномерными массивами до 100 целых чисел.

{модуль описаний, глобальных для основной программы и всех модулей}

Unit Globals;

Interface

const Len=100;

type Vector = array[1..Len] of integer;

Implementation

End.

Unit Vectors;

Interface

uses Globals;

{находит максимальный элемент массива}

function Max_V(A:Vector; n:byte):integer;

{поэлементное сложение двух векторов}

procedure Add_V(A,B:Vector; n:byte; var C:Vector);

{скалярное произведение векторов}

function Scal_V(A,B:Vector; n:byte):integer;

Implementation

function Max_V; {заголовок без параметров}

var i,max:integer;

begin

max:=A[1];

for i:=2 to n do if A[i]>max then max:=A[i];

Max_V:=max;

end;

procedure Add_V;

var i:integer;

begin

for i:=1 to n do C[i]:=A[i]+B[i];

end;

function Scal_V(A,B:Vector; n:byte):integer;

{заголовок из interface}

var s:integer; i:byte;

begin

s:=0;

for i:=1 to n do s:=s+A[i]*B[i];

Scal_V:=s;

end;

End. {раздел инициализации модуля отсутствует}