Паскаль тілі - графиктік режимде жұмыс



МАЗМҰНЫ

КІРІСПЕ 3

І. 1. ГРАФИКТІК РЕЖИМДЕ ЖҰМЫС. 4
1.1. Экранды басқаратын процедуралар мен функциялар. 5
1.2. Графиктік фигуралар салу процедуралары 9

ІІ. 1.3. Графиктік режимде текст шығару процедуралары. 16
1.4. Графиктік режимде қателерді өңдеу. 20
1.5. Фигураларды жылжыту. 22

ҚОРЫТЫНДЫ 25

ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР 26

ҚОСЫМША 27
КІРІСПЕ

Программа құруға ыңғайлы тамаша тілдердің бірі- Паскаль тілі. Оны оқып үйрену,түсіну және логикалық ойлау өте қара- пайым,әрі жеңіл. Паскаль программалаудың структуралық тәртібін және программалаудың басқа тілдерге қарағанда мысалы,Бейсик тіліне қарағанда әлдеқайда жақсы дамығанын айқындады. Оның қызықты рекурсивтік мүмкіндіктері,сонымен қатар әділ жөн сілтеу технологиясы да қолдау жасап отыр.
Енді бірер ауыз сөз тілдің тарихына тоқталатын болсақ алгоритімдік тіл АЛГОЛ 1950-1960 жылдары өңделді. Паскаль АЛГОЛ-дың ұрпағы болып саналады. Оны өңдеген швециялық,жоғары техникалық училищесінің профессоры Никлаус Вирт болды. Ол бұл тілді дүние жүзінде алғаш есептеу машинасын жасаған ұлы француз ғалымы Блез Паскальдың құрметіне «Паскаль» деп атаған. Паскальдың туған уақыты 70 жылдардың басы болатын. АЛГОЛ-мен салыстырғанда Паскаль түсінікті әрі өте жеңіл. АЛГОЛ-да жоқ болған нәрселердің барлығы Паскальда бар. Онда көптеген жақсы өңделген мәліметтер және қорытылып жаңа үлгіде тұрғызылған процедуралары бар.
Турбо Паскаль Borland фирмасының кеңейтілген стандартты тілі болып табылады,сонымен қатар интегралдау ортасын жеңілдету және тездету процесінде өңдеу программасын қалыпты сақтайды. Турбо Паскаль 7.0 пайда болғанша,бұл программалық өнім жеті версиядан өтті.

МАЗМҰНЫ

КІРІСПЕ 3
І. 1. ГРАФИКТІК РЕЖИМДЕ ЖҰМЫС. 4
1.1. Экранды басқаратын процедуралар мен функциялар. 5
1.2. Графиктік фигуралар салу процедуралары 9
ІІ. 1.3. Графиктік режимде текст шығару процедуралары. 16
1.4. Графиктік режимде қателерді өңдеу. 20
1.5. Фигураларды жылжыту. 22
ҚОРЫТЫНДЫ 25
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР 26
ҚОСЫМША 27

КІРІСПЕ

Программа құруға ыңғайлы тамаша тілдердің бірі- Паскаль тілі. Оны
оқып үйрену,түсіну және логикалық ойлау өте қара- пайым,әрі жеңіл. Паскаль
программалаудың структуралық тәртібін және программалаудың басқа тілдерге
қарағанда мысалы,Бейсик тіліне қарағанда әлдеқайда жақсы дамығанын
айқындады. Оның қызықты рекурсивтік мүмкіндіктері,сонымен қатар әділ жөн
сілтеу технологиясы да қолдау жасап отыр.
Енді бірер ауыз сөз тілдің тарихына тоқталатын болсақ алгоритімдік
тіл АЛГОЛ 1950-1960 жылдары өңделді. Паскаль АЛГОЛ-дың ұрпағы болып
саналады. Оны өңдеген швециялық,жоғары техникалық училищесінің профессоры
Никлаус Вирт болды. Ол бұл тілді дүние жүзінде алғаш есептеу машинасын
жасаған ұлы француз ғалымы Блез Паскальдың құрметіне Паскаль деп атаған.
Паскальдың туған уақыты 70 жылдардың басы болатын. АЛГОЛ-мен салыстырғанда
Паскаль түсінікті әрі өте жеңіл. АЛГОЛ-да жоқ болған нәрселердің барлығы
Паскальда бар. Онда көптеген жақсы өңделген мәліметтер және қорытылып жаңа
үлгіде тұрғызылған процедуралары бар.
Турбо Паскаль Borland фирмасының кеңейтілген стандартты тілі болып
табылады,сонымен қатар интегралдау ортасын жеңілдету және тездету
процесінде өңдеу программасын қалыпты сақтайды. Турбо Паскаль 7.0 пайда
болғанша,бұл программалық өнім жеті версиядан өтті.

1. ГРАФИКТІК РЕЖИМДЕ ЖҰМЫС.
Ол процедуралар мен функцияларды графиктік режим орнату үшін
программаның басында келесі амалдар орындау қажет:
USES қызметші сөзінде GRAPH модулі жазылады:
USES Graph;
VAR
d1,d2:Integer;
BEGIN
dl:=Detect;
I nitGraph(d1, d2, 'C:\Turbo\Graph');
мұндағы:
InitGraph - графикалық режимді орнату процедурасы,
d1- графиктік режим драйверініңтипін,
d2 - видеоадаптердің жұмыс режимінің нөмірін анықтайтын тұрақтылар.

Бұл шамалар монитор мен видеадаптер типтеріне байланысты болады. Егер
программада графиктік режим драйверінің типіне Detect стандартты тұрақты
шамасы берілсе, онда InitGraph процедурасы автоматты түрде өзіне керекті
графиктік драйвердің типін және монитор мен видеоадаптердің типтеріне
сәйкес келетін графиктік жұмыс режимін анықтап алады. Апострофтардың ішінде
орналасқан үшінші параметр Graph.tpu файлының дискіде орналасқан жолын
көрсетеді. Егер ол Turbo Pascal терезесін ашқан Turbo. Ехе файлымен бірге
бір каталогта орналасатын болса, онда Graph.tpu файлының орналасқан жолы
орнына бос екі апостроф қойылып кетеді.

1.1. Экранды басқаратын процедуралар мен функциялар.
Экранның фоны SETBKCOLОR процедурасының көмегімен орнатылады, жазылуы:
SETBKCOLOR(C);
мұндағы: С - түс коды 0-ден 15-ге дейін өзгереді. Бұл процедураның орындалу
нәтижесінде экран С номерлі түске боялып шығады. Бұл процедурамен
орнатылған түс кодының мәнін GETBKCOLOR процедурасының көмегімен анықтауға
болады.
Экрандағы барлық салынған графиктік объектілерді өшіріп тастау үшін
параметрсіз CLEARDEVICE процедурасы қолданылады. Бұл процедураның орындалу
нәтижесінде графиктік режимде орнатылған барлық параметрлер(фон түсі,
курсор орны, терезелер т.б.) күшін жойып, экран тазарып курсор қайтадан
координаттары (0,0) болатын экранның сол жақ жоғарғы бұрышындағы нүктеге
апарылады.
Графикалық режимнің көзге көрінбейтін сілтеме- көрсеткіш курсоры
болады. Курсорды басқару үшін MOVETO және MQVEREL процедуралары
қолданылады.
MОVETO процедурасы курсорды координаттары өзінде көрсетілген орынға
апарып қояды, мысалы:
MOVETO(X,Y); курсорды А(Х,Ү) нүктесіне апарып қояды
MOVEREL процедурасы курсорды бұрынғы тұрған жерінен X және Ү осі
бойынша өзінде көрсетілген сәйкес шамаларға тең нүктелерге жылжытып апарып
қояды, мысалы:
MOVEREL(X1,Y1);курсорды А(Х,Ү) нүктесінен А1(Х+Х1,Ү+Ү1)
нүктесіне апарып қояды
Курсордың тұрған жерін анықтау үшін GET функциясы қолданылады, мысалы:
A:=CetX; курсор түрган жердің X осіндегі координатын анықтау
B:=GetY; курсор түрған жердің Ү осіндегі координатын анықтау
X және Ү осіндегі барлық нүктелер санын анықтау үшін GETMAX функциясы
қолданылады. Бүл функцияларды монитор мен видеоадаптердің типін білмегенде
пайдаланған ыңғайлы, мысалы:
A:=CetmaxX; А - X осінің ең үлкен мәнін меншіктейді
B:=GetmaxY;B - Y осінің ең үлкен мәнін меншіктейді

Бұдан басқа Getmax функциясын экран ортасының координаттарын анықтау
үшін де қолдануға болады, мысалы:
Xc:=GetmaxX Div 2; Yc:-GetmaxY Div 2; Putpixel(Xc, Yc, 5);
экранның қақ ортасынан нүкте шығару немесе:
Circle(GetmaxX Div 2, GetmaxY Div 2,30);
экранның қақ ортасынан шеңбер шығару
Текстік режимдегідей графиктік режимде де графиктік фигураларды бөлек
терезелер ішіне салуға болады. Терезе орнату үшін SETVIEWPORT процедурасы
қолданылады. Терезе орнатылғаннан кейін координаттар басы ретінде терезенің
сол жақ жоғарғы бұрышы(0,0) алынады, жазылуы:
SETVIEWPORT(X1, Y1,X2, Y2, Clip);
мұндағы: Х1.Ү1 - орнатылатын терезенің сол жақ жоғарғы бүрышының
координаттары; Х2.Ү2 - орнатылатын терезенің оң жақ төменгі бүрышының
координаттары;
Clip - салынатын графиктік объектінің терезенің сыртына шығатын
бөлігін экранда көрінуін анықтайтын бульдік шама. Егер Clip:=True болса,
онда ол бөлік көрінбей кесіліп қалады, егер Clip:=False болса - көрініп
тұрады.
Ағымдағы терезенің ішін тазалау үшін CLEARVIEWPORT процедурасы
қолданылады. Процедураның орындалу нәтижесіндетерезе ішіндегі
барлықобъектілер өшіріліп, курсор терезенің сол жақ жоғарғы бүрышына барып
орнапасады.
SETVIEWPORT процедурасының көмегімен орнатылған терезе тек қана
экранның SETBKCOLOR процедурасымен орнатылған түсімен шығады. Сондықтан ол
терезе көзге көрінбейді. Терезе көзге көріну үшін өлшемдері орнатылатын
тереземен бірдей іші экранның түсінен бөлек түспен боялған тіктөртбұрыш
шығарып алынады.
Орнатылған терезе параметрлерінің мәндерін текстік режимге шығып
GETVIEWSETTING процедурасынының көмегімен алуға болады,
Графикалық режимнен шығу үшін параметрсіз CLOSEGRAPH проиедурасы
қолданылады. Бұл процедураның орындалу нәтижесінде компьютердің жадынан
орнатылған графиктік режим драйверлері тазаланып, экранның графиктік режим
орнатылар алдындағы жұмыс режимі қайта орнайды.
Кей жағдайлардатекстік режимнен графиктік режимге, одан қайтадан
текстік режимге бірнеше рет өтетін программалар құру керек болады. Ол үшін
экранда орнатылған графиктік және текстік режимдерді қалыпқа келтіретін
SETGRAPHMODE және параметрсіз RESTORECRTMODE процедуралары қолданылады,
мысалға:
Графиктік режимнен текстік режимге өтіп, одан қайтадан графиктік
режимге өтіп жумыс жасау.
PROGRAM Gr1;
USES
Graph, Crt;
VAR
d1,d2:Integer;
V:Viewporttype;
BEGIN
d1:=Detect;
Initgraph(d1,d2,'');
Setbkcolor(9);
Setcolor(S);
Outtextxy(200,250, 'Graph Rejim');
ReadLn;
Restorecrtmode;
Textbackground(2);
Clrscr;
Gotoxy(Lo(WindMax) Div2,Hi(WindMax) Div2);
Textcolor(5); Writeln('Text Rejim');
Readln;
Setgraphmode(d2);
Setbkcolor(2);
Circle(GetmaxX Div 2, GetmaxY Div 2,150);
Line( 100, GetmaxY Div 2, 500, GetmaxY Div 2);
LinefGetmaxX Div 2, 50, GetmaxXDiv2, 450);
Readln;
Closegraph
END.

1.2. Графиктік фигуралар салу процедуралары

Графиктік фигуралардың түсін орнату үшін SETCOLOR процедурасы
қолданылады, процедураның жазылуы:
SETCOLOR(C);
мұндағы: С - палитрадағы түс коды 0-ден 15-ге дейін өзгереді(түс
кодтарының шкаласы алдыңғы тарауда берілген). Бұл процедураның орындалу
нәтижесінде графиктік фигуралар С номерлі түске боялып шығады.
Бұл процедурамен орнатылған түс кодының мәнін анықтау үшін GETCOLOR
процедурасы қолданылады.
Палитрадағы ең үлкен түстің коды GETMAXCOLOR процедурасымен анықталады.
Палитра түстерінің барлық мәндерін GETDEFAULTPALETTE процедурасы арқылы
анықтауға болады. Бір мезгілде палитрадағы түс кодтарын өзгерту керек
болса, онда SETPALLETE процедурасын қолдану арқылы бірнеше түстердің,
SETALLPALLETE процедурасымен палитрадағы барлық түстердің орналасуын
өзгертіп жаңа палитра алуға болады.
Палитрадағы немесе жаңадан жасалған палитрадағы түстердің орналасуы
мен олардың санын GETPALETTE және GETPALbiIESIZEL. Нүкте салу үшін PUTPIXEL
процедурасы қолданылады, жазылуы:
PUTPIXEL(X,Y,C);
Бұл процедураның орындалу нәтижесінде экранның координаттары X және Ү
болатын позициясына С нөмірлі түспен нүкте шығарады.
Салынған нүктенің түсін GETPIXEL функциясымен анықтауға болады,
жазылуы:
C:=GETPIXEL(X, Y); немесе WRITELN(GETPIXEL(X, Y));
Бұл функцияның орындалу нәтижесінде координаттары X және Ү болатын
нүктенің түсі анықталады. ,
Түзу салу үшін LINETO және LINEREL процедуралары да қолданылады. Түзу
салу процедураларының жазылуы:
1)LINE(X1, Y1,X2, Y2);
Бұл процедураның орындалу нәтижесінде экранға төбелерінің
координаттары Х1,Ү1,Х2,Ү2 болатын түзу салып шығарады.
LINETO(X,Y,);
Бұл процедураның орындалу нәтижесінде экранға курсор түрған жерден
бастап координаттары Х,Ү болатын нүктеге дейін түзу салып шығарады.
LINEREL(X1,Y1);
Бұл процедураның орындалу нәтижесінде экранға курсор тұрған жерден
бастап координаттары курсор түрған жердің сәйкес координаттарына Х1-мен Ү1-
ді қосқандағы шамаға тең болатын нүктеге дейін түзу салып шығарады.
Түзулерді әртүрлі стильдерде шығару үшін SETLINESTYLE процедурасы
қолданылады, жазылуы:
SETLINESTYLE(L, P, T);
мұндағы: L – түзу стильдері:
L=0 - түзу үздіксіз, L=1 - нүктелерден қүралады,
L-2 - нүктелер мен сызықшадан турады,
L=3 - штрихтерден қуралады,
L=4 - түзу стилін пайдаланушының өзі анықгайды.
Р - түзу үлгісі, егер түзу стильдері стандартты болса Р=0, түзу стилін
пайдаланушының өзі берсе Р=4 деп кабылданады.
Т - түзудің қалыңцығы, егер түзу қалыңцығы қалыпты болса, онда 7=7, ал түзу
калындығы жуан болса Т=3деп кзбылданады.
SETWRITEMODE(M) процедурасының көмегімен экранда бір-бірімен
қиылысатын түзулердің байланысы орнатылады. Егер М параметрі 0-ге тең
болса, онда түзулердің қиылысқан жерлері экранға кәдімгі режимде шығып
көрініп түрады. Егер М параметрі 1-ге тең болса, түзулердің қиылысқан
жерлері көрінбей түрады.
Экранда салынған түзу стилі параметрлерінің мәндерін GETLINESETTINGS
процедурасының көмегімен текстік режимде шығарып алуға болады.
Тік төртбұрыш шығару үшін RECTANGLE процедурасы қолданылады, жазылуы:
RECTANGLE(X1, Y1,X2, Ү2);
мұндағы: Х1,Ү1,Х2,Ү2 - тік төртбурыштың бүрыштарының координаттары.
Бұл процедураның орындалу нәтижесінде экранға сол жақ жоғарғы бұрышының
координаттары Х1,Ү1 болатын, ал оң жақтөменгі бүрышы Х2.Ү2 болатын тік
төртбүрыш шығады. Бұл процедураның көмегімен сапынған тік төртбүрыштың
ішінің түсі экранның фонының түсімен бірдей шығады. Мысалы төмендегі
программада биіктіктері кездейсоқ сандар шығаратын функция көмегімен
өзгеріп түратын әртүрлі 12 тік төртбұрыш шығады, егер екінші параметр
орнына жыл айларында түскен жауын-шашын мөлшерлерінен тұратын массив болса,
онда экранда жыл бойына түскен жауын-шашын диаграммасын алуға болады:
Жауын-шашын диаграммасын шығару:
PROGRAM Gr61;
USES
Graph;
CONST
A:Array[ 1..12]Of lnteger=(205, 178, 315, 180, 65, 54, 28, 15,
53, 132, 240, 105);
VAR
k,i,d1,d2:lnteger;
BEGIN
d1:=Detect;
Initgraph(d1,d2,' ');
Setbkcolor(1);
Setcolor(5);
K:=1; Forl:=1 To 12 Do
Begin
K:=K+49;
Rectangle(K-20,450-A[l],K+30,450);
End;
Readln;
Closegraph
END.

Экранда боялған тік төртбүрыш салу үшін BAR процедурасы қолданылады,
жазылуы:
BAR(X1,Y1,X2,Y2);
Бұл процедураның орындалу нәтижесінде экранға сол жақ жоғарғы
бұрышының координаттары Х1.Ү1 болатын, ал оң жақ төменгі бұрышы Х2,Ү2
болатын, алдында орнатылған фигураны бояумен толтыру стиліндегі
параметрлермен боялған тік төртбүрыш шығады. Егер процедураның алдында
толтыру стильдері орнатылмаса, онда тік төртбүрыш экранға ақ түспен шығады.
Фигуралардың ішін бояумен толтыру стилі SETFILLSTYLE поцедурасымен
орнатылады, жазылуы:
SETFILLSTYLE(N, C);
мұндағы: С - түс коды;
N - толтыру типі(өрнегі):
N=0 - фонның түсімен толық толтырылады,
N=1 - көрсетілген С түсімен толықтолтырылады,
N=2 - сызықшалармен толтырылады,
N=3 - көлбеу сызықтармен толтырылады,
N=4 - жуан көлбеу сызықтармен толтырылады,
N=5 - жуан кері көлбеу сызықтарментолтырылады,
N=6 - кері көлбеу сызықтармен толтырылады,
N=7 - + символдарымен толтырылады,
N=8 - х символдарымен толтырылады,
N=9 - тік бүрышты торлармен толтырылады,
N=10 - аралары алшақ орнапасқан нүктелермен толтырылады,
N=11 - аралары жиі орналасқан нүктелермен толтырылады,
N = 12 болған жағдайда суреттің өрнектерін пайдаланушының өзі
SETFILLPATTERN процедурасының көмегімен орнатады, жазылуы:
SETFILLPATTERN(X,C);
мұндағы: С - түс коды,
X - Fillpatterntype-типті сурет өрнектерін орнататын шама, 8x8
элементтерден туратын матрица түрінде беріледі. Х-ке 8 байт орны беріледі,
әр бит матрицадағы пикселдерді "жандырып" немесе "өшіріп" тұрады. Х шамасы
8 байттан тұратын массив ретінде беріледі:
TYPE
Fillpatterntype=Array[1 ..8] Of Byte;
VAR
X:Fillpatterntype;
Пайдаланушылар орнатқан толтыру стильдері параметрлерін GETFILLPATTERN
процедурасымен анықтауға болады, жазылуы:
GETFILLPATTERN(I);
мұндағы: I - элементтері орнатылған стиль параметрлерінен тұратын
Fillpatterntype-типті массив. Массив элементтерін графиктік режимнен шығып,
экранға цикл арқылы шығаруға болады.
Үш өлшемді боялған тік төртбүрыш(немесе параплелепипед) салу үшін
BAR3D процедурасы қолданылады, жазылуы:
BAR3D(X1, Y1,X2, Y2,D, T);
мұндағы:Х1, Ү1 - тіктөртбурыштыңсолжақжоғарғыбурышын ың координат-тары, Х2,
Ү2 - тік төртбурыштың оң жак, төменгі бұрышының координа ттары, D өлшемді
контур тереңдігін көрсететін шама, ішке қарай кіріп түратын нүктелер санын
білдіреді. Т - бульдік шама, егер Т:=Тгие болса, онда шығатын
параллелепипедтің төбесі көрініп тұрады, егер T:=False болса, онда
көрінбейді.
Rectangle процедурасымен салынған тік төрбүрыштардың немесе кез-
келген басқа да шектеулі фигуралардың ішін FLOODFILL процедурасымен бояуға
болады, процедураның жазылуы:
FLOODFILL(X,Y,C);
мұндағы: Х,Ү- шектелген фигураныңішінде жататын кез-келген
нүктеніңкоординаттары, егер нүкте фигураның сыртында жатса, онда фигураның
сырты боялады, егер ... жалғасы

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