gn="justify"> gd:=detect; (gd, gm, 'd: BP BGI '); GraphResult lt; gt; grOk then:=GraphResult; {Повертається код помилки}:=0; {Повертається 0, помилок немає};:=CodeError ;;
{***************************************** ******************}
{***************************************** ******************}
{***************************************** ******************} draw_s; {Процедура виведення діаграми на екран}; InitGraf=0 then_s ;; (12);
writeln ( Помилка ініціалізації відеодрайвера );
readkey ;;;
{***************************************** ******************}
{***************************************** ******************}
{***************************************** ******************} f (x: real): real; cos (b * x)=0 then f:=0f:=a * (sin (b * x)/cos (b * x)) - c ;; show_s; {Процедура промальовування діаграми}: integer; {Висота екрану}: integer; {Ширина екрана}: real ;: integer ;: real; {Масштаб по Y}: real; {Масштаб по X}, y0: integer;, Y: real;: Real; {макс}: Real; {хвилин}: integer;: string;:=GetMaxX;:=GetMaxY;:=50;:=(Xmax-Xmin)/cnt;:=Xmin;:=F (x);:=F (x); X lt ; Xmax doF (x) gt; MM then MM:=F (X); F (x) lt; MMM then MMM:=F (X);:=X + deltax ;;:=(Ht - 2*MinusY)/ABS(MM-MMM);:=Wt/(2*(Xmax-Xmin));:=Xmin;:=Trunc(wt/2)+trunc(X*ZmX);:=Ht-MinusY-trunc(F(X)*ZmY);(X0,Y0-MinusY);(1, HorizDir, 1); (X0, Y0); i:=1 to CNT do:=X + deltax;:=Trunc (wt/2) + trunc (X * ZmX);:=Ht - 2 * MinusY-trunc ( F (X) * ZmY); F (X) lt; gt; 0 THEN lineto (X0, Y0):=X + deltax;:=Trunc (wt/2) + trunc (X * ZmX);:=Ht -2 * MinusY-trunc (F (X) * ZmY); (X0, Y0) ;;;
{Малюємо осі}:=0;:=Trunc (wt/2) + trunc (X * ZmX);:=Ht - 2*MinusY;(X0+10,Y0+10);(laquo;0raquo;);(X0,Y0);(X0,Ht);(X0,Y0);(X0,2*MinusY);(laquo;Yraquo;);(X0,Y0);(0,Y0);(X0,Y0);(Wt,Y0);(Wt- 50, Y0-30); ( X );:=Trunc (wt/4);:=MinusY; (X0, Y0); (5, HorizDir, 1); ( Function Y=a * tg (b * x) -c; ) ;;
end;
end.
Контрольні питання:
. Які процедури використовуються для ініціалізації графічного режиму?
В даний час більше 50 стандартних графічних процедур і функ-цій міститься в стандартному модулі Graph.tpu. Щоб скористатися можливостями модуля GRAPH.tpu, необхідно мати комп'ютер, осна-щенний відеоадаптером. До складу модуля Graph входить ряд програм-драйверів для найбільш поширених відеоадаптерів: CGA, MCGA, EGA, VGA, SVGA, Hercules, AT amp; T, 3270 PC. Ці драйвери зберігаються у файлах з розширенням .BGI (Borland Graphic Interface). Для безлічі символів є файли описів з розширенням .CHR.
. Яка структура графічної Pascal-програми?
Будь-яка програма Turbo Pascal, що використовує графічні процедури і функції з модуля Graph, має наступну типову структуру:
Program prog_graph; Graph, Crt, ......;
var grDriv, grMod: integer;
код графічного режиму
код відеографіческого пристрої
.....................
{Процедури і функції}
function F (var x: real): real
..........;
.....................
............................... ( Введіть XN, XK: ) ; {Введення вихідних даних}
Readln (Xn, Xk); {В текстовому режимі} ( Введіть кількість точок графіка: ); (N);
{Обчислення Yn і Yk і кроку зміни аргументу h}
...............................
{--------------- Ініціалізація графічного режиму ------------}:=Detect;
InitGraph (grDriv, grMod, D: TP BGI );
{шлях до графічного драйверу}
{--------- Перевірка успішного завершення ініціалізації --------}
if GraphResult lt; gt; GrOK then ( Помилка !!! );
{... обробка коду помилки .....} (1000) ;;
{---------------- Основна частина програми --------------------}: =...; {Завдання області виведення графіка; }:=...; {можна вводити з клавіатури або здавати}:=...; {в програмі}:=...;:=...; {Розрахунок масштабів}:=...;
........... {Установка квітів, типів ліній і ін.}:=xn; {Перехід в початок графіка}
x:=x + h; x lt; xk do
begin
:=F (x);
...
... {Креслення відрізка прямої від попередньої точки до}
... {точці (x, y)}:=x + h;