Пример использования подпрограмм модуля Graph в Turbo Pascal 7
02.09.2018

16.4.80. Пример использования подпрограмм модуля Graph
В качестве примера использования ресурсов модуля Graph рассмотрим программу, которая изображает график функции exp(-Ax)*sin(x) при изменении коэффициента А.
Пример.
| program Example29; | |
| uses Graph; | |
| const ExpBeg =0.1; | {Начальное значение коэффициента показателя экспоненты} |
| DeltaExp =0.1; | {Приращение коэффициента показателя экспоненты} |
| var X0, Y0: Word; | {Начало координат} |
| X, Y: Real; | {Текущие координаты} |
| i, j.: Word; | |
| GraphDriver: Integer; | {Код драйвера графического утройства} |
| GraphMode: Integer; | {Код графического режима} |
| Switch: Boolean; | {Переключатель окон} |
| begin | |
| GraphDriver := Detect; | {Автоматическое определение драйвера граф. устройства} |
| InitGraphCGraphDriver, GraphMode, ''); | {Инициализация графического режима. Драйвер - в текущем каталоге} |
| if GraphResultogrOk then | |
| begin | |
| WriteLn('Ошибка при включении графического режима'); | |
| Halt | |
| end; | |
| Х0 := 20; | {Координата в пикселях} |
| Y0 := GetMaxY div 2; | {Координата в пикселях} |
| Switch := True; | {Исходное состояние переключателя окон} |
| for j := 0 to 10 do | {Цикл формирования изображений} |
| begin | |
| SetActivePage(Ord(Switch)); | {Активная страница видеопамяти} |
| SetBkColor(Blue); | {Цвет фона} |
| SetColor(White); | {Цвет фигур и текста} |
| ClearDevice; | {Очистка активной страницы} |
| Line(X0, 20, X0, GetMaxY - 20); | {Горизонтальная ось} |
| Line(X0, Y0, GetMaxX - 20, Y0); | {Вертикальная ось} |
| MoveTo(X0, Y0); | {Начало координат}; |
| for i := 1 to GetMaxX - 40 do | {Формирование графика} |
| begin | |
| X := i * 4 * Pi / (GetMaxX - 40); | |
| Y := Exp(-X * (ExpBeg + DeltaExp * j)) * Sin(X); | |
| LineTo(X0 + i,Y0 - Round(Y * 150)) | |
| end; | |
| SetVisualPage(Ord(Switch)); | {Видимая страница видеопамяти} |
| Switch := not Switch | |
| end; | |
| CloseGraph; | {Завершение работы в графическом режиме} |
| ReadLn | |
| end. | |
С помощью этой программы на экран выводятся последовательно одиннадцать графиков требуемой функции с изменяющимся коэффициентом А показателя экспоненты. При этом изображение сначала подготавливается на невидимой странице видеопамяти, а затем уже выводится на экран, после чего очередное изображение подготавливается на другой странице. В этой программе используется ряд стандартных процедур и функций модуля Graph (ClearDevice, CloseGraph, GetMaxX, GetMaxY, GraphResult, InitGraph, Line, LineTo, MoveTo, SetActivePage, SetBkColor, SetColor, SetVisualPage) и констант модуля (Blue, Detect, grOk, White). Предусмотрено автоматическое определение драйвера графического устройства и графического режима.
Описание массивов. Введение в Турбо Паскаль. Урок 9