Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

-6A82E~1

.PDF
Скачиваний:
0
Добавлен:
28.12.2025
Размер:
3.75 Mб
Скачать

51

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

GetTextSettings(var TextInfo:TextSettingsType); — воз-

вращает значения параметров текущего шрифта (направление, размер, выравнивание и пр.). Эти параметры объединены в запись типа TextSettingsType, описанную в разделе интерфейса модуля Graph как

type

TextSettmgsType = record Font word; Direction:word; CharSize: word; Horiz: word; Vertword

end;

Значения отдельных полей записи TextSettingsType определяется на основании следующего списка констант в разделе интерфейса модуля Graph:

const

DefaultFont = 0; {Обычный (побитовый) шрифт (8×8)}

TriplexFont = 1; {Тройной шрифт} SmallFont = 2; {Малый шрифт} SansSerifFont = 3; {Гротесковый шрифт}

GothicFont = 4; {Готический шрифт} HorizDir = 0; {Направление слева направо} VertDir = 1; {Направление снизу вверх}

OutText(TextString:string); — вызывает вывод строки

TextString, начиная с позиции текущего указателя. Эта процедура использует шрифт, установленный SetTextStyle (по умолчанию считается установленным побитовый шрифт), с использованием параметров вывода (выравнивание, центровка, поворот на 90 градусов и установленных процедурой SetTextJustify). После вывода TextString значение текущего указателя изменяется, т.е. устанавливается в конце TextString, если направление вывода текста было вертикальное и выравнивание производилось также в горизонтальном направлении по отношению к левой границе поля вывода. Текущий указатель по отношении к выводимому символу располагается в левом углу.

OutTextXY(X,Y: integer, TextString:string); — выводит начиная с точки, имеющей координаты (X,Y). Эта процедура аналогична по своим свойствам OutText. Если вывод строки осуществляется побитовым шрифтом и выводимая строка выходит за пределы вывода, то вывод вообще не производится. Если вывод строки осуществляется штриховым шрифтом, то TextString отсекается на границе области вывода.

52

SetTextJustify(Horiz, Vert : word); — устанавливает значе-

ние выравнивания текста. Для установки значения выравнивания в разделе интерфейса модуля Graph определены следующие константы:

Const {Горизонтальное выравнивание Horiz} LeftText = 0; {Выравнивание слева}

CenterText = 1; {Выравнивание, по центру} RighText = 2; {Выравнивание справа}

{Вертикальное выравнивание — Vert} BottomText = 0; {Выравнивание снизу} CenterText = 1; {Выравнивание по центру} TopText = 2; {Выравнивание сверху}

По умолчанию используется SetTextJustify(LeftText, TopText).

SetTextStyle(Font:word; Direction:word; CharSize:word);

устанавливает текущий шрифт, тип и коэффициент увеличения символов. CharSize задает следующий коэффициент увеличения символов: если CharSize=1, то шрифт не увеличивается; если CharSize=2, то размер символов увеличивается в два раза по вертикали и горизонтали и т. д. Direction

— задает направление вывода (HorzDir — горизонтальное, слева направо; VertDir — вертикальное, снизу вверх). Font — задает тип устанавливаемого шрифта.

10.5 Определение атрибутов графического изображения

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

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

SetBkColor(Color:word); — устанавливает текущий фоновый цвет, используя текущую палитру. SetBkColor(0) всегда в качестве фонового цвета устанавливает черный цвет.

SetColor(Color:word); — устанавливает текущий цвет изображения, используя заданную палитру.

Выбор стиля, шаблона и толщины лийии

LineStyle — стиль линии — определяется, исходя из следующего списка констант модуля Graph:

const

SolidLn = 0; {Сплошная линия}

53

DottedLn = 1; {Линия из трех точек} CenterLn = 2; {Линия из точек и тире} DashedLn = 3; {Пунктирная линия}

UserBitLn = 4; {Тип, определенный пользователем}

Thickness принимает одно из следующих значений из соответствующего списка констант:

const

NormWidth = 1; {Нормальная толщина} ThickWidth = 3; {Увеличенная толщина}

SetLineStyle (LineStyle:word; Pattern:word; Thickness:word);

— устанавливает текущую толщину и тип линии. Значения параметров LineStyle, Pattern, Thickness должны соответствовать значениям одноименных элементов записи типа. Если LineStyle=UserBitLn, то тип линии задается шаблоном Pattern по следующему принципу. Если отдельный бит шаблона равен 1, то соответствующий ему пиксель будет высвечиваться на экране. Например, если Pattern = &АААА = 10 10 10 10 10 10 10 10, то такой шаблон соответствует сплошной линии нормальной толщины (50%-ная яркость). Параметры, сформированные SetLineStyle определяют линию в процедурах Line, LineRel, LineTo и Rectangle.

Выбор шаблона и цвета заполнения

Для выбора шаблона и цвета заполнения используются следующие процедуры:

GetFillSettings(var FillInfo: FillSettingsType); — воз-

вращает последний образец заполнения и цвет, установленный предыдущим вызовом SetFillPattern или SetFillStyle. Переменная FillInfo

должна иметь структуру, описанную в разделе интерфейса модуля Graph type

FillSettlngsType = record Pattern:word;

Color: word end;

Поле Pattern содержит текущий выбранный образец заполнения и соответствует одному из значений следующего списка констант:

const

EmptyFill = 0; {Область заполняется фоновым цветом} SolidFill = 1; {Область заполняется сплошным цветом} LineFill = 2; {Шаблон заполнения '---'}

54

LtSlashFill = 3; {Шаблон заполнения '///')

SlashFill = 4; {Шаблон заполнения '///' — толстые линии} BKSlashFill = 5; {Шаблон заполнения '\\\' — толстые линии} LtBKSlashFUl = 6; {Шаблон заполнения '\\\'}

HatchFill = 7; {Редкая штриховка'+++'} XHatchFill = 8; {Частая штриховка'×××'}

InterLeaveFill = 9; {Штриховка в клетку}

WideDotFill = 10; {Заполнение редкими точками} CloseDotFill =11; {Заполнение точками}

UserFill = 12; {Заполнение, определяемое пользователем}

Поле Color содержит текущий цвет заполнения в соответствии с используемой палитрой;

SetFillStyle(Pattern:word; Color:word); — устанавливает шаблон и цвет заполнения, используемые при выполнении процедур FillPoly, Bar, Bar3D. Значение Pattern выбирается из соответствующего списка констант, приведенного в GetFillSettings. Только в случае, если Pattern = UserFill, становится активным шаблон, заданный в

SetFillPattern.

10.6 Вывод графической информации

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

Arc(X,Y:mteger; StAngle, EndAngle, Radius:word); — ри-

сует на экране дугу с центром в точке (X,Y), радиусом Radius, от начального угла StAngle до конечного угла EndAngle с использованием текущего цвета. Отсчет углов осуществляется относительно горизонтальной оси в направлении против часовой стрелки в градусах. Если StAngle = 0, EndAngle = 360 градусов, то будет нарисована окружность;

Bar(Xl,Yl,X2,Y2:integer); — выводит на экран закрашенный прямоугольник с координатами левого верхнего угла (X1,Y1) и правого нижнего угла (X2,Y2). При закраске прямоугольника используются шаблон и цвет,

определенные процедурами SetFillStyle и SetFillPattern;

Circle(X,Y:integer; Radius:word); — выводит на экран изоб-

ражение окружности с центром (X,Y) и радиусом Radius. Окружность рисуется цветом, установленным SetColor;

55

DrawPoly(NumPoints:word; var PolyPoints); — выводит на экран контур многоугольника, используя текущий цвет (SetColor) и стиль линии (SetLineStyle). Число вершин многоугольника задается в Numpoints. В параметре PolyPoints задаются координаты вершин многоугольника. Каждая координат состоит из двух слов: X и Y. Например:

const

Т: array [1..4] of PointType =

(X:10,Y:50),(X:100,Y:50), (X:10, Y:100),(X:100, Y: 00);

begin DrawPoly (4,T) …

end.

Тип PointType в разделе интерфейса модуля Graph описан как type

PointType = record Х,Y: integer

end;

Для вывода на экран изображения замкнутого многоугольника с N вершинами следует в PolyPoint задать (N+1) координату, где (N+1)-я координата должна совпадать с первой координатой. Например, для того чтобы вывести изображение треугольника, следует задать в DrawPoly четыре координаты;

Ellipse(X,Y:integer, StAngle,EndAngle:word; XRadius,YRadius:word);

— выводит на экран изображение эллиптической дуги с центром в точке (X,Y) от начального угла StAngle до конечного угла EndAngle с горизонтальной полуосью XRadius и вертикальной полуосью YRadius. Эллиптическая дуга высвечиваете; на экране текущим цветом (SetColor).

FillEllipse(X,Y:integer; Xradius,YRadius:word); — выво-

дит на экран изображение полного закрашенного эллипса с центром (X,Y) с горизонтальной и вертикальной полуосями XRadius и YRadius. Эллипс высвечивается текущим цветом (SetColor) и закрашивается текущим цветом и сти-

лем заполнения. (SetFillStyle, SetFillPattern);

FillPoly(NumPoints:word; var PolyPoints); — аналогична процедуре DrawPoly. Отличие состоит только в том, что изображение многоугольник закрашивается текущим цветом и стилем заполнения (SetFill-

Style, SetFillPattern).

FloodFill(X,Y:integer, Border:word); — заполняет (закра-

шивает ограниченную область текущим цветом

и стилем

заполнения

(SetFillStyle SetFillPattern). Граница

закрашиваемой области вы-

56

свечивается цветом, задаваемым в Border. Если точка (X,Y) находится внутри области, то эта облает, закрашивается, если же она находится вне области, то заполняется внешняя часть области.

Line(Xl,Y1,X2,Y2:integer); — выводит на экран линию, соединя-

ющую точки с координатами (X1,Y1) и (X2,Y2). Толщина, цвет и линии зада-

ются c помощью SetLineStyle и SetColor;

LineTo(X,Y:integer); — выводит изображение линии, соедини точку, в которой находится текущий указатель, и точку с координатами (X,Y). При изображении линии используются цвет, стиль и шаблон, установленные проце-

дурами SetColor, SetLineStyle;

PieSlice(X,Y:integer; StAngle,EndAngle,Radius:word);

— выводит на экран изображение закрашенного сектора круга, используя в качестве центра круга точку (X,Y), начального угла StAngle, конечного угла EndAngle и радиуса Radius. Контур сектора высвечивается текущим цветом (SetGolor). При заполнении сектора используются шаблон и цвет, опреде-

ленные процедурами SetFillStyle и FillPattern.

PutPixel(X,Y:integer; Pixel:word); — высвечивает в точке с координатами (X,Y) пиксель цвета Pixel.

Rectangle(Xl,Yl,X2,Y2:integer); — выводит на экран изображе-

ние прямоугольника, используя при этом текущий цвет (SetColor) и тип линии (SetLineStyle). X1,Y1 — задает левый верхний угол, а Х2,Y2 — правый нижний угол прямоугольника;

Sector(X,Y:integer; StAngle,EndAngle,XRadius,YRadius:word);

— выводит на экран изображение эллиптического сектора от начального угла StAngle до конечного угла EndAngle, используя в качестве центра точку с координатами (X,Y), а в качестве горизонтальной и вертикальной полуосей — XRadius и YRadius. Сектор выводится на экран с использованием текущего цвета (SetColor) и заполняется с использованием шаблона и цвета, опреде-

ленных в SetFillStyle и SetFillPattern.

57

Практический раздел Лабораторные работы

11 ИНТЕГРИРОВАННАЯ СРЕДА ПРОГРАММИРОВАНИЯ

11.1 Назначение системы программирования

Система программирования Турбо-Паскаль представляет собой интегрированную среду, включающую в себя: экранный редактор, компилятор, редактор связей, отладчик.

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

Запуск системы Турбо-Паскаль осуществляется при помощи иконки на рабочем столе

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

<Alt-X>.

11.2 Файлы Турбо-Паскаля

Турбо-Паскаль использует следующие расширения файлов:

com и ехе – запускаемые файлы (программы, готовые для выполнения) ; pas – файл с исходным текстом программы на языке Паскаль;

tpu – отранслированный модуль;

tpl – файл, содержащий стандартные модули Паскаля; tp – файл конфигурации интегрированной среды;

dsk – файл, содержащий информацию о состоянии интегрированной среды; bak – прошлая копия pas-файла;

obj – процедуры на языке Ассемблер.

В Турбо-Паскале возможны также все виды расширений файлов, исполь-

зуемые MS-DOS.

11.3 Главное меню

Общий вид главного меню приведен на рис.11.1.

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

58

- вставка (Insert), █ - замена. Во второй строке экрана указаны имя файла и номер окна.

Рис. 11.1 Главное меню системы Турбо-Паскаль

В главном меню содержатся следующие команды: File (файл), Edit (редактор). Search (поиск), Run (выполнение), Compile (компилирование) , Debug (от-

ладка), Tools (средства), Options (опции), Window (окно), Help (помощь). Все они имеют собственные подменю, а некоторые – и несколько вложенных подменю.

Для входа в главное меню следует нажать клавишу <F10>, а для выхода из него – <Esc> (если не была введена какая-либо команда). Вызов функций подменю осуществляется либо с помощью выделенного прямоугольника, либо нажатием соответствующих функциональных клавиш.

11.4 Команда File

Команда File содержит функции, управляющие работой с файлами. В этом режиме (рис.11.2) возможно следующие действия:

New – открытие нового окна редактирования;

Open – загрузка файла с текущей директории текущего диска в режим экранного редактирования. При выполнении опции Open на экран выдается заставка с перечислением имеющихся файлов (с расширением pas) в текущем месте. Синонимом этой команды является функциональ¬ная клавиша <F3>;

Save – сохранение на диске текущего редактируемого файла и продолжение редактирования. Синоним команды - <F2>;

Save as – сохранение под другим именем (в текущей папке). Save all – сохранение всех файлов во всех окнах;

Change Dir... – изменение директории и диска (выдается на экран заставка в виде дерева текущего диска);

59

Print – печать текущего файла (при наличии принтера);

Printer setup... – изменение setup принтера (на экран выдается заставка); Dos shell – временный выход в DOS;

Exit – выход из интегрированной среды, синоним - <Alt-X>.

New

Open... F3 F2

Save

Save as... Save all

Change Dir...

Print.

Printer setup.

Dos shell

Exit. Alt-X

Рис.10.2. Подменю команды File

11.5 Команда Edit

Команда Edit содержит функции, управляющие работой с файлами. В этом режиме (рис.11.3) возможно следующие действия:

Edit

 

Отменить последнее действие

Undo

Alt-BkSp

Redo

 

Повторить

Cut

Shift-Del

Взять в карман с удалением

Copy

Ctrl-Ins

Взять в карман для копирования

Paste

Shift-Ins

Вставить из карман

Clear

Ctrl-Del

Очистить

Show clipbord

Показать clipbord (в другом окне)

Рис.11.3. Подменю команды Edit

Примечание. Команды Cut, Copy, Clear работают с выделенным блоком. Команда Paste работает, если есть блок, взятый в карман.

11.6 Команда Run

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

Run

Run

Ctrl-F9

 

Step over-

F8

 

Trace into

F7

 

Go. to cursor

F4

 

Program reset

Ctrl -F2

 

Parameters...

 

 

 

Рис. 11.4. Подменю команды Run

60

Run – запуск программы на выполнение (при необходимости выполняется трансляция программы). По завершении работы программы происходит возврат в интегрированную среду. Синоним команды – <Ctrl-F9>.

Step over – пооператорное выполнение программы (при обращении к процедуре или функции вход в них не производится). Синоним – <F8>.

Trace into – покомандное выполнение (трассировка) программы (производится вход во все процедуры и функции). Синоним – <F7>.

Go to cursor – выполнение программы (без трассировки) от текущей строки (в режиме отладки текущая строка выделяется голубым цветом) до строки, где находится курсор. Синоним – <F4>.

Program reset – выход из режима отладки: все точки прерывания и переменные в окне просмотра сохраняются, но по команде Run, Trace или Step выполнение начнется с начала программы. Синоним – <Ctrl-F2>.

Parameters... – открывается бокс диалога, где вы определяете в командной строке аргументы (значения) для выполнения вашей программы, точно также как вы определяли бы их в командной строке DOS.

11.7 Команда Compile

Команда Compile содержит следующие команды для управления процессом трансляции программ (рис. 11.5.)

Compile

Compile

Alt-FQ

Make

F9

Build

 

Target...

Real

Primary File..

 

Clear primary

file

Information

 

Рис. 11.5. Подменю команды Compile

Compile – трансляция программы. Синоним команды - <Alt-F9>. Эта команда позволяет получить ехе-файл программы (или tpu-файл для модуля), записывая или нет его на диск (выставляется в команде Орtions.. . –Linker).

Make – трансляция модулей программы, в которые были внесены изменения. Синоним - <F9>.

Build – перетрансляция всех модулей, входящих в программу (независимо от того, были в них внесены изменения или нет).

Target… – выбор типа кода генерации.

Primary File... – определяет файл, который будет компилироваться. Если он не указан, то компилируется файл, загруженный для редактирования. Эта опция полезна при трансляции программ, состоящих из нескольких файлов.

Clear primary file – очистка уcтановленного в предыдущей опции. Information – информация о последней скомпилированной программе.

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