2.1 Опис деяких графічних процедур і функцій
1)Ellipse (X, Y: Integer; U1, U2, XR, YR: Word) Малює дугу еліпса поточним кольором; X, Y - координати центру еліпса; U1, U2 - кути до початкової і кінцевої точок дуги еліпса (див. процедуру Arc) ; XR, YR - горизонтальна і вертикальна півосі еліпса. 2)FillEllipse (X, Y: Integer; XR, YR: Word) Малює заштрихований еліпс, використовуючи X, Y як центр і XR, YR як горизонтальну і вертикальну півосі еліпса. 3)Line(X1,Y1, X2,Y2:Integer)Малює лінію від точки X1,Y1 до точки X2, Y2. 4)LineTo(X,Y:Integer)Малює лінію від поточного покажчика до точки X,Y. 5)SetBkColor (Соlor: Word) Встановлює колір фону.
2.2 Робота в графічному режимі
Перш, ніж приступити до створення графічних програм на Turbo Pascal, необхідно ознайомитися з найбагатшими графічними можливостями цієї мови, зосередженими в стандартних модулях (бібліотеках) GRAPH і CRT (CRT назва походить від Cathode-Ray Tube - електронно-променева трубка). Ці модулі містять опису стандартних констант, процедур і функцій, графічному режимі. При роботі в графічному режимі весь екран розбивається на окремі точки - "пікселі". Положення піксела також задається двома координатами - X і Y. Координата X збільшується зліва направо, а координата Y - зверху вниз. Підключення модулів CRT і GRAPH до програми здійснюється за допомогою ключового слова Uses (англ.uses - використовує) Uses Crt, Graph.
3. Модуль CRT
Модуль CRT містить опису констант,процедур і функцій, що забезпечують керування текстовим режимом роботи монітора і звуковим генератором.
3.1 Процедури
1)ClrScr- Очищає екран або вікно і поміщає курсор у верхній лівий кут. 2)Delay(D: Word)- припиняє роботу програми на вказане число D мілісекунд. Практично час затримки залежить від тактової частоти процесора. 3)GotoXY (X, Y: Byte)- переміщає курсор в позицію X рядка Y екрану. 4)NoSound-Вимикає джерело звуку. 5)Sound (F: Word)- запускає джерело звуку з частотою F (Гц). 6)TextBackGround (Color: Byte)- встановлює колір фону. 7)TextColor (Color: Byte)- встановлює колір символів. 8)Window(X1, Y1, X2, Y2: Byte)- визначає текстове вікно на екрані. X1, Y1 - координати лівого верхнього кута вікна, X2, Y2 - правого нижнього кута вікна.
3.2 Опції
1)KeyPressed: Boolean Аналізує натискання клавіші. Результат TRUE, якщо на клавіатурі натиснута клавіша (крім Alt, Ctrl і т.п.), і FALSE в іншому випадку. Чи не затримує виконання програми. 2)ReadKey: Char Читає символ з клавіатури без ехоповтора на екрані. Припиняє виконання програми, перш ніж натиснути на будь-яку клавішу, крім Alt, Ctrl і т.п.
4.Лістинг Програми
Program grapik;
Uses Crt, Graph;
const A=-100;B=100;XO=0;YO=0;
N=100;
var gd,gm,sgr,left,up,down,right,xgo,ygo,i:integer;
x, y :array [1..300] of real;
xg, yg: array [1..300] of integer;
Kx, Ky, Y_min, Y_max, X_min, X_max, Dx:real;
begin
gd:=0;gm:=0;
initgraph (gd,gm,'C:\tp70\bgi');
SetBkColor (3);
left:=40; up:=40; down:=440;
X_min:=A; X_max:=B;
Dx:=(B-A)/(N-1);
for i:=1 to N do begin
X[i]:=A+round(Dx*(i-1));
Y[i]:=1+X[i];
end;
Y_max:=Y[1];
Y_min:=Y[1];
for i:=1 to N do begin
if Y_max<Y[i] then Y_max:=Y[i];
if Y_min>Y[i] then Y_min:=Y[i];
end;
begin
Ky:=(down-up)/(Y_max-Y_min);
Kx:=Ky;
right:=left+round(Kx*(X_max-X_min));
if right>GetMaxX then
begin
right:=GetMaxX;
Kx:=(right-left)/(X_max-X_min);
Ky:=Kx;
up:=(down-round(Ky*(Y_max-Y_min)));
end;
for i:=1 to N do begin
Xg[i]:= left+round(Kx*(X[i]-X_min));
Yg[i]:= down-round(Ky*(Y[i]-Y_min));
end;
MoveTo (Xg[i], Yg[i]);
for i:=2 to N do
LineTo (Xg[i], Yg[i]);
XGO:=left+round(Kx*(XO-Y_min));
YGO:=down-round(Ky*(YO-Y_min));
Line(XGO,up,XGO,down);
Line(left,YGO,right,YGO);
for i:= 1 to N do
y[i]:=x[i]*x[i];
X_max:=y[1];
Y_min:=y[1];
for i:= 1 to N do
begin
if Y_max<y[1] then y_max:=y[1];
if Y_min>y[i] then y_min:=y[i];
end;
for i:=1 to N do
begin
xg[i]:=(left+round(Kx*(x[i]-x_min)));
yg[i]:=(down-round(Ky*(y[i]-x_min)));
end;
MoveTo (xg[i], yg[i]);
for i:=2 to N do
LineTo (xg[i], yg[i]);
End;
xg[i]:=yg[i];
for i:=1 to N do
MoveTo (xg[i],yg[i]);
LineTo (left, yg[i]);
readln;
closegraph;
end.
Висновок
У цій роботі описуються розв’язок систем нерівностей призначених для створення графіків в графічному середовищі Турбо Паскаля. Використовуючи вище перераховані процедури та функції, я навчився зображати графіки систем нерівностей, так само зміг показати переріз цих графіків. Написавши дану програму, я отримав навички роботи в графічному середовищі Турбо Паскаль, навчився правильно застосовувати різні процедури та функції, точно визначати і задавати координати графіків.
Блок–схема
Математична модель
y= 1+x;
y=x2:
(0; 0), (2; 4);
y=1+x:
(2; 3), (1; 2).
Список використаних джерел
1)Е. А. Зуєв. Програмування на мові Turbo Pascal 6.0, 7.0, М.: Веста, Радіо і зв'язок, 1993, - С.376
2)Turbo Pascal: вчиться програмувати, О. А. Меженний, Москва:
Изд.дом «Вільямс», 2001
3)Основи мови Turbo Pascal (навчальний курс), П. И. Рудаков, М. А.Федотов, Москва: Радіо та зв'язок, 2000р.
4)Моргун Олександр Миколайович. Довідник по Turbo Pascal для студентів. - М.: Діалектика, 2006. - С. 608.