КІРІСПЕ....................................................................................................................3
І. ТУРБО ПАСКАЛЬ ПРОГРАММАЛАУ ТІЛІ ЖӨНІНДЕ НЕГІЗГІ
ҰҒЫМДАР
1.1 Turbo Pascal туралы түсінік...............................................................5
1.2. Turbo Pascal ортасында графикалық режиммен жұмыс................12
II. ГРАФИКАМЕН ЖҰМЫС
2.1. Графикалық экран мен элементтерінің параметірлерін қою
функциялары..........................................................................................20 2.2. Графикалық элементтерді бейнелеу процедуралары........................33
2.3. Графикалық экран мен элементтерінің параметірлерін қою
процедуралары.......................................................................................38
2.4. Графикалық мәтін жазу функциялары...............................................40
2.5. Функциялардың графигін салу...........................................................41
ҚОРЫТЫНДЫ.......................................................................................................44
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР..................................................................46
Кіріспе
XXI ғасырды ақпараттық технологиялар дәуірі деп атайды. Қазіргі
Адам баласының алгоритмдік және логикалық ойлау дағдыларын дамытуға
60-70 жылдарда Н. Вирт ойлап шығарған Паскаль
Сонымен бірге көптеген мини және макро компьютерлерді қамтамасыз
Дисплей экраны нүктелер жиыны болып табылатын төртбұрыштар аймақ
Қазіргі дербес компьютерлердің графикалық информацияларды енгіу, шығару және
Стандартты Паскальдың графикалық информациямен жұмыс істейтін командалары жоқ.
Турбо Паскаль жүйесінде графикалық информациялармен жұмыс істеу
Турбо Паскаль графикасын, көбінесе, псевдо – графика деп
І. ТУРБО ПАСКАЛЬ ПРОГРАММАЛАУ ТІЛІ ЖӨНІНДЕ НЕГІЗГІ
ҰҒЫМДАР
1.1 Turbo Pascal туралы түсінік
Кезкелген табиғи тіл сияқты, программалау тілінің де өз
Кезкелген программаның басты элементтері – айнымалылар, тұрақтылар және
Турбо Паскаль тілінде 80-ге жуық қызметші сөздер мен
1.1 кесте. Паскаль тіліндегі қызметші сөздер
absolute and array assembler
begin break case const
constructor continue destructor div
do downto else end
external far file for
function goto if inplementation
in inline interface interrupt
label mod near nil
not object of or
packed private procedure program
public record repeat set
shl shr string then
to type unit until
uses var virtual while
with xor
Қызметші сөздердің ішінен программалауда жиі пайдаланыла-тындарының мағынасын түсіндіре
1.2 кестеде арнайы символдар тізімі келтірілген. Программа мәтінінде
1.2 кесте. Паскаль тіліндегі арнайы символдар
( Қосу, біріктіру, жалғау амалдарының таңбасы
( Азайту, алу амалдарының таңбасы
( Көбейту, қиылысу амалдарының таңбасы
/ Бөлу амалының таңбасы
= Логикалық теңдік, тұрақтылар мен типтерді сипаттау
Логикалық теңсіздік
< > "Кіші" және
= "Үлкен немесе тең" логикалық қатынасы
. Программа не модуль соңы, ондық бөлшектегі айыру
, Тізім элементтерін айыру таңбасы
' Жол тұрақтысын шектеу таңбасы
: Айнымалыларды сипаттау, экранға шығару пішімінің элементі
; Сипаттауда және экранға шығаруда айнымалыларды айыру
.. Мәндердің өзгеру аралығын көрсету белгісі
:= Айнымалыға өрнек мәнін меншіктеу
( ) Арифметикалық
[ ] Массив
{ } Түсініктемелер жазу
(( () Түсініктемелерді шектеу белігілері
Қызметші сөздер мен арнайы символдар программа құру үшін
Паскаль тілімен алғашқы танысуды
функциясының мәнін есептейтін жай программадан бастайық:
Program Fun;
const
a=5;
var
x,y: integer;
begin
write('x=');
readln(x);
y:= a*sqr(x);
writeln('y=',y);
end. {программа тақырыбы}
{тұрақтыларды сипаттау}
{айнымалыларды сипаттау}
{программа басы}
{экранға мәтін шығару}
{x айнымалысына мән енгізу}
{y айнымалысына өрнек мәнін меншіктеу}
{экранға мәтін және айнымалы мәнін шығару}
{программа соңы}
Бұл программада кездесетін ағылшын сөздерінің аудармасы:
Program программа
const (constants) тұрақтылар
var (variables) айнымалылар
integer бүтін
begin басы
readln оқу
writeln жазу
end соңы
Программа мәтіні компьютер жадында мәтіндік файл (кеңеюі .pas)
Program ;
Ескерту. Турбо Паскалда программа тақырыбын жазбай кетуге де
Program at_1;
Сипаттаулар бөлімі
begin
Операторлар бөлімі
end.
сурет. Паскаль тіліндегі программа құрылымы
Программада операторлар бір, не бірнеше жолдарға жазылып, нүктелі
Айнымалыларды сипаттау мына түрде жазылады:
var a_1 , a_2 , … ,
b_1 , b_2 , … , b_n :
. . .
c_1 , c_2 , … , c_k :
Мұнда type_a , type_b, … , type_c
Паскаль – типтерге бай тіл. Әзірше, программалауда жиі
integer – [-32 767, 32 768] аралықтағы мәндерді
real – [(2,9(10-39, (1,7(1038] аралықтағы мәндерді қамтитын, нақты
string – саны 255-тен аспайтын символдар (5
Айнымалыларды сипаттаудың мысалы:
var san1, san2 : integer;
audan, kolem : real;
gol: string;
Мұнда san1, san2, audan, kolem - айнымалылыр, ал
Тұрақтыларды сипаттау мына түрде жазылады:
const p_1 = mp_1;
p_2 = mp_2;
. . .
p_n = mp_n;
Мұнда p_1, p_2 , ...
Типсіз тұрақтыларды сипаттаудың мысалы:
const gyl = 2003;
g = 9.81;
Ескерту. Программада пайдаланылатын барлық айнымалылар мен тұрақ-тылар
Дисплей экранының графикалық режимі
Әдетте дисплей экраны екі режимде болады: текстік және
Экрандағы графикалық бейне графикалық экранның буферінің күйіне байланысты
Визуалды, көрінетін бет (буфер) деп сол мезетте физикалық
Текстік экран тәрізді графикалық экранның да курсоры
Графикалық курсордың текстік курсордан айырмашылығы графикалық курсор барлық
1.2. Turbo Pascal ортасында графикалық режиммен жұмыс
Графикалық режимнің төмендегідей сипаттамалары бар мүмкіндігі (разрешение), и
Бұл сипаттамалар, ең алдымен, дисплейдің техникалық типімен жүйелен
Графикалық режимде экранның жұмысын басқаруға арналған Borland (АҚШ)
Экранның графикалық режимінің мүмкіндігі.
Экранның графикалық режимінің мүмкіндігі экрандағы х, у осі
Графикалық экранның мүмкіндігі дегеніміз – бұл экранға шығарылатын
Графикалық режимдегі политра.
Политра (бояулар) дегеніміз – бұл графикалық режимге арналған
Black -0 -қара DarkGray -8
Blue -1 -сұр LightBlue -9
Green -2 -жасыл LightGreen -10 -ашық
Gegan -3 -көгілдір LightGtgan -11 -ашық
Red -4 -қызыл LightRed -12 -алқызыл
Magenta -5 -күлгін LightMagentra -13 -таңқурай түс
Brown -6 -қоңыр Yellow -14 -сары
LightGray -7 -ақ-сұр White -15 -ақ
Кестеде келтірілген түстердің ағылшынша атауларының номерлері GRAPH модулі
Экранның беттер мөлшері.
Экрандық режимнің графикалық экрандық беттерге арналған бір немесе
Ең жоғарғы мүмкіндікті режимде тек бір ғана графикалық
Экрандық бет графикалық режимде экранға шығару буферінде кодталады.
GRAPH модулінде беттерді басқару үшін екі процедура пайдаланылады:
SETACTIVAGE () – бетті активті жасауға
SETVISUALPAGE () – бетті визуалдандыруға арналаған.
Сонымен, режимдердің мөлшері мен олардың сипаттамалары дисплеймен, оның
VGA адаптерінің режимі үшін қысқаша нұсқау берейік:
VGAo =0-VGA-ға арналған ең төменгі мүмкіндікті графика (
VGAMED =1 – VGA-ға арналған орташа мүмкіндікті графика
VGAH =2 – VGA-ға арналған жоғары мүмкіндікті графика
Графикалық режимді тағайындау және одан шығу.
Жалпы алғанда, компьютерде негізгі екі экран режимінің жұмысы
Графикалық режимнен шығу үшін Closegraph проедурасы пайдаланылады. Графикалық
Ескерту.
Драйвердің типі адаптердің типіне сәйкес келуі тиіс.
Драйвердің параметрі әдетте detect функциясымен беріледі; яғни
Егер драйвер сол қалыпта болатын болса, Турбо Паскаль
Графикалық режимнің тағайындалуының нәтижесі екі функция модулінің мәндерінен
GRAPHresult функциясы кез келген функция немесе проедура модульдерінің
Тілді жаңадан үйренушілер үшін графикалық режимді төмендегідей тағайындауды
Турбо Паскаль жүйесінің файлдары орналасқан каталогта GRAPH.TPU, TURBO.TPL
Программада инициализаия жасу үшін мынадай операторлар мен сөйлемдерді
YSES CRT, GRAPH;
Var driver6 regim, error: integer;
S: char;
…
Driver: = detect;
INITGRAPH (driver, regim, ''),
Error. = Graphresult;
If error 0 then
Begin
Writeln ('Графикалық режимде қате бар!');
Writeln ('tokta'),
S: = readkey
End;
…
Ескерту. CRT модулін қосу компьютердің жұмысын басқару
GRAPH модулінің жалпы сиппаттамасы.
GRAPH модулі IBM – типтес дербес компьютерлердің графикалық
Турбо Паскалда графикалық драйверлер деп аталатын арнайы программалар
драйверлер видеоадаптерлер
CGA.BGI CGA,MCGA
EGAVGA.BGI EGA,VGA
HERC.BGI Hercules (монохромды)
ATT.BGI AT&T 6300 (400 жол)
PC3270.BGI 3270 PC
IBM8514.BGI IBM - 8514
Көптеген видеоадаптерлер монитордың көрсету мүмкіндіктерін өзгерте алатын бірнеше
● UsesGraph операторын программа басына орналастырғанда ғана GRAPH
● InitGraph (Gd, Gm, 'c:\TP7') процедурасы дербес компьютерге
Мұнда 'c:\TP7' – драйвер файлына апаратын жол. Графикалық
Gd Gm
Detect
CGA
MCGA
EGA
EGA64
EGAMono =5 VGALo
IBM8514 =6
HereMono =7 VGAHi
ATT400
VGA
C3P270
GraphResult функциясының нолден озге мәні ( қателік
CloseGraph процедурасы графикалық драйверді жадтан шығарып, видеоадаптердің мәтіндік
II. ГРАФИКАМЕН ЖҰМЫС
2.1. Графикалық экран мен элементтердің параметрлерін қою
Графикалық режимді тағайындағаннан кейін пайдаланушы өзінің жұмысы үшін
графикалық экранды басқару үшін;
графикалық информацияны өндеу және шығару үшін;
графикалық режимде текст шығару үшін.
Графикалық экранды басқару командалары:
пайдаланылған адаптер мен драйвер туралы информация алу;
графикалық режимдердің мөлшерін және сипаттамаларын білу;
графикалық экранның жұмысына қажетті режимді тағайындау;
экранның графикалық беттерін басқару;
графикалық информациямен шығаруға арналған терезені іске қосу және
графикалық информациямен шығару және фон түстерін басқару;
экранды графикалық курсормен басқару;
экранды немесе терезені тазарту жатады.
Графикалық информациямен енгізу және шығару командалары:
графикалық экранға нүкте, кесінді, тіктөртбұрыш, қисық сызық, шеңбер,
динамикалық жадыға графикалық экранның бөліктерін бейнелерімен сақтау және
экрандағы тұйықтары берілген түстермен бояу немесе штрихтау.
Графикалық режимде экранға текст шығару командалары – графикалық
GRAPH модулінің командалары графикалық экранда кез келген бейнені
Графикалық координаталар жүйесі.
Графикалық координаталар экрандағы нүктенің ( пикселдің ) орнын
(0,0)
Нүктені экранда бейнелеу үшін оның декарттық ( х,
x = mx · x + dx,
y = ry – my · y –
формалаларын қолданып түрлендіруге болады. мұндағы dx және dy
rx = mx · x + 1,
ry = my · y + 1
шарттарын қанағаттандыру тиіс ( х және ү декарт
dx = rx div 2, d = ry
деп аламыз.
Графикалық экранды басқарудың негізгі командалары.
Графикалық экранды басқарудың мынадай командалары бар:
INITGRAPH – графикалық режимді тағайындау;
DETECT – графикалық драйверді автоматты түрде анықтау;
CLOSEGRAPH – графикалық режимді жабу;
SETGRAPHMODE – жаңа графикалық режимді тағайындайды;
SETGRAPHMODE < режим >, мұндағы режим – код
CLFARDevise – процедурасы – графикалық экранды тазалайды;
CLFARDevise – форматы;
Экранның барлық түзетулері, бастапқы қалыпқа келтіріліп, курсор экранның
SetViewPort процедурасы тіктөртбұрыш терезені тағайындайды. Форматы: SetViewPort
Мұндағы х1, у1, х2, у2 – тіктөртбұрыштың сәйкес
ClearViewPort процедурасы – терезені тазалайды;
GetMaxX және GetMaxY функциясы – тағайындалған графикалық режимде
Типі integer, форматы: GetMaxX GetMaxY.
Функция Қызметі
Ф: GetMaxX : integer Экранның жатық жолы бойынша
Ф: GetMaxY : integer Экранның тік жолы
Ф: GetХ : integer Көрсеткіштің ағымдағы х
Ф: GetУ : integer Көрсеткіштің ағымдануы координатасын
Ф: GetColor : word Суреттің ағымдық түсін береді.
Ф: GetBkColor : word Төсектің ағымдық
Ф: GetMaxColor : word SetColor процед. Пайдаланылатын
Ф: GetPixel (x, y: integer) : word (х,
Графикалық курсорды басқару.
MoveTo процедурасы курсорды көрсетілген координатасын орналастырады.Форматы:MoveTo(x,y);
GETIX және GETY функциялары курсордын ағымдағы координатасын анықтайды.
Форматы:GETX және GETY.
Фон түстерін басқару және шығару.
Бұл басқаруға графикалық режимнің бояуларының түстерін баскару командалары
Графикалық экран үшін түсті тағайындау командаларын қарастырайық.
SetPalette процедурасы – берілген бояудағы түстің реттік номері
SetAllPalette процедурасы – алдыңғы процедурадағыдай, бірақ бояудағы түстің
GetPalette процедурасы ағымдағы бояудың сипаттамасын береді, түстердің мөлшерін,
GetPaletteSize функциясы - ағымдағы графикалық режимнің бояуындағы
GetDefaultPalette процедурасы – ескертусіз тағайындалған графикалық режимнің,бояулардың сипаттамасын
Фон түсін тағайындау және оны графикалық экранға шығару.
Фонның түстерін басқару және шығару мүмкіндіктері графикалық экранға
SetColor процедурасы – графикалық немесе текстік информацияны графикалық
GetMaxColor функциясы – ағымдағы шығарылатын түстің номерін береді,
GetColor функциясы – ағымдағы графикалық режимдегі түстің ең
SetBkColor процедурасы орындалғанда графикалық экранның ағымдағы фонының түсі
GetBkColor функциясы – шығарылатын ағымдағы фонның түсін береді.
GetMaxColor функциясы ағымдағы графикалық режимде шығатын түстің ең
Графикалық информацияны шығару командалары.
Графикалық экранға шығарудағы негізгі жасалатын әрекет графикалық нүкте
Графикалық экранға жиі пайдаланылатын графикалық объектілерді шығаруды жеңілдету
Графикалық экранға нүкте шығару.
PutPixel процедурасы экранға нүктені көрсетілген координатасымен және түсімен
Форматы: PutPixel ( х, у, С ); мұндағы
GetPixel функциясы – координатасы көрсетілген экранның графикаыл нүктесінің
Графикалық экранға кесінді салу.
Line процедурасы бастапқы және соңғы нүктелердің көрсетілген координатасы
Форматы: Line (х1, у1, х2, у2); мұндағы х1,
LineТо процедурасы – кесіндіні ағымдағы курсор тұрған нүктеден
LineТо процедурасы – кесіндіні ағымдағы түспен курсор тұрған
Форматы: LineRel (dx, dy – қосымша өзгертілген өсімше)
Кесіндіні шығару стилі.
/сызықтың қалыңдықтары және түрлері/
GRAPH модулінде шығарылатын кесіндінің түрін, стилін анықтайтын командалар
SetLineStyle процедурасы шығаратын сызықтың түрін тағайындайды. Ол тек
Тұрақты Оның мәні Сипаттамасы
SolidLn
DottedLn
CtnterLn
DashedLn
UserBitLn 0
1
2
3
4 Үздіксіз сызық
Нүктелерден тұратын сызық
Нүктелер мен тиреден тұратын сызық
Штрихты пунктирлі сызық
Орындаушы тағайындайтын сызық типі.
Пайдаланушының стилі 16 пиксельдің қатарынан жануын кодтауға мүмкіндік
SetLineStyle процедурасы экранға шығарылатын кесінділердің стилін тағайындайды.
Форматы: SetLineStyle ( < код >, < шаблон
Мұндағы < код >: - мәні 0
Экранда көпбұрыштар тұрғызу.
RecTangle процедурасы диагональдарының төбелерінің координатасы бойынша тіктөртбұрыш сызады.
Форматы: RecTangle (х1, у1, х2, у2); мұндағы х1,
Мысал: Экранға әртүрлі түспен 100 тіктөртбұрыш сызу программасын
for I:=1 to 100 do
begin
SerColor ( Green );
RecTangle(200, Random(300),250,300);
ClearDevice
end;
Bar процедурасы – ағымдағы түспен боялған тіктөртбұрыш сызады.
(Х1, У1) және (Х2, У2) нүктелері боялған тіктөртбұрыштың
Bar3d процедурасы – ағымдағы түспен параллелепид сызады.
Форматы:
Bar3d(х1, у1, х2, у2) : integer; биіктігі: word;
Setfillstyle және Setfillpattern процедураларының көмегімен тағайындалған түспен боялған
Drawpoly прцедурасы ағымдағы түспен төбелерінің координаталары бойынша тұйық
Drawpoly ( координаталарының саны: word, var төбелерінің координатасы);
Const
Triangle: array [1..4] of point Type = ((x:50;
(x:100; y:100);
(x:150; y:150);
(x:60; y:100);
. . . begin
Drawpoly ( Size of (Triangle) div Size of
. . . End;
немесе
. . .
Drawpoly (4, Triangle);
. . . End.
Мысал. Бұл оператордың көмегімен экранға Sin х-тің графигін
Program sinsjzu;
Uses graph;
Const n=100;
Var d, r: integer;
M: array [0..n+1] of pointtype;
K: word;
Begin
D: =detect; initgraph (d, r,´´)
For k:=0 to n do with m[k] do
Begin
x: = trunc (k * getmax X/n);
y: = trunc (getMx Y * (-sin(2 *
End;
m[succ (n)]. x:= m[0]. x;
m[succ (n)]. y:= m[0]. y;
drapoly (n+2, m);
setfillstyle(1, 3); floodfill(120, 120, 15);
setfillstyle(8, 6); floodfill(350, 280, 15);
realdln;
closegraph
end.
Бұл программаның көмегімен 1-суретті сызуға болады.
Drawpoly процедурасын пайдаланып, көпбұрыш сызуға да болады.
Мысал. Боялған төртбұрыштың ішіне төбелерінің координаталары бойынша таңдалған
Program altyb;
Uses graph;
Const n=6;
t: array [1..n+1] of pointtype = ((x:80; y:80)
(x:110; y:60), (x:140; y:80);
(x:140; y:110),
(x:80; y:110),
Var d, m: integer;
Begin
D: =detect; initgraph (d, m, ');
Setbkcolor (1); setfillstule(1,5);
Bar(20,20,210,200); drawpoly(n+1, t);
Setfillstyle(8,6); floodfill(110,90,15);
realdn;
closegraph
end.
Бұл программаның арқылы 2- суретте көрсетілгендей фигура сызылады.
Шеңбер, эллипс және олардың доғаларын тұрғызу.
Доға, шеңбер және эллипс сызу процедуралары фигура салу
Circle (x,y: integer;
Мысалы, центрі (450,100) нүктесінде орналасқан радиусы 50 пиксель
SetColor ( Green )
Circle (450,100,50);
Arc (x,y: integer; B1, B2, R: word); -
Мысалы, центрі (450,100) нүктесінде орналасқан радиусы 50 пиксель
SetColor (Red)
Arc ( 450,100,0,90,50);
Eclipse (x, y: integer; B1, B2, R: word);
Мысалы:
SetColor (LightRed); { Эллипс сызығының түсін орнату }
Ellipse (100,100,0,360,30,50); { толық эллипс сызуы}
Эллипс іші экран түсімен бірдей, оның іші боялғаның
FillEllipse (x, y: integer; XR,YR: word); - іші
Мысалы:
SetFillStyle `WideDotFill, Green); {толтыру стилі}
SetColor LightRed; {Эллипс сызығының түсі}
FillEllipse (300,150,50,50);
Мұнда эллипс қызғылт түспен сызылып, оның іші WideDotFill
PieSlice(x,e: integer; B1,B2,R: word); шеңбердің іші боялған секторын
Мысалы:
SetFillStyle (10, Light Green); {Толтыру стилі}
SetColor (12); {Сектор сызығының түсін орнату}
PieSlice (100,100,0,90,50,);
Эллипстің боялған секторын сызу прцедурасы да бар, оның
Sector(x,y: integer; B1, B2, XR, YR: word); -
Мысалы:
SetFillStyle (closeDotFill, LightBlue); {Толтыру стилі}
SetColor (LightMagenta); {Сектор сызығының түсі}
Sector ( 300, 150, 180, 135, 60, 70
Енді бір программа мысал келтірейік.
Program ms;
Uses graph, crt;
Var d, r: integer;
Begin
D: =detect; initgraph (d, r, ´´);
Line(0. 100. 160. 100); Line(80, 45, 80, 155);
Ellipse(80, 100, 180, 90, 40, 45.);
OuttexsXY(30, 180, 180, ´XY