Graph модулін қолдану



ЖОСПАР

1 Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...3

2 Негізгі бөлім
2.1 Graph модулін қолдану ... ... ... ... ... ... ... ... ... ... ... ... ... ..5
2.2 Фигураларды сызу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..9
2.3 Графикалық режимде текст жазу ... ... ... ... ... ... ... ... ... ... . 13
2.4 Координаттар және терезелер ... .. ... ... ... ... ... ... ... ... ... ... 19
2.5. Мультипликация ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2.6 Турбо Паскальдың қосымша интерфейсі

Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..29

Пайдаланылған әдебиеттер тізімі ... ... ... ... ... ... ... ... ... ... ..30
Кіріспе

Қазіргі кездегі Турбо Паскальдің 6,7 версияларындағы графикалық режимде жұмыс істеу өте ұқыптылықты, еңбікті талап етеді. Себебі өмірдің талабына сай, тілдің графикалық мүмкіндіктері тез дамып компьютерлік графика деген өз алдына үлкен сала пайда болды. Компьютерлік графика – кез-келген материалдық обьектінің бір өлшемді түрінен көп өлшемді түріне өзгерте алатын мүмкіндіктерін айтады. Бұл тақырыпта графикалық мүмкіндіктермен айтады. Бұл тақырыпта графикалық мүмкіндіктермен алғашқы таныстыру қарастырылады.
Графикалық режимдегі координаталар ситемасы текстік режимдегі системамен сәйкес келеді. Текстік режимде экранға 80 бағаннан, 25 қатар (80х25) шығады. Графикалық режим нүктелерді әр түрлі мүмкіндіктермен (320х200), (640,480) т.б. шығарады.
Дисплей жұмысын басқару платасы адаптер делінеді. Адаптерде орналасқан видеожаж экран образын (беті, парағын) сақтайды. Кеңінен тараған адаптерлер – EGA, VGA, SVGA Т.Б. Адаптер арқылы видеожадты қолдануды драйвер программа қамтамасз етеді.
Турбо Паскальдің графикалық режимін іске қосудың мүмікн 80-ге жуық процедуралар мен функциялары бар. Олар GRAPH модулінде жазылып қойылған.
Куртық жұмыстың мақсаты Турбо Паскальдың графикалық режимін күрделі графиктер тұрғызу, фигуралар сызу, графикалық режимде текст жазу, кординаттар және терезелер сызуда және т.б. амалдарды орындау барысында Турбо Паскальдың графикалық режимінің тигізізер көмегі көп.

Graph модулін қолдану.

GRAPH модулінің функциялары мен процедураларының параметрлері INTEGER типті болуы тиіс.
Initgraph (GDriver, GMode, Patch) – экранды графикалық режимге көшіру.
Мұндағы Gdriver – драйвер нөмірі. Gmode- режим нөмірі. Patch- қажетті драйверге жол сілтеу. Мысалы, CAtp’ tgavga bgi’ (bgi – графикалық драйвердің кеңейтілуі). Драйверді автоматты түрде анықтау үшін әдетте мәні 0-ге тең Detect атаулы тұрақты пайдаланылады. Олардың дұрыс енгізілуін, мәні тұрақты болатын және ол дұрыс кезінде нөл мәнін қабылдайтын режимді орнату функциясы (GraphResult) арқылы тексеруге болады. Мысалы,

Uses graph;
Var griver, gmode, Err Code: integer;
begin griver=detect; Initgraph (gdriver, gmode,);

ErrCode:=CraphResult; if ErrCode <>0 then Writeln (Графикалық режим қате орнатылған, оның нөмірі, ErrCode) Else CloseGraph;
end.

- Setbkcolor (<түс>) - экран кеңістігінің түсін орнату. Бұл оператор программаға енгізілмесе, экран ағымдық қара не көгілдір түске боялып көрсетіледі.
- SetColor (<түс>) - кескін орнату. Оператор енгізілмесе, кескін ақ түске боялып көрсетіледі.
Пайдаланылған әдебиеттер тізімі:

