Turbo Pascal-дағы жолдық қатарлар


Turbo Pascal-дағы жолдық қатарлар

Жоспары

І. Кіріспе

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

2. 1. Жолдық қатарлар

2. 2. Жолдық процедуралар мен фукнциялар

2. 3. Жолдық қатарларға программа құру

2. 4. Жолдық қатарлар мен амалдар орындау

Қорытынды

Пайдаланылған әдебиеттер

Кіріспе

Текстік режимде жұмыс

Экранда символдардың шығуы мен түзілуі монитордың видеоадаптерінің жұмысына байланысты болады. Компьютерде орнатылған видеоадаптердің көмегімен символдарды текстік немесе графиктік режимде шығаруға болады.

Көптеген программаларда текстік мәліметтерді Read, Readln, Write, Writeln процедураларының көмегімен енгізу-шығару программаның көрнекі және ыңғайлы болып шығуына жеткіліксіз болып табылады. Сондықтан Turbo Pascal-да текстік режимде жұмыс істеу үшін қолданылатын арнаулы функциялар мен процедуралар қарастырылған. Олар арнаулы CRT (Cathode Ray Tube display - электронды-сәулелі дисплей) библиотекалық модулі құрамында жазылған. Оларды текстік режимде жұмыс істеуге пайдалану үшін программаның басында CRT модулін USES қызметші сөзінде жазып кету керек. Сонда ғана программалауда CRT модулінің барлық процедуралаы мен функцияларын пайдалануға болады.

Текстік режим кодтық кестенің барлық символдарын экранға шығару үшін қолданылады. Текстік режимнің ең кішкене өлшем бірлігі символ болып табылады. Символдар бірнеше пиксельдерден (нүкте) құралады. Экранда символдар мен терезелердің әртүрлі шығу режимдерін компьютерде орнатылған адаптерлердің типтері анықтайды. Қазіргі шығып жатқан видеоадаптерлердің барлығы да текстік режимде жұмыс істеуге мүмкіндік береді.

2. 1. CRT модулінің процедуралары мен функциялары

Текстік режимді орнату үшін TEXTMODE процедурасы қолданылады. Программалау барысында соңғы орнатылған режим нөмірін LASTMODE функциясымен білуге болады, мысалы:

TEXTMODE(X) ; // Х - режим нөмірі

WRITE(LASTMODE) ; // экранға режим нөмірін шығару

Текстік режим нөмірлері мәндері монитор мен адаптерлер типтеріне байланысты қойылады (мысалы Х-ке 0, 1, 2, 3, 7 немесе Bw40, Co40, Bw80, Co80, Mono, Font8x8 тұрақтыларын беруге болады) .

Экрандағы көріністі өшіріп тазалау үшін CLSSCR процедурасы қолданылады. Бұл процедура экранды немесе ағымдағы терезені тазалап, курсорды экранның сол жақ жоғарғы жағына апарып қояды.

Курсор тұрған жерден бастап қатардың аяғына дейінгі символдарды өшіру CLREOL процедурасы қолданылады.

DELLINE процедурасы курсор тұрған қатардың барлығын өшіреді, нәтижесінде кейінгі қатарлар бір позиция төмен жылжиды.

INSLINE процедурасы курсор тұрған жерге бір бос қатар қояды, нәтижесінде кейінгі қатарлар бір позиция төмен жылжиды.

Экранда курсорды керекті жерге апарып қою үшін GOTOXY процедурасы қолданылады. Бұл процедура курсорды координаттары өзінде көрсетілген Х және Y мәндері болатын орынға апарып қояды. Координаттарға тек бүтін сандар ғана беруге болады. Текстік режимде координаттардың басы ретінде экранның сол жақ жоғарғы бұрышын X=1 және Y=1 деп алады. Х-тің мәндері солдан оңға қарай, Y-тің мәндері жоғарыдан төмен қарай өседі. X және Y ең үлкен мәндері монитордың адаптерінің жұмыс режиміне байланысты болады. Мысалы 80х25/CGA, EGA, CO80 адаптерлері үшін текстік режимде Xmax=80; Ymax=25.

GOTOXY(10, 15) ;

// курсорды X=10, Y=15 позициясына апарып қояды.

Курсордың тұрған жерін анықтау үшін WHERE функциясы қолданылады, жазылуы:

Write(WHEREX, WHEREY) ;

// экранға курсор тұрған жердің координаттарының мәндері шығады

Сондай-ақ текстік режимде клавиатураның жұмысын басқаратын KEYPRESSED және READKEY логикалық функциялары қолданылады.

KEYPRESSED - егер клавиатураның кез-келген клавишы басылса, онда функицяның мәні «ақиқат» болады, мысалы төмендегі фрагментте цикл клавиатурадан кез-келген клавиш басылғанша орындалады:

USES Crt;

Begin Clrscr;

Repeat

Writeln (‘TEXT’) ;

Until Keypressed; END.

READKEY - егер клавиатурадан берілген символ клавишы басылса, онда функцияның мәні «ақиқат» болады, мысалы төмендегі фрагментте цикл клавиатурадан «g» символынан басқа символдар басылса қайталанып орындала береді, ал «g» символы басылған заматта тоқтайды:

USES Crt;

VAR N:Char;

Begin Clsscr; N:=‘g’;

Repeat

Writeln (‘TEXT’) ;

Until N=Readkey; END.

2. 2. TEXTBACKGROUND және TEXTCOLOR процедуралары TEXTBACKGROUND процедурасы көмегімен текстің, экранның немесе ағымдағы терезенің түстерін орнатуға болады, жазылуы:

TEXTBACKGROUND(M) ;

// экранға М нөмерлі түспен шығарады

М - 0(қара) -ден 7(ақсұр) -ге дейін өзгереді.

TEXTCOLOR процедурасының көмегімен символдардың экранға шығатын түсі орнатылады, программада жазылуы:

TEXTCOLOR(M) ;

// тексті М нөмерлі түспен шығарады,

М - 0(қара) -ден 15(ақ) -ге дейін өзгереді.

0 - Қара(Black), 1 - Көк(Blue),

2 - Жасыл(Green), 3 - Көгілдір(Cyan),

4 - Қызыл(Red), 5 - Күлгін(Magenta),

6 - Қоңыр(Brown), 7 - Ақсұр(LightGray),

8 - Қарасұр (DarkGray), 9 - Ашық көк(LightBlue),

10 - Ашық жасыл(LightGreen), 11 - Ашық көгілдір(LightCyan),

12 - Ашық қызыл(LightRed), 13 - Ашық күлгін(LightMagenta),

14 - Сары(Yellow) 15 - Ақ(White)

128 - Символдарды жыпылықтату(Blink) .

LOWVIDEO процедурасы экранға символдардың жарығын азайтып шығару режимін орнату үшін қолданылады, жазылуы:

LOWVIDEO;

Writeln(‘TEXT’) ;

// TEXT сөзі экранға ең төмегі жарық режимінде шығады

NORMVIDEO процедурасы символдардың қалыпты жағдайдағы жарық режимінде шығу режимін орнату үшін қолданылады, жазылуы:

NORMVIDEO;

Writeln(‘TEXT’) ;

// TEXT сөзі экранға қалыпты жағдайдағы жарық режимінде шығады

HIGHVIDEO процедурасы экранға символдардың жарығын көбейтіп шығару режимін орнату үшін қолданылады, жазылуы:

HIGHVIDEO;

Writeln(‘TEXT’) ;

// TEXT сөзі экранға ең жоғарғыжарық режимінде шығады

Текстік режимде кей жағдайларда бүкіл экран қажет болмай, бір кішкуене терезе шығарып алып, тек қана сол терезе аумағында жұмыс істеуге болады. Ол үшін экранға терезе шығаратын WINDOW процедурасы қолданылады. Бұл процедура орындалу нәтижесінде экранға өзінде берілген координаталар бойынша терезе шығарады, жазылу түрі:

WINDOW(X1, Y1, X2, Y2) ;

Процедура орындалу нәтижесінде экранға диагоналының сол жақ жоғары төбесінің координаттары X1, Y1 болатын, ал оң жақ төменгі төбесінің координаттары X2, Y2 болатын тік төртбұрыш шығарады, мысалы:

USES Crt;

VAR X:String;

Begin Textbackground(6) ;

WINDOW(5, 8, 25, 21) ; Clrscr; Readln(X) ; END.

WINDOW процедурасы орындалысымен орнатылған терезе тазаланып, ол бүкіл экран секілді қарастырылып, курсор терезенің сол жақ жоғарғы позициясына барып орналасады. Әрі қарай енгізілген символдар оңға қарай шығарылады. Терезенің оң жақ шекарасына жеткеннен кейін курсор келесі қатарға өтеді. Ал курсор соңғы қатардың оң жақ шекарасына жеткенде текст мазмұны жоғарыға қарай бір орынға жылжиды да, курсор сол қатардың басына барып орналасады (текст айналып тұрады) . Кей жағдайларда бұл процедураның параметрлерінің мәндері ретінде төмендегі стандартты функцияларды қолдануға болады:

X:=Lo(WindMin) +1;

Х терезенің сол жақ ең жоғарғы нүктесінде мәнін меншіктейді.

Y:=Hi(WindMin) +1;

Y терезенің сол жақ ең жоғарғы нүктесіндегі мәнін меншіктейді.

X:=Lo(WindMax) +1;

Х терезенің оң жақ ең төменгі нүктесіндегі мәнін меншіктейді.

Y:=Hi(WindMax) +1;

Y терезенің оң жақ ең төменгі нүктесіндегі мәнін меншіктейді.

Мысалы төмендегі процедураның орындалу нәтижесінде екінші шығатын терезе параметрлері X1=15, Y1=2, X2=30, Y2=12 мәндерін қабылдайды.

USES Crt;

VAR X:String;

Begin Clrscr; Textbackground(2) ;

WINDOW(15, 2, 60, 24) ;

Clrscr; Textbackground(5) ;

Window(Lo(WindMin) +1, Hi(WindMin) +1, (Lo(WindMax) +1) Div2, (Hi(WindMax) +1) Div2) ;

Clrscr;

Readln(X) ; END.

2. 3. CRT модулінің құрамына дыбыс шығару процедуралары

CRT модулінің құрамына дыбыс шығару үшін қолданылатын келесі процедуралар кіреді:

Белгілі бір жиілікпен дыбыс шығару үшін SOUND процедурасы қолданылады, жазылуы:

SOUND(X) ;

мұндағы: Х - жиілікті анықтайтын бүтін шама.

Нота дыбыстарының жиіліктері

Октавалар: Үлкен Кіші Бірінші Екінші

До 131 262 523 1047

Ре 147 294 587 1174

Ми 165 330 659 1318

Фа 175 349 698 1396

Соль 196 392 785 1568

Ля 220 440 880 1760

Си 247 494 988 1975

Орнатылған дыбысты өшіру үшін параметрсіз NOSOUND процедурасы қолданылады, жазылуы:

NOSOUND;

Дыбыстық сигналды белгілі бір уақыт бойы ұстап тұру үшін программа орындалуы уақытша тежейтін DELAY процедурасы қолданылады, жазылуы:

DELAY(T) ;

мұндағы: Т - программаның орындалуы тежеу уақыты (милисекунд)

Жоғарыда берілген үш процедураның көмегімен текстік режимде әртүрлі дыбыстық эффектілер жасауға болады (сиреналар, құстар әні, музыкалық шығармалар, т. б. ), мысалы төмендегі программаның фрагментінің орындалу нәтижесінде кез-келген клавишаны басқанша кезек-кезек жеті нотаның дыбысы шығып тұрады:

PROGRAM Text3;

USES Crt;

CONST A:Array[1. . 7] Of Integer=(523, 587, 659, 785, 880, 988) ;

VAR K:Byte;

Begin Repeat

For K:=1 To 7 Do Begin

Sound(A[K] ) ; Delay(800) ;

Nosound; Delay(300) End;

Until Keypressed;

END.

Сондай-ақ DELAY процедурасы циклдік операторлардың көмегімен текстік объектілерді жылжытуда қолданылады. Ол үшін алдымен текстік объект циклдің бастапқы координаттарымен DELAY процедурасының көмегімен кішкене уақыт экранда көрініп тұрады да CLRSCR процедурасымен өшіріледі. Циклдің келесі мәнінде жаңа координаттарымен ол тағы да жаңа орыннан кішкене уақыт көрініп тұрады да қайтадан өшіріледі, цикл аяқталғанша осындай процестер жүріп сырт көзге текстік объект жылжып бара жатқандай болып көрінеді.

2. 4. Текстік режимде программалау мысалдары

177. Экранның әртүрлі режимдерінде текст шығару.

PROGRAM Text1;

USES Crt;

BEGIN Clrscr; TextMode(Bw40) ;

Write(‘NN=’, LastMode) ;

Writeln(‘Rejim’) ; Readln;

TextMode(Co40) ;

Write(‘NN=’, LastMode) ;

Writeln(‘Rejim’) ; Readln;

TextMode(Bw80) ; Write(‘NN=’, LastMode) ;

Writeln(‘Rejim’) ; Readln;

TextMode(Co80) ; Write(‘NN=’, LastMode) ;

Writeln(‘Rejim’) ; Readln END.

178. Әртүрлі жарық режимдерінде текст шығару.

PROGRAM Text2;

USES Crt;

BEGIN Clrscr;

Writeln(‘Text’) ;

HighVideo; Writeln(‘Text’) ;

NormVideo; Writeln(‘Text’) ;

LowVideo; Writeln(‘Text’) ;

Readln END.

179. Тексті алдымен саты бойымен жазып шығарып, соңынан символдар алып тастап шығару.

PROGRAM Text3;

USES Crt;

VAR K, X:Byte;

BEGIN Clrscr; X:=1;

For K:=1 To 25 Do Begin

Gotoxy(X, K) ;

Write(‘TEXT’) ; Inc(X, 3) ; Delay(1000) ; End;

Readln; X:=6;

For K:=1 To 25 Do Begin

Gotoxy(X, K) ; ClrEol; Inc(X, 3) ; Delay(1000) ; End;

Readln END.

180. Экранның фоны мен тексті әртүрлі етіп шығару.

PROGRAM Text4;

USES Crt;

VAR K:Integer;

BEGIN For K:=0 To 7 Do

Begin Textbackground(K) ; Clrscr;

Textcolor(K+1) ;

Gotoxy((Lo(WindMax) +1) Div2, (Hi(WindMax) +1) Div2) ;

Writeln(‘Text’) ;

Delay(3) End;

Readln END.

181. Бір-бірінің ішінде орналасқан әртүрлі түсті 5 төртбұрыш шығару.

PROGRAM Text5;

USES Crt;

VAR K, X, Y:Integer;

BEGIN X:=0; Y:=0;

For K:=1 To 5 Do Begin

Textbaclground(K) ;

Window(K+X, K+Y, Lo(WindMax) +1-X, Hi(WindMax) +1-Y) ;

Clrscr; Inc(X, 3) ; Inc(Y, 1) ;

Delay(3) End;

Readln END.

182. Төртбұрыштың ішіне текст жазып, дыбыспен жылжыту.

PROGRAM Text6;

USES Crt;

VAR K, X, Y:Integer;

BEGIN Textbackground(2) ; Clrscr;

X:=5; Y:=10;

Delay(1000) ; (*Үзіліс жасау*)

For K:=1 To 30 Do Begin

X:=X+2; Textbackground(9) ;

Window(X, Y, X+18, Y+7) ; (*терезе шығару*)

Clrscr; Textcolor(9) ;

Writeln(‘NO PROBLEM’) ; (*жазу шығару*)

Sound(1000) ; (*дыбысты қосу*)

Delay(2000) ; (*дыбысты ұстап тұру*)

Nosound; (*дыбысты өшіру*)

Textbackground(2) ;

Clrscr; (*экранды өшіру*)

Delay(1) ; (*қозғалысты баяцлату*)

End; Readln;

Clrscr; END.

183. Тексті саты бойымен жазып шығарып жылжыту

PROGRAM Text7;

USES Crt;

VAR K, X, Y:Integer;

BEGIN Textbackground(2) ;

Clrscr; Delay(1000) ; (*Үзіліс жасау*)

For K:=1 To 10 Do Begin

Textcolor(K+2) ; (*1 жазу К+2=3-ші түспен шығады*)

Gotoxy(6*K, K*2) ; (*текстің шығатын позициясы*)

Writeln(‘Text’) ; (*жазу шығару*)

Delay(1500) ; End;

Readln; END.

184. Бинго ойыны программасын құру.

PROGRAM Text8;

USES Crt;

LABEL 1, 2;

VAR K, I:Integer;

X:Array[1. . 15] Of Integer;

BEGIN Clrscr; Textbackground(0) ;

Gotoxy(18, 3) ;

Writeln(‘Ойынды бастау үшін ENTER бас’) ;

Readln;

Randomize;

For K:=1 To 15 Do Begin

Textcolor(K) ; Gotoxy(15, K+5) ;

Write(K, ‘шардың нөмірі -’) ;

1:X[K] :=Random(90) +1; Delay(65000) ;

If K=1 Then Goto 2 Else

For I:=1 To K+1 Do If X[K] =X[I] Then Goto 1;

2:Writeln(X[K] ) ; End;

Gotoxy (20, 25) ;

Writeln(‘Ойынның соңы, келесі жексенбіге дейін’) ;

Repeat Until Keypressed; END.

185. Сөтке бойы өртке қарсы сигнал беретін қондырғының іске қосылуын программалау.

PROGRAM Text9;

USES Crt;

VAR T:Array[1. . 24*60] Of Integer; K:Integer;

PROCEDURE Signal;

Begin Writeln (‘Өрт қауіпі туды!!!’) ;

Repeat Sound(500) ; Delay(1000) ; Nosound;

Sound(700) ; Delay(1000) ; Nosound;

Delay(1000) Until Keypressed; End;

PROCEDURE Olshem;

Begin For K:=1 To 24*60 Do T[K] :=Random(100) +1;

For K:=1 To 24*60 Do If T[K] >70 Then Signal;

Readln END.

186. Жедел жәрдем машинасының сиренасының дыбысын шығару.

PROGRAM Text10;

USES Crt;

VAR K:Integer;

PROCEDURE Syrena;

Begin Repeat K:=500;

While K<=2000 Do Begin Sound(K) ; Delay(300) ; Nosound; K:=K+100

End;

While K>=500 Do Begin Sound(K) ; Delay(300) ; Nosound; K:=K-100

End;

Until Keypressed; End;

BEGIN Clrscr; Syrena; END.

187. Су тасқыны программасының алғашқы көрінісін шығару.

PROGRAM Text11;

USES Crt;

BEGIN 1:Textbackground(2) ; Clrscr; {сыртқы фон түсін орнату}

Textbackgorund(3) ; Window(5, 5, 76, 20) ; Clrscr; {ішкі терезе орнату}

Textcolor(5) ; {символдар түсін орнату}

Gotoxy(20, 3) ; Writeln(‘Жұмыс режимін таңда:’) ;

Gotoxy(20, 5) ; Writeln(‘1. Ендіру файлын жасау’) ;

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Туре тип атауы тип мәндері
Массивтер. Ашық типті жолдар
Turbo Paskal-да символдық ақпаратты өңдеу
Жолдық процедуралар мен фукнциялар
Turbo pascal тілінің негізгі элементтері туралы
Алгоритм түсінігі
Турбо Паскаль тілінде бағдарламаларды құрастырудың тәселдері
Turbo Pascal тілі туралы
Турбо Паскаль бағдарламысының тарихы
Емхана
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz