metod_15.03.04_atppp_oaip_ump_2016 (1016599), страница 43
Текст из файла (страница 43)
Настройку на местоположение драйвера можно198выполнить, указав путь в качестве фактического параметра процедуры INITGRAPH илиразместив драйвер в текущей директории. Чтобы компилятор Паскаля нашел этифайлы, надо соответствующим образом настроить среду Паскаля. Для этого в режимеOptions\Directories\Unit directories надо указать каталог, в котором размещены этифайлы. Например: D:\BP\UNITS;D:\BP\BGIПроцедура CLOSEGRAPH прекращает работу адаптера в графическом режиме ивосстанавливает текстовый режим работы экрана.Вывод текстаМодуль GRAPH имеет 5 процедур и функций для вывода текста различнымишрифтами, в горизонтальном или вертикальном направлении, с изменением размероввыводимых символов и т.
д. С их помощью можно вывести любые тексты, в том числена русском языке. Для использования русского шрифта из модуля GRAPH нужен либо вфайле autoexec.bat путь к файлу загрузки русского шрифта, например vgaga.exe, и егозапуск во время загрузки системы, либо предварительный запуск этого файла из средыDOS.Рассмотрим некоторые из процедур для вывода текста.Процедура OutText выводит текст начиная с текущего положения указателя.Обращение к процедуре OutText: OutText ( текст );где текст - выражение типа String, определяющее выводимый текст.Текст выводится в соответствии с установленным стилем.
Например:OutText(' Русский шрифт '};Процедура OutTextXY выводит текст начиная с заданного места на экране.Обращение к процедуре OutTextXY: OutTextXY (X,Y,текст);где X, Y — выражения типа Integer, определяющие координаты точки начала выводав пикселях; текст — выражение типа String.Процедура SetTextStyle устанавливает стиль вывода текста на графический экран.Обращение к процедуре:SetTextStyle ( шрифт, направление, размер );где шрифт, направление и размер - выражения типа Word.Для указания шрифта можно использовать следующие предварительно определенные константы:CONST DefaultFont= 0; {стандартный шрифт 8 x 8}TriplexFont= 1; {шрифт типа триплекс}SmallFont= 2; {уменьшенный шрифт}SansSerifFont = 3; {прямой шрифт}GothicFont= 4; {готический шрифт}Для задания направления выдачи текста используют константы:CONST HorizDir = 0; { слева направо, горизонтально }VertDir =1; { снизу вверх, вертикально }Для каждого шрифта можно изменять его размеры; параметр размера может быть от 1до 10, а для стандартного шрифта — от 0 до 31.
Примеры вывода текста приведены влистингах 4.23, 4.24 и 4.25. В листинге 4.23 приведен пример программы для вывода199текста русским шрифтом при работе в графическом режиме. Для выводарусского шрифта можно использовать только шрифт 0, горизонтальное ивертикальное направление вывода и размеры шрифта от 0 до 31.Вывод текста русским шрифтом во время работы в графическомрежиме. program RUSKOD;Uses Graph, Crt;var Driver, Regim, Error :integer; beginDriver := Detect; InitGraph(Driver, Regim, 'D:\BP\BGI');Error := GraphResult ;if Error <> grOk thenbegin write ( GraphErrorMsg ( Error ) ); Exitend;SetTextStyle { 0, 0, 5); OutText С Русский шрифт');SetTextStyle ( 0, 1, 2 ); { вертикальный вывод текста }OutTextXY (200, 115, 'Для продолжения работы");SetTextStyle ( 0, 0, 2 ); { - горизонтальный вывод текста }OutTextXY (210, 95, 'нажмите клавишу Enter ');Readln; CloseGraph { - завершение работы в графическомрежиме } end.Процедура SetTextJustify предназначена для выравнивания текста погоризонтали и вертикали.
Обращение к процедуре:SetTextJustify (Horiz, Vert : Word );где Horiz, Vert - параметры выравнивания текста по горизонтали и вертикали.Значениями параметров могут быть константы выравнивания:Lef tText = 0 — влево — по горизонтали;CenterText = 1 - по центру - по горизонтали;RightText = 2 - вправо - по горизонтали;BottomText = 3 - вниз - по вертикали; TopText= 4 - вверх - по вертикали.Рисование линий и точекРассмотрим несколько процедур для рисования линий и точек. С их помощьюможно выводить на экран, например, оси координат (процедурой Line) и кривыеизменения переменных (процедурой PutPixel).Процедура Line вычерчивает линию с указанными координатами ее начала и конца.Обращение к процедуре Line:Line ( XI, ..VI, Х2, Y2 );где XI, Y1 - выражения типа Integer, задающие координаты начала линии (впикселях);Х2, Y2 - выражения типа Integer, задающие координаты конца линии (в пикселях).Процедура LineTo вычерчивает линию от текущего положения указателя доположения, заданного его новыми координатами.
Обращение к процедуреLineTo:LineTo ( X, Y ) ;200где X, Y - выражения типа Integer, которые определяют координаты новогоположения указателя (в пикселях).Процедура LineRel вычерчивает линию от текущего положения указателя доположения, заданного приращениями его координат. Обращение к процедуреLineRel:LineRel .( DX, DY ) ;Где DX, DY - выражения типа Integer, задающие приращения координат дляполучения нового положения указателя (в пикселях).Линии вычерчиваются текущим стилем и текущим цветом (установленными впоследний раз) с помощью процедуры SetLineStyle.Процедура SetLineStyle устанавливает новый стиль вычерчивания линий.
Она влияетна все линии, вычерчиваемые процедурами Line, LineTo, DrawPoly и др. Форматобращения к процедуре SetLineStyle:SetLineStyle ( вид, образец,толщина );гдевсе параметры - выражения типа Word; вид - вид линии; образец - образецлинии; толщина - толщина линии.Вид линии определяется следующими значениями констант:CONSTSolidLn = 0 ; {сплошная линия }DottedLn=1; {точечная линия }CenterLn=2; {штрихпунктирная линия }DashedLn=3;{пунктирная линия }UserBitLn = 4 ; {вид линии определяется пользователем}Образец учитывается только для линий, вид которых определяется пользователем.Параметр толщина линий может принимать одно из двух значений:CONSTNormWidth = 1; { толщина в 1 пиксель: нормальная } ThickWidth = 3;{ толщина в .3 пикселя: жирная }Установленный процедурой SetLineStyle стиль линий используется также припостроении многоугольников.Процедура PutPixel выводит на экран заданным цветом пиксель (точку) поуказанным координатам.
Формат обращения к процедуре PutPixel: PutPixel ( X, Y, цвет );где X, Y - выражения типа Integer, определяющие координаты точки (в пикселях);цвет - выражение типа Word, определяющее цвет точки.Координаты задаются относительно левого верхнего угла окна пли, если окно неустановлено, относительно левого верхнего угла экрана. Для вывода ряда точек кривойнадо многократно вызвать процедуру PutPixel, каждый раз с новыми координатами.Пример вычерчивания кривых (синусоиды и косинусоиды) процедурой PutPixel.PROGRAM RIS;USES GRAPH, CRT;VAR Ga, Gm, Error : INTEGER;I, X, Y : REAL;BEGINGa := DETECT; Gm := DETECT;INITGRAPH (Ga, Gm, ' '); Error := GraphResult;IF Error <> GrOK THEN201BEGINWRITELN ( GraphErrorMsg (Error));Halt(l)END;X := - 2 *PI; SetColor(4);Line(0, 175, 640, 175);{ - горизонтальная ось }Line(320, 0, 320, 350);{ - вертикальная ось }WHILE X < 2 * PI DOBEGINY := Sin(X); { - формирование ординаты Sin(X) }PutPixel(Round(X*50)+320, Round(Y*80)+175, 2); { - вывод точки }Y := Cos(X); { - формирование ординаты Cos(X) }PutPixel(Round(X*50)+320, Round(Y*80)+175, 3); { - вывод точки }X := X + 0.1;END;{ Установка цвета и стиля текста: }SetColor(5); SetTextStyleU, 0, 5);OutTextXY(20, 20, 'TURBO PASCAL 7.0 (GRAPH)1); { - вывод текста }SetTextStyle(3, 0, 3); { - установка стиля текста }OutTextXY(20, 60, 'TURBO PASCAL 7.0 (GRAPH)'); { - вывод текста }READLN;{ - приостановка до нажатия клавиши Enter }CLOSEGRAPH;{ - закрыть графический режим }END.Процедура SetColor устанавливает текущий цвет выводимых линий и символов.Формат обращения к процедуре SetColor:SetColor ( цвет ) ;где цвет - выражение типа Word, задающее текущий цвет символов и линий.Значения цветов могут быть от 0 до 15 и приведены ранее.
Пример рисование линийслучайным образом со случайным выбором их цвета.program RNDLINE; Uses Graph, Crt;var Driver, Regim, Error : integer;beginDriver := Detect;InitGraph(Driver, Regim, ' ');Error := GraphResult;if Error <> grOk thenbeginwrite ( GraphErrorMsg ( Error ) );Exitend;Randomize;SetTextStyle (1, 0, 5 );OutTextXY ( О, О, 'СЛУЧАЙНЫЕ ЛИНИИ');repeatSetColor ( Random (16) );LineTo ( Random ( GetMaxX), 60 + Random ( GetMaxY ) );Delay(100);{ - задержка программы }until KeyPressed;{ - выполнять до нажатия любой клавиши }CloseGraph{ - закрыть графический режим }end.202Рисование многоугольниковС помощью средств модуля GRAPH можно:- вычертить прямоугольник (процедурой RectAngle);- вычертить закрашенный прямоугольник (процедурой Ваг);- вычертить трехмерное изображение параллелепипеда (процедурой BAR3D);вычертить ломаную линию, заданную координатами точек излома (процеду ройDrawPoly);- штриховать прямоугольники и многоугольники разными типами и цветам!штриховки;• нарисовать криволинейные фигуры (процедурами Arc, PiSlice, Ellipse Sector).Рассмотрим процедуру DrawPoly.
С ее помощью можно вывести на экра! кривуюизменения переменной в осях X, Y. Формат обращения:DrawPoly ( N, координаты );где N - выражение типа Word, задающее количество пар точек излома, включаякрайние точки;координаты — массив значений, содержащий координаты точек излома кривой (впикселях).Координаты точек излома можно задать массивом записей типа PointTypeопределенного в модуле Graph: Type PointType = record X, Y : WordEnd;Вместо массива типа PointType можно задать точки, например, в виде матрицы издвух столбцов и требуемого количества строк: в каждой строке координаты X и Y типаWord или Integer.203СПИСОК ЛИТЕРАТУРЫ1. Стариченко Б.Е. Теоретические основы информатики: уч.
пособие, М.: Горячаялиния – Телеком, 2003, 310 с.2. Климова Л.М. PASCAL 7.0/Практическое программирование. Решение типовыхзадач. «КУДИЦ-ОБРАЗ», М., 2003, 524 с.3. Лапчик М.П., Семакин И.Г., Хеннер Е.К. Методика преподаванияинформатики. М., АКАДЕМИЯ. 2001, 622 с.4. Методы программирования: уч.
пособие/под редакцией Г.А.Угольницкого, М.:«Вузовская книга», 2002, 280 с.5. Шелест В.Д. Программирование. «БХВ-ПЕТЕРБУРГ», Санкт- Петербург., 2001,584 с.6. Фаронов В.В. Турбо Паскаль. Начальный курс: уч. пособие, «ОМД Групп», 2003,572 с.204.