1. Ж.Қ. Масанов, Б.А. Бельгибаев, А.С. Бижанова, Қ.Қ. Мақұлов. Turbo Pascal. /Алматы, 2004ж /
2. Шаметов Ералы Бақтайұлы. Паскаль тілін үйренейік. /Шымкент 1993 ж /
3. Г.Григас. Начало программирования, - М. «Просвещение», 1982 ж.
4. Эллиот Б. Коффман. Turbo Pascal –М.Санкт- Петербург Киев,
2002ж.
5. О.А.Меженный . Turbo Pascal – М.:Издательский дом
«Вильямс», 2001-448с.
6.Камардинов О. «Информатика» 1-б¼лiм. Алматы, 1999 ж.
7.Нақысбеков Б.К. «Паскаль тiлi» Алматы, 1992 ж.
8.Байдыбекова А., Коштаева Г.Т. «Паскаль тiлiн үйренейiк» Шымкент, 1996 ж.
9.Перминов О.Н. «Программирование на языке Паскаль» М. Радио и связь, 1988 г.

Жоспар

1 Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...3

Негізгі бөлім

4 Graph модулін қолдану ... ... ... ... ... ... ... ... ... ... ... ... ... ..5

5 Фигураларды сызу
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...9

6 Графикалық режимде текст жазу ... ... ... ... ... ... ... ... ... ... . 13

7 Координаттар және терезелер ... .. ... ... ... ... ... ... ... ... ... ... 19

2.5. Мультипликация
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
...
2.6 Турбо Паскальдың қосымша интерфейсі

Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..29

Пайдаланылған әдебиеттер тізімі ... ... ... ... ... ... ... ... ... ... ..30

Кіріспе

Қазіргі кездегі Турбо Паскальдің 6,7 версияларындағы графикалық режимде
жұмыс істеу өте ұқыптылықты, еңбікті талап етеді. Себебі өмірдің талабына
сай, тілдің графикалық мүмкіндіктері тез дамып компьютерлік графика деген
өз алдына үлкен сала пайда болды. Компьютерлік графика – кез-келген
материалдық обьектінің бір өлшемді түрінен көп өлшемді түріне өзгерте
алатын мүмкіндіктерін айтады. Бұл тақырыпта графикалық мүмкіндіктермен
айтады. Бұл тақырыпта графикалық мүмкіндіктермен алғашқы таныстыру
қарастырылады.
Графикалық режимдегі координаталар ситемасы текстік режимдегі
системамен сәйкес келеді. Текстік режимде экранға 80 бағаннан, 25 қатар
(80х25) шығады. Графикалық режим нүктелерді әр түрлі мүмкіндіктермен
(320х200), (640,480) т.б. шығарады.
Дисплей жұмысын басқару платасы адаптер делінеді. Адаптерде орналасқан
видеожаж экран образын (беті, парағын) сақтайды. Кеңінен тараған адаптерлер
– EGA, VGA, SVGA Т.Б. Адаптер арқылы видеожадты қолдануды драйвер программа
қамтамасз етеді.
Турбо Паскальдің графикалық режимін іске қосудың мүмікн 80-ге жуық
процедуралар мен функциялары бар. Олар GRAPH модулінде жазылып қойылған.
Куртық жұмыстың мақсаты Турбо Паскальдың графикалық режимін күрделі
графиктер тұрғызу, фигуралар сызу, графикалық режимде текст жазу,
кординаттар және терезелер сызуда және т.б. амалдарды орындау барысында
Турбо Паскальдың графикалық режимінің тигізізер көмегі көп.

Graph модулін қолдану.

GRAPH модулінің функциялары мен процедураларының параметрлері INTEGER
типті болуы тиіс.
Initgraph (GDriver, GMode, Patch) – экранды графикалық режимге көшіру.
Мұндағы Gdriver – драйвер нөмірі. Gmode- режим нөмірі. Patch- қажетті
драйверге жол сілтеу. Мысалы, CAtp’ tgavga bgi’ (bgi – графикалық
драйвердің кеңейтілуі). Драйверді автоматты түрде анықтау үшін әдетте мәні
0-ге тең Detect атаулы тұрақты пайдаланылады. Олардың дұрыс енгізілуін,
мәні тұрақты болатын және ол дұрыс кезінде нөл мәнін қабылдайтын режимді
орнату функциясы (GraphResult) арқылы тексеруге болады. Мысалы,

Uses graph;
Var griver, gmode, Err Code: integer;
begin griver=detect; Initgraph (gdriver, gmode,);

ErrCode:=CraphResult; if ErrCode 0 then Writeln (Графикалық режим
қате орнатылған, оның нөмірі, ErrCode) Else CloseGraph;
end.

- Setbkcolor (түс) - экран кеңістігінің түсін орнату. Бұл
оператор программаға енгізілмесе, экран ағымдық қара не көгілдір
түске боялып көрсетіледі.
- SetColor (түс) - кескін орнату. Оператор енгізілмесе, кескін
ақ түске боялып көрсетіледі.
- GetMaxColor - палитрадағы максималды түстің кодын анықтайды.
- GetMaxХ, GetMaxҮ – экран координаттарының ең үлкен мәндерін
береді.
- CloseCraph - графикалық режимді жауып, текстік режимге өту.
- RestoreCRTMode – уақытша текстік режимге өту
- SetGraphMode (режим) - графикалық режимге қайта өту.
- ClearDevice – экранды тазалайды.
- GraphResult – жүйенің графиктік режимге дұрыс өтуін тексеру
(функция). Ол Integer типті және, қате болмаса, оның мәні 0-ге
тең, т.б.

Фигураларды сызу

- Line (х1,у1,х2,у2) – (х1,у1) нүктесінен (х2,у2) нүктесіне дейін
түзу кесіндісін сызу.
- Rectangle (х1,у1,х2,у2) –сол жақ жоғары төбесі (х1,у1), оң жақ
төменгі төбесі (х2,у2) болатын тіктөртбұрыш сызу.
- Circle (x,y,R) – орталық нүктесі (х,у) радиусы R-ге тең шеңбер
сызу.
- Arc (x,y,gr1,gr2,R) – градуспен берілген gr1, gr2 бұрыштарының
аралығында орталық нүктесі (х,у) радиусы R-ге тең дөңгелек
доғасын сызу.
- Pieslice (x,y, gr1,gr2,R) - градуспен берілген gr1,gr2
бұрыштардың аралығында орталық нүктесі (х,у), радиусы R-ге тең
дөңгелек секторын сызу.
- Ellipse (x,y,gr1,gr2,Rx, Ry) – градуспен берілген gr1,gr2
бұрыштарының аралығында орталық нүктесі (х,у), биіктігі мен ені
Rx, Ry болатын элиппс сызық.
- PutPixel (x,e, түс) - түс - боялған (х,у) нүктесін орнату.
- FloodFill ( Х,У шекара түсі) – шектелген фигураны бояу. Мұндағы
Х,Ү фигура ішіндегі кез-келген нүкте. Шекара түсі - боялатын
фигураның шекара контурының түсімен бірдей болады.

Графикалық режимде текст жазу

- SetTextStyle(штриф, бағыты , штрифт өлшемі) –
- текст стилін орнатады. Штрифт параметрінің мәні 0...4, яғни 0-
матрицалық,1-триплекс, 2-ұсақ, 3-тік, 4-готикалық штрифтар
Бағыты параметрінің мәні 0 (солдан-оңға қарай) немесе 1
(төменнен жоғары қарай). Штрифт өлшемі параметрлерінің мәні
1...10.
- OuttextXY (х,у, текст) – (х,у) нүктесінен бастап дәйекшілер
ішінде жазылған тексті экранға шығару.
- SetTextJustify (Горизанталь, Вертикаль) – текстің курсорға
қатысты орнын анықтайды. Горизанталь - мәні 0...2, Вертикаль
- мәні 0...2.
- SetLinStyle ( Сызық түрі, үлгісі, сызық қалыңдығы) –
фигуралар кескіндерінің контурлары және басқа да сызықтардың
қалыңдықтарын орнатады. Сызық түрі - мәні 0...4, 0-үздіксіз, 1-
нүкте түріндегі, 2-штрихпунктирлі, 3-пунктирлі, 4-пайдаланушы
анықтайтын ерекше сызық түрі. Үлгісі - әдетте мәні 0-ге тең,
тек Сызық түрі - мәні 4-ке тең болғанда оның сызық үлгісі
көрсетіледі. Сызық қалыңдығы - мәні 1...3.

Координаттар және терезелер.
1 мысал. Терезедегі суретті кесіп алу

Uses Graph,CRT; 
var
x,y,e: Integer;
xll,yll,xl2,yl2, {1-ші терезенің координаттары}
x21,x22, {2 ші сол жақ жоғарғы бұрыш}
R, {бастапқы радиус}
k: Integer; 
begin
DirectVideo := False
{графикалық режимді иницииалдау}  
х := Detect; InitGraph(x, у, ''); 
{Проверяем результат} 
е := GraphResult; if e grOk then
WriteLn(GraphErrorMsg (e) ) {қате} 
else
begin {қате жоқ}
x11:=GetMaxX div 60; 
x12:=GetMaxX div 3; 
y11:=GetMaxY div 4; y12:=2*y11;
R:=(x12-x11) div 4; x21:=x12*2;
x22:=x21+x12-x11; 
{терезені сызамыз}
WriteLnt'ClipOn:':10,'ClipOff:':40) ; 
Rectangle(x11, y11, x12, y12); Rectangle(x21, y11 x22, y12);
SetViewPort(x11, y11, x12, y12, ClipOn); 
for k := 1 to 4 do
Circle(0,y11,R*k);
SetViewPort(x21, y11, x22, y12, ClipOff); 
for k := 1 to 4 do
Circle(0,y11,R*k); 
{кез келген клавишті басу }
if ReadKey=#0 then k := ord(ReadKey); 
CloseGraph 
end 
end.
2 мысал. Бұл мысалда алдымен терезе шығады, содан кездейсоқ
шеңберлер пайда болады. Кез келген клавишті басқанда терезе тазарады. Шығу
үшін Enter клавиші басылады

Uses CRT,Graph; 
var
x1,y1,x2,y2,Err: Integer; 
begin
{ графическалық режимді инициалдау} 
xl := Detect; InitGraph(xl,x2,''); 
Err := GraphResult; if ErrogrOk then
WriteLn(GraphErrorMsg(Err)) 
else
begin
x1 := GetMaxX div 4,-y1 := GetMaxY div 4; 
x2 := 3*x1; y2 := 3*y1; 
{терезе сызамыз}
Rectangle(x1,y1,x2,y2);
SetViewPort(x1+1,y1+1,x2-1,y2-1,Cli pOn); 
{терезеге кездейсоқ шеңберлерді толтырамыз} 
repeat
Сirclе(Random(Ge tMaxX),Random(Ge tMaxX)
Random(GetMaxX div 5)) 
until KeyPressed;
{Терезені тазалау үшін Enter клавишін басамыз} 
ClearViewPort;
OutTextXY(0,0,'Press Enter...1); 
ReadLn; 
CloseGraph 
end 
end.
3 мысал. Әртүрлі өлшемдегі 20 шеңберден тұратын сурет салу

Uses Graph,CRT; 
const
R =.50;
dx = 1000; 
var
d,m,e,k : Integer;
Xasp,Yasp: Word; 
begin
d := Detect;
InitGraph(d, m,.'');
e : = GraphResult;
if e grOk then
WriteLn(GraphErrorMsg(e)) 
else
begin
GetAspectRatio(Xasp, Yasp); 
for k := 0 to 20 do 
begin
SetAspectRatio(Xasp+k*dx,Yasp); 
Circle(GetMaxX div 2,GetMaxY div 2,R) 
end;
if ReadKey=#0 then k := ord(ReadKey); 
CloseGraph 
end 
end.

Мысал 4. Бір бұрышы 0 және 90, екінші бұрышы 207 және 540 градуста
сызылған шеңбер сызайық.

Uses Graph, CRT; 
var
d, r, е : Integer; 
Xasp,Yasp: Word; 
begin
{ графиканы инициалдау} 
d := Detect;
InitGraphtd, r, '');
e := GraphResult; if e grOK then
WriteLn(GraphErrorMsg(e)) 
else 
begin
GetAspectRatio(Xasp,Yasp);
{R = 15 болғандағы экранның вертикальды өлшемі}
r := round(Yasp*GetMaxY5XAsp);
d := GetMaxX div 2; {екінші графикті алу}
e : = GetMaxY div 2; {горизонтальды ось }
{сол жақ графикты тұрғызайық }
Line (0,e,5*r div 2,e); {Горизонтальды ось}
Line (5*r div 4,e div 2,5*r div 4,3*e div 2) ;
Arc (5*r div 4,e,0,90,R); {доға}
OutTextXY(0,e+e div 8,'0 - 90'); {жазба}
{бірінші график}
Line (d,e,d+5*r div 2,e);
Line (d+5*r div 4,e div 2, d+5*r div 4,3*e div 2);
Arc (d+5*r div 4,e,270,540,R);
OutTextXY(d,e+e div 8,'270 - 540');
{кез келген клавишті басу} 
if ReadKey=#0 then d := ord(ReadKey); 
CloseGraph 
end
end.
1-мысал. Графикалық режимде бірінің ішіне бірі салынған 5 шеңбер және
параллепипед салатын программа құру керек.

program exl; uses graph;
var gd, gm, erre:integer; R,i, width:integer; x0,y1,y2,x1,x2: integer;
begin gd=detect; inintGraph(gd,gm); erre:=GraphResult;
if erre=grOK then begin
for R:=1 to 5 do Circle (getmaxX div 2, getmaxy div 2, r*10);
readlin; cleardevice; Bar3d (100, 100,300,250,50, TopOn);
settextstyle (0,0,3); SetColor (Red); setlinestyle (0,0,3);

settextjustify (0,0); outtextxy (130,192, PASKAL);
readlin; cleardevice; end else Halt (1); end.
2-мысал. Экран бетінде қызыл төртбұрыш, ортасында ақ дөңгелек, оның
ішінде бұрышы 270 градус болатын қара дөңгелек секторын салу керек.

Program Suret; Uses Graph;
Var CD, GM: Integer;
Begin gd=Detect;
Initgraph (CD, GM, ``); {графикалық режим орнатылуы}
Pieslice (310,240,0,270,150); {сектор салу}
Circle (310,240,180); {шеңбер салу}
Rectangle (0,0,GetMaxX, GetMaxY);
SetFillstyle (1,Red); {Бояу түрі мен түсі}
FloodFill (10,10,White); {төртбұрышты бояу}
Readlin; {“Enter” пернесінің күтілуі}

3-мысал. Экранға готикалық шрифтпен THE END, PRESS ENTER, сөзін
жазатын программа құру керек.

program ex2;
... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Паскаль тіліндегі модульдер
Графиктік режимге көшу адаптері
Turbo pascal программалау тілі туралы
ТУРБО ПАСКАЛЬ ТІЛІНІҢ ТҮСІНІКТЕРІМЕН ЖҰМЫС ЖАСАУ
Модульдік бағдарламалау - Модульдердің құрылымы
Турбо паскальдағы графикалық процедура
Программалау тілдері туралы ұғым
Құрылымдық диаграмма бағдарламасы
Турбо Паскаль тілінің графикалық режимнің мүмкіндіктері
Экранға мәтін шығару процедуралары
Пәндер