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

МАЗМҰНЫ

КІРІСПЕ 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 пайда
болғанша,бұл программалық өнім жеті ... ... ... ... ... ... мен функцияларды графиктік режим орнату ... ... ... ... орындау қажет:
USES қызметші сөзінде GRAPH модулі жазылады:
USES Graph;
VAR
d1,d2:Integer;
BEGIN
dl:=Detect;
I ... d2, ... - ... режимді орнату процедурасы,
d1- графиктік режим драйверініңтипін,
d2 - видеоадаптердің жұмыс режимінің нөмірін анықтайтын тұрақтылар.
Бұл шамалар монитор мен видеадаптер типтеріне байланысты болады. ... ... ... ... ... Detect ... тұрақты
шамасы берілсе, онда InitGraph процедурасы автоматты түрде өзіне керекті
графиктік ... ... және ... мен ... ... ... графиктік жұмыс режимін анықтап алады. Апострофтардың ішінде
орналасқан үшінші параметр ... ... ... ... ... Егер ол Turbo Pascal ... ... Turbo. Ехе файлымен бірге
бір каталогта орналасатын болса, онда Graph.tpu ... ... ... бос екі ... ... ... Экранды басқаратын процедуралар мен функциялар.
Экранның фоны SETBKCOLОR процедурасының көмегімен ... ... С - түс коды 0-ден 15-ге ... өзгереді. Бұл процедураның орындалу
нәтижесінде экран С номерлі ... ... ... Бұл ... түс ... ... GETBKCOLOR процедурасының көмегімен анықтауға
болады.
Экрандағы барлық салынған графиктік объектілерді өшіріп тастау ... ... ... ... Бұл ... ... графиктік режимде орнатылған барлық параметрлер(фон түсі,
курсор орны, терезелер т.б.) күшін жойып, ... ... ... ... (0,0) ... ... сол жақ ... бұрышындағы нүктеге
апарылады.
Графикалық режимнің көзге көрінбейтін сілтеме- көрсеткіш курсоры
болады. ... ... үшін MOVETO және MQVEREL ... процедурасы курсорды координаттары өзінде көрсетілген орынға
апарып қояды, ... ... ... ... ... ... ... курсорды бұрынғы тұрған жерінен X және Ү осі
бойынша өзінде көрсетілген сәйкес шамаларға тең ... ... ... ... ... ... ... апарып қояды
Курсордың тұрған жерін анықтау үшін GET функциясы қолданылады, мысалы:
A:=CetX; //курсор түрган ... X ... ... анықтау
B:=GetY; //курсор түрған жердің Ү осіндегі координатын ... және Ү ... ... ... санын анықтау үшін GETMAX функциясы
қолданылады. Бүл функцияларды монитор мен видеоадаптердің ... ... ... ... //А - X осінің ең үлкен мәнін меншіктейді
B:=GetmaxY;//B - Y ... ең ... ... ... басқа Getmax функциясын экран ортасының координаттарын анықтау
үшін де қолдануға болады, мысалы:
Xc:=GetmaxX Div 2; Yc:-GetmaxY Div 2; ... Yc, ... қақ ... ... ... немесе:
Circle(GetmaxX Div 2, GetmaxY Div 2,30);
//экранның қақ ортасынан шеңбер шығару
Текстік режимдегідей ... ... де ... ... бөлек
терезелер ішіне салуға болады. Терезе орнату үшін SETVIEWPORT процедурасы
қолданылады. Терезе орнатылғаннан кейін координаттар басы ... ... жақ ... ... ... жазылуы:
SETVIEWPORT(X1, Y1,X2, Y2, Clip);
мұндағы: Х1.Ү1 - орнатылатын ... сол жақ ... ... Х2.Ү2 - ... ... оң жақ төменгі бүрышының
координаттары;
Clip - ... ... ... ... ... шығатын
бөлігін экранда көрінуін анықтайтын бульдік шама. Егер ... ... ол ... ... ... қалады, егер Clip:=False болса - ... ... ішін ... үшін ... ... ... ... нәтижесіндетерезе ішіндегі
барлықобъектілер өшіріліп, курсор терезенің сол жақ жоғарғы ... ... ... ... ... ... тек қана
экранның SETBKCOLOR процедурасымен орнатылған түсімен шығады. ... ... ... ... ... ... көріну үшін өлшемдері ... ... іші ... ... ... түспен боялған тіктөртбұрыш
шығарып алынады.
Орнатылған терезе ... ... ... ... шығып
GETVIEWSETTING процедурасынының көмегімен алуға болады,
Графикалық режимнен шығу үшін ... ... ... Бұл ... ... ... ... жадынан
орнатылған графиктік режим драйверлері тазаланып, экранның графиктік режим
орнатылар алдындағы жұмыс режимі қайта ... ... ... графиктік режимге, одан ... ... ... рет ... программалар құру керек болады. Ол үшін
экранда орнатылған графиктік және ... ... ... келтіретін
SETGRAPHMODE және параметрсіз RESTORECRTMODE процедуралары қолданылады,
мысалға:
Графиктік режимнен текстік ... ... одан ... ... өтіп ... ... 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 ... Div 2, 50, ... ... ... ... салу ... ... түсін орнату үшін SETCOLOR ... ... ... С - ... түс коды 0-ден 15-ге ... ... ... алдыңғы тарауда берілген). Бұл процедураның орындалу
нәтижесінде ... ... С ... түске боялып шығады.
Бұл процедурамен орнатылған түс кодының мәнін анықтау үшін GETCOLOR
процедурасы қолданылады.
Палитрадағы ең ... ... коды ... процедурасымен анықталады.
Палитра түстерінің барлық мәндерін GETDEFAULTPALETTE процедурасы арқылы
анықтауға болады. Бір ... ... түс ... өзгерту керек
болса, онда SETPALLETE процедурасын ... ... ... ... ... ... барлық түстердің орналасуын
өзгертіп жаңа палитра алуға болады.
Палитрадағы немесе жаңадан жасалған ... ... ... ... ... ... және ... Нүкте салу үшін PUTPIXEL
процедурасы қолданылады, жазылуы:
PUTPIXEL(X,Y,C);
Бұл процедураның орындалу нәтижесінде экранның координаттары X және Ү
болатын позициясына С ... ... ... шығарады.
Салынған нүктенің түсін GETPIXEL функциясымен анықтауға ... Y); ... ... ... функцияның орындалу нәтижесінде координаттары X және Ү болатын
нүктенің түсі анықталады. ,
Түзу салу үшін LINETO және LINEREL ... да ... ... ... жазылуы:
1)LINE(X1, Y1,X2, Y2);
Бұл процедураның орындалу ... ... ... ... ... түзу ... шығарады.
LINETO(X,Y,);
Бұл процедураның орындалу нәтижесінде экранға курсор түрған жерден
бастап координаттары Х,Ү болатын нүктеге ... түзу ... ... ... ... нәтижесінде экранға курсор тұрған ... ... ... ... ... ... координаттарына Х1-мен Ү1-
ді қосқандағы шамаға тең болатын нүктеге дейін түзу ... ... ... ... ... үшін ... ... жазылуы:
SETLINESTYLE(L, P, T);
мұндағы: L – түзу стильдері:
L=0 - түзу үздіксіз, L=1 - ... ... - ... мен сызықшадан турады,
L=3 - штрихтерден қуралады,
L=4 - түзу ... ... өзі ... - түзу ... егер түзу ... ... болса Р=0, түзу стилін
пайдаланушының өзі ... Р=4 деп ... - ... ... егер түзу қалыңцығы қалыпты болса, онда 7=7, ал түзу
калындығы жуан ... ... ... ... ... ... ... түзулердің байланысы орнатылады. Егер М ... 0-ге ... онда ... ... ... ... кәдімгі режимде шығып
көрініп түрады. Егер М параметрі 1-ге тең ... ... ... ... ... салынған түзу стилі параметрлерінің мәндерін GETLINESETTINGS
процедурасының көмегімен текстік режимде шығарып алуға болады.
Тік төртбұрыш шығару үшін RECTANGLE процедурасы қолданылады, ... Y1,X2, ... ... - тік ... ... ... ... орындалу нәтижесінде экранға сол жақ жоғарғы ... Х1,Ү1 ... ал оң ... бүрышы Х2.Ү2 болатын тік
төртбүрыш шығады. Бұл процедураның көмегімен сапынған тік ... түсі ... ... түсімен бірдей шығады. Мысалы ... ... ... ... шығаратын функция көмегімен
өзгеріп түратын әртүрлі 12 тік төртбұрыш шығады, егер ... ... жыл ... ... ... ... тұратын массив болса,
онда экранда жыл бойына түскен жауын-шашын диаграммасын алуға болады:
Жауын-шашын диаграммасын шығару:
PROGRAM Gr61;
USES
Graph;
CONST
A:Array[ 1..12]Of ... 178, 315, 180, 65, 54, 28, ... 132, 240, ... ... Forl:=1 To 12 ... ... тік төртбүрыш салу үшін BAR процедурасы ... ... ... ... ... сол жақ ... ... Х1.Ү1 болатын, ал оң жақ төменгі ... ... ... ... ... ... толтыру стиліндегі
параметрлермен боялған тік төртбүрыш шығады. Егер ... ... ... ... онда тік ... экранға ақ түспен шығады.
Фигуралардың ішін бояумен толтыру стилі SETFILLSTYLE поцедурасымен
орнатылады, жазылуы:
SETFILLSTYLE(N, C);
мұндағы: С - түс ... - ... ... - ... ... ... ... - көрсетілген С түсімен толықтолтырылады,
N=2 - сызықшалармен толтырылады,
N=3 - көлбеу сызықтармен ... - жуан ... ... ... - жуан кері ... ... - кері ... сызықтармен толтырылады,
N=7 - + символдарымен толтырылады,
N=8 - х символдарымен толтырылады,
N=9 - тік бүрышты торлармен толтырылады,
N=10 - аралары ... ... ... ... - ... жиі ... нүктелермен толтырылады,
N = 12 болған жағдайда суреттің өрнектерін пайдаланушының ... ... ... ... ... С - түс ... - ... сурет өрнектерін орнататын ... ... ... матрица түрінде беріледі. Х-ке 8 байт орны беріледі,
әр бит матрицадағы пикселдерді "жандырып" немесе "өшіріп" ... Х ... ... тұратын массив ретінде беріледі:
TYPE
Fillpatterntype=Array[1 ..8] Of Byte;
VAR
X:Fillpatterntype;
Пайдаланушылар орнатқан толтыру стильдері параметрлерін GETFILLPATTERN
процедурасымен анықтауға болады, жазылуы:
GETFILLPATTERN(I);
мұндағы: I - ... ... ... ... ... ... Массив элементтерін графиктік режимнен шығып,
экранға цикл арқылы шығаруға болады.
Үш өлшемді боялған тік төртбүрыш(немесе ... салу ... ... ... ... Y1,X2, Y2,D, ... Ү1 - ... координат-тары, Х2,
Ү2 - тік төртбурыштың оң жак, төменгі бұрышының координа ттары, D өлшемді
контур тереңдігін ... ... ішке ... ... ... ... санын
білдіреді. Т - бульдік шама, егер ... ... онда ... төбесі көрініп тұрады, егер T:=False болса, онда
көрінбейді.
Rectangle процедурасымен ... тік ... ... ... ... да ... фигуралардың ішін FLOODFILL процедурасымен бояуға
болады, процедураның жазылуы:
FLOODFILL(X,Y,C);
мұндағы: Х,Ү- ... ... ... кез-келген
нүктеніңкоординаттары, егер нүкте фигураның сыртында жатса, онда ... ... егер ... ... ... онда бояусыртқа шығып
экранның барлық ашық жері боялады. С - түс коды.
Көпбұрыштар салу үшін DRAWPOLY ... ал іші ... ... үшін FILLPOLY ... ... Бұл ... ... бірдей шамалар болады, олардыңжазылуы:
DRAWPOLY(N,P); FILLPOLY(N,P);
мұндағы:
N - көпбүрыштың қабырғаларының қиылысусанын білдіретін
бүтін шама, Р - көпбүрыштың бүрыштарының координаттарын ... ... ... ... бүтін сандардан тұратын массив ретінде қарастырса да
болады).
Соңғы салынған доғаның ... білу үшін ... ... жазылуы:
GETARCCOORDS(A);
мұндағы: A - соңғы салынған доғаға орнатқан параметрлер мәндерінен тұратын
стандартты ArcCoordsType - ... ... ... ... ... салу үшін ELLIPSE ... қолданылады,
жазылуы:
ELLIPSE(X, Y,A, B, Rx, Ry);
мұндағы: Х,Ү - эллипс центрініңкоординаттары, А,В - ... және ... Rx.Ry – ... Х осі және Ү осі бойынша радиустары.
Боялған эллипсті ... ... Setcolor ... ... беріп, FILLELLIPSE процедурасын қолданып салады, жазылуы:
FILLELLIPSE(X, Y, Rx, Ry);
мұндағы: Х,Ү - эллипс центрінің ... Rx,Ry - ... ... ... радиустары.
Шеңбердің боялған секторын салу үшін PIESLICE процедурасы қолданылады,
жазылуы:
PIESLICE(X, Y,A, B, R);
мұндағы:
Х,Ү- шеңбер центрінің координаттары,
А,В – сектордың бастапқы және соңғы ...... ... ... секторын салу үшін SECTOR процедурасы ... Y,A, B, Rx, ... Ү - ... центрінің координаттары,
А,В - сектордың бастапқы және соңғы бұрыштары,
Rx, Ry - эллипстіңХосі және Үосі бойынша радиустары.
Секторлар іші ... ... ... Setfillpattern
процедураларында орнатылған стильдермен толтырылып боялады.
1.3. Графиктік режимде текст шығару процедуралары.
Графиктік режимде текст ... үшін OUTTEXT және ... ... OUTTEXT ... ... курсор тұрған жерден
бастап шығарады. Сондықтан бұл процедураны қолданғанда ... ... ... ... ... ... кету ... Көп жағдайларда
бұл процедураны қолданған ыңғайсыз болғандықтан OUTTEXTXY процедурасы
қолданылады, процедураның жазылуы:
ОиТТЕХГХҮ(Х, Ү, ... Х,Ү - ... ... ... ... координаттары.
Graph модулінде сандық шамаларды шығару процедуралары ... ... ... ... олар Str ... ... ... айнымапыларға айнапдырып алынады. Сонан соң ол айнымалы
OUTTEXTXY процедурасындағы ... ... ... ... ... текспен + амалының көмегімен біріктіріліп ... ... ... ... ... ... ... Gr10;
USES
Graph;
VAR
d1,d2,X: Integer;
Y:Real;
Z:String;
BEGIN
d1:=Detect;
InitGraphfdl, d2, ");
Setbkcolor(2);
X:=150;
Str(X,Z);
Outtextxy( 100,100, 'X= l+Z);
Y:=231.25;
Str(Y:4:2,Z);
Outtextxy(100,110,Z);
ReadLn;
CloseGraph;
END.
Экранға текстерді әртүрлі стандартты және пайдаланушының өзі орнататын
шрифтермен де шығаруға ... ол үшін ... ... ... D, С);
Мұндағы: F- таңцалған шрифт түрі(0 - биттік, 1 - штрихтық, 2 - кіші, 3 ... 4 ... D - ... бағыты(0 - горизонтальді, 1
– вертикальді бағыт), С - символдар өлшемі(1 - ... 2 - екі ... 10-ға ... ... ... өзі SETUSERCHARSIZE процедурасының
көмегімен орнатса да болады, жазылуы:
SETUSERCHARSIZE(MX, DX, MY, DY);
мұндағы: MX, DX, - ... ... ... ... параметрлер,
MX/DX қатынасының қалыпты жағдайдағы шрифтің еніне көбейтіндісі жаңа
шрифтіңенініңшамасынбереді. MY, DY - ... ... ... ... MY/DY ... ... ... шрифтің биіктігіне
көбейтіндісі жаңа шрифтің ... ... ... Бұл ... ... ... және енін TEXTWIDTH фунщияларын қолданып есептеуге
болады, мысалға:
X:=Textwidth(T);
Y:=Textheight(T));
Бір қатарда жазылған ... ... ... ... ... ... ... V);
мұндағы:
Н - символдарды горизонтальді бағытта түзеу:
- символды солға қарай жылжыту,
- орталықгандыру,
- оңға қарай жылжыту.
V- символдарды вертикальді бағытта түзеу:
- символды төменге ... ... ... ... ... жылжыту.
PROGRAM Gr11;
USES Graph;
VAR
d1,d2: Integer;
BEGIN
d1Ж=Detect; I
nitGraph(d 1, d2, ");
Setbkcolor(2);
Settextstyle(1,0,10);
Outtextxy(100,100, 'TEXT');
Settextstyle(3,1,5);
Outtextxy(150,250,'TEXT');
ReadLn;
CloseGraph;
END.
PROGRAM Gr111;
USES
Graph;
VAR
d1,d2: Integer;
BEGIN
d1:=Detect;
InitGraph(d1,d2,'');
Setbkcolor(2);
Settextstyle(1,0,1);
Setusercharsize(2,1,2,1);
Outtextxy(100, 100, 'TEXT');
Setusercharsize(1,2,1,2);
Outtextxy( 100,200, 'TEXT');
Setusercharsize( 14,3,22,5);
Outtextxy(100,300, 'TEXT');
ReadLn;
CloseGraph;
END.
1.4. Графиктік режимде ... ... ... орындалу барысында ... ... ... ... ... ... ... программалардың дүрыс құрылғандығын тексеру үшін
арнаулы GRAPHRESULT және GRAPHERRORMSG функциялары қолданылады. GRAPHRESULT
функциясы ... ... ... ... ... орындалуының
дүрыстығын тексеріп, жіберілген қате кодын анықтайды. Бұл функцияның
орындалуы файлдардағы IORESULT функциясына ... ... ... амал ... ... онда ... ... 0-
ді меншіктейді, әйтпесе ол жіберілген қате кодтарының нөмірін қабылдайды.
If GraphResult = 0 ... ... ... қате ... ... ... программада жіберілген қате
туралы текстік сипаттама шығаруға болады. Бүл функцияныңтипі жолдық қатар,
ал ... ... ... ... мәні ... ... ... фрагментті программада қате кеткен кезде бірден оның қате ... ... ... болады:
If GraphResult = O Then
Begin
...
графиктік операторлар
...
End
Else
Writeln('мынадай қате:', GraphErrorMsg(GraphResult));
Қателер коды мен сипаттамалары туралы мәлімет.
GRAPHRESULT ... GrOk ... ... ... ... режим ашылған жоқ)
-2 GrNotDetected (драйвердің типі анықталмаған)
-3 ... ... ... ... ... (драйвердің типі сәйкес емес)
-5 GrNoLoadMem (драйвердің орналасуына жад жетпейді)
-6 GrNoScanMem ... ... ... орын жетпейді)
-7 GrNoFloodMem (бояуға жадтан орын жетпейді)
-8 GrFontNotFound (шрифт орнататын файл ... ... ... ... жад ... ... ... режим дүрыс емес)
-11 GrError (жалпы қате)
-12 GrIOError (енгізу-шығаруда қате жіберілген)
-13 GrlnvalidFont (шрифт ... ... ... ... ... ... ... берілмеген)
1.5. Фигураларды жылжыту.
Экранда фигуралардың жылжу эффектілері циклдік процестермен жүзеге
асырылады. Цикл денесінде бірінші фигураны бояу стильдері ... ... ... дене ... ... көрінетін орнының координаттарымен
шығарылады. Сонан соң фигураның экранда кішкене ... ... ... ... ... қолданылады. Одан кейін экрандағы барлық ... ... ... де цикл ... шығару процедурасының кемінде бір параметрі цикл параметрімен
байланысты болуы ... ... ... әр ... ... жаңа ... ... Ал циклдік программа толық орындалғанда фигура бір
орыннан кішкене уақыт ... ... ... ... циклдің келесі
мәнінде қайтадан жаңа орыннан ... ... ... ... ... әрі
қарай циклдің әр келесі мәндерінде дәл осындай процестер жүріп ... ... ... ... ... бара жатқан сияқты көрінеді.
Экранда тік төртбүрыш X осі бойымен жылжыту.
а):
PROGRAM Gr13;
USES
Graph, Crt;
VAR
d1,d2,K: Integer;
BEGIN
d1 := Detect;
ІnitGraph(d1, 62, "};
If Graph Result ... ... To 100 ... ... K< 100 ... Ү осі ... жылжыту:
PROGRAM Gr13;
USES
Graph, Crt;
VAR
d1,d2,K:Іnteger;
BEGIN
d1:=Detect;
InitGraph(d1, d2, ");
If Graph Result 0
Then
Halt(1);
For k:=1 To 100 ... ... K+50, 400, ... K< 100 ... ... ... (пикселдердің) жиынтығынан тұрады.
Ал символдарды ... ... ... Егер ... ... ... ғана ... жасалса, графиктік режимде әрбір нүктелермен жұмыс
жасауға болады. Мысалы текстік режимде символдар түсін өзгертуге ... ... ... әрбір нүктенің түсін немесе нүктелерден құралған
әртүрлі фигуралар мен текстердің түстерін әртүрлі қылып шығаруға ... ... ... ... ... мен оның ... ... Монитор кәдімгі телевизор ... ... ... ... ... 25 рет жоқ ... кетіп қайта құралады. Адамның
көзі мүндай кадрлардың тез ауыстырылып ... ... ... ... бір ... тұ0рғандай болып әсер етеді.
Графиктік режимде экранға бейнелер шығару үшін ... ... ... ... ... ... ... бойынша реттеліп
орналасатындықтан, бір қатардағы нүктелер X осі ... ... оңға ... деп, ал қатарлар - Ү осі бойынша жоғарыдан төмен қарай өзгереді
деп алынады. ... басы ... ... сол жақ ... бұрышынан
Х=0 және Ү=0 деп алынады. Ал барлық қатарлар(МахҮ) мен ондағы орналасқан
нүктелер ... ... типі мен оның ... ... ... ... графиктік режимде жұмыс істеуге арналған арнаулы
функциялар мен процедуралар GRAPH ... ... ... GRAPH ... 80-ге жуық графикалық функциялар мен процедуралардан
және оншақты ... ... ... ... ... А.Г., ... Н.П., Трифонова Г.Н. Введение в язык ... ... ... Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи ... М., ... ... Ахо А., ... Дж., ... Дж. ... и анализ вычислительных
алгоритмов. М., Мир, 1979.
4. Вирт Н. Алгоритмы и структуры данных. М., Мир, ... ... А., ... В. Программирование в среде Turbo Pascal
7.0. М., Диалог-Мифи, 1993.
6. Зуев Е.А. ... ... Turbo Pascal. М., ... и ... Зуев Е.А. ... на ... Турбо-Паскаль 6.0,7.0. М. Радио и
связь. Веста. 1993.
8. Йодан Э. Структурное программирование и ... ... ... ... ... А.М., ... Н.С. ... на IBM PC. М., АО "Книга и бизнес",
1992.
10. Кнут Д. ... ... на ЭВМ. М.: МИР, т.1, 1976; ... т.3, ... Листингі
program Menu;
uses crt,graph;
const
nmenu=7;{количество пунктов меню}
DO_=262;
RE=294;
MI=330;
FA=349;
SOL=392;
LIA=440;
S=494;
var
ch:char;
functionkey:boolean;
GD,GM:integer;
width,height,depth,text_color,back_color,select_text_color,
select_frame_color,frame_color,
select_back_color,screen_back_color,
wx,wy,dy,i,crm:integer;
strmenu:array[0..nmenu-1]of string[40];
{инициализируются значения переменных}
procedure Init;
begin
GD:=0;
Initgraph(GD,GM,'d:\bp\bin');
{устанавливаются цвета}
text_color:=Black;
back_color:=LightBlue;
select_text_color:=White;
select_frame_color:=Yellow;
frame_color:=White;
select_back_color:=LightRed;
screen_back_color:=LightGray;
dy:=20;{расстояние ... ... х ... ... ... у левого верхнего угла}
width:=250;{ширина меню}
height:=18;{высота "шпалы" меню}
depth:=10;{глубина "шпалы" меню} crm:=0; {номер строки меню,которая
будет подсвечена ... ... с ... ... ... на экран меню}
Procedure Draw_Menu;
var i,j,y:integer;
begin
SetFillStyle(1,screen_back_color);
Bar(0,0,GetMaxX,GetMaxY);
SetTextJustify(CenterText,CenterText);
for i:=0 to nmenu-1 do
if icrm then
begin
y:=wy+i*(height+dy);
SetColor(frame_color);
SetFillStyle(1,back_color);
Bar3D(wx,y,wx+width,y+height,depth,TopOn);
SetColor(text_color);
OutTextXY((wx+width) div 2,y+(height div 2),strmenu[i]);
end
else
begin
y:=wy+i*(height+dy);
SetColor(select_frame_color);
SetFillStyle(1,select_back_color);
Bar3D(wx,y,wx+width,y+height,depth,TopOn);
SetColor(select_text_color);
OutTextXY((wx+width) div 2,y+(height div ... ... ... ... ... номер
текущей (подсвеченной) строки,sel-новый номер текущей (подсвеченной)
строки}
Procedure New_Menu(old,sel:integer);
var
y:Integer;
begin
y:=wy+old*(height+dy);
SetColor(frame_color);
SetFillStyle(1,back_color);
Bar3D(wx,y,wx+width,y+height,depth,TopOn);
SetColor(text_color);
OutTextXY((wx+width) div 2,y+(height div 2),strmenu[old]);
y:=wy+sel*(height+dy);
SetColor(select_frame_color);
SetFillStyle(1,select_back_color);
Bar3D(wx,y,wx+width,y+height,depth,TopOn);
SetColor(select_text_color);
OutTextXY((wx+width) div 2,y+(height div 2),strmenu[sel]);
end;
{реакция на нажатие клавиши "стрелка вверх"}
Procedure ... ... ... then crm:=0;
New_Menu(old,crm);
end;
{процедура получает управление при нажатии клавиши Enter}
procedure Do_Select(crm:Integer);
begin
if crm=0 then
begin Sound(DO_); Delay(500); Nosound; ... crm=1 ... ... Delay(500); Nosound; end;
if crm=2 then
begin Sound(MI); Delay(500); Nosound; end;
if crm=3 then
begin Sound(Fa); Delay(500); Nosound; ... crm=4 ... ... ... Nosound; ... crm=5 then
begin Sound(LIA); Delay(500); Nosound; end;
if crm=6 then
begin Sound(S); Delay(500); Nosound; end;
end;
{эта процедура анализирует код ... ... и, в ... от ... ... процедурам Up, down}
Procedure DoCommand(Key:char;functionkey:boolean);
begin
{если была нажата клавиша "Enter"}
if(not functionkey) AND(upcase(key)=#13) then
Do_Select(crm);
if functionkey then{если клавиша специальная}
case upcase(key) of
#72:Up;{была нажата ... ... ... ... ... "стрелка вниз"}
end;
end;
begin
Init;
Draw_Menu;
repeat
ch:=readkey;
if ch=#0 then
begin
functionkey:=True;
ch:=readkey;
end
else functionkey:=False;
DoCommand(ch,functionkey);
until(upcase(ch)=#27);
end.

Пән: Информатика
Жұмыс түрі: Курстық жұмыс
Көлемі: 21 бет
Бұл жұмыстың бағасы: 500 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
Turbo pascal6 бет
Паскаль програмалау тілі туралы түсінік29 бет
Паскаль тілінде графикалық режиммен жұмыс20 бет
Турбо паскаль графикалық режимі30 бет
5 ферзі22 бет
Graph кітапханасын қолдану21 бет
Turbo Pascal жүйесіндегі графиканы ұйымдастыру технологиясы21 бет
Лабиринт16 бет
Турбо паскаль жүйесіндегі графика. Жұмыс істеп тұрған бағдаршамның бейнесін шығару15 бет
Турбо Паскальда графикалық процесстерді қолдану25 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь