Перейти на главную страницу
І. Кіріспе
2.1. Жолдық қатарлар
2.2. Жолдық процедуралар мен фукнциялар
2.3. Жолдық қатарларға программа құру
2.4. Жолдық қатарлар мен амалдар орындау
Қорытынды
Пайдаланылған әдебиеттер
Экранда символдардың шығуы мен түзілуі монитордың видеоадаптерінің жұмысына байланысты болады. Компьютерде орнатылған видеоадаптердің көмегімен символдарды текстік немесе графиктік режимде шығаруға болады.
Көптеген программаларда текстік мәліметтерді Read, Readln, Write, Writeln процедураларының көмегімен енгізу-шығару программаның көрнекі және ыңғайлы болып шығуына жеткіліксіз болып табылады. Сондықтан Turbo Pascal-да текстік режимде жұмыс істеу үшін қолданылатын арнаулы функциялар мен процедуралар қарастырылған. Олар арнаулы CRT (Cathode Ray Tube display – электронды-сәулелі дисплей) библиотекалық модулі құрамында жазылған. Оларды текстік режимде жұмыс істеуге пайдалану үшін программаның басында CRT модулін USES қызметші сөзінде жазып кету керек. Сонда ғана программалауда CRT модулінің барлық процедуралаы мен функцияларын пайдалануға болады.
Текстік режим кодтық кестенің барлық символдарын экранға шығару үшін қолданылады. Текстік режимнің ең кішкене өлшем бірлігі символ болып табылады. Символдар бірнеше пиксельдерден (нүкте) құралады. Экранда символдар мен терезелердің әртүрлі шығу режимдерін компьютерде орнатылған адаптерлердің типтері анықтайды. Қазіргі шығып жатқан видеоадаптерлердің барлығы да текстік режимде жұмыс істеуге мүмкіндік береді.
Текстік режимді орнату үшін TEXTMODE процедурасы қолданылады. Программалау барысында соңғы орнатылған режим нөмірін LASTMODE функциясымен білуге болады, мысалы:
Текстік режим нөмірлері мәндері монитор мен адаптерлер типтеріне байланысты қойылады (мысалы Х-ке 0, 1, 2, 3, 7 немесе Bw40, Co40, Bw80, Co80, Mono, Font8x8 тұрақтыларын беруге болады).
Экрандағы көріністі өшіріп тазалау үшін CLSSCR процедурасы қолданылады. Бұл процедура экранды немесе ағымдағы терезені тазалап, курсорды экранның сол жақ жоғарғы жағына апарып қояды.
Курсор тұрған жерден бастап қатардың аяғына дейінгі символдарды өшіру CLREOL процедурасы қолданылады.
Экранда курсорды керекті жерге апарып қою үшін 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 логикалық функциялары қолданылады.
TEXTBACKGROUND(M);
TEXTCOLOR(M);
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;
NORMVIDEO;
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 терезенің сол жақ ең жоғарғы нүктесіндегі мәнін меншіктейді.
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
Дыбыстық сигналды белгілі бір уақыт бойы ұстап тұру үшін программа орындалуы уақытша тежейтін DELAY процедурасы қолданылады, жазылуы:
мұндағы: Т – программаның орындалуы тежеу уақыты (милисекунд)
Жоғарыда берілген үш процедураның көмегімен текстік режимде әртүрлі дыбыстық эффектілер жасауға болады (сиреналар, құстар әні, музыкалық шығармалар, т.б.), мысалы төмендегі программаның фрагментінің орындалу нәтижесінде кез-келген клавишаны басқанша кезек-кезек жеті нотаның дыбысы шығып тұрады:
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.
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(30000) 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(30000) 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(10000); (*қозғалысты баяцлату*)
End; Readln;
Clrscr; END.
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.
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;
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;
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.
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;
End;
BEGIN Clrscr; Syrena; END.
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. Ендіру файлын жасау’);
Gotoxy(20,6); Writeln(‘2. Ендіру файлын көру’);
Gotoxy(20,7); Wrietln(‘3. Шығару файлын жасау’);
Gotoxy(20,8); Writeln(‘4. Шығару файлын көру’);
Gotoxy(20,9); Writeln(‘5. Программадан шығу’);
Gotoxy(1,12);
Write(‘Керек режимнің цифрын жазып ENTER клавишын бас:’);
Readln; END.
Қорытыңды
Сонымен қорыта келе біз экранда символдардың шығуы мен түзілуі монитордың видеоадаптерінің жұмысына байланысты болатынын білдік. Енді компьютерде орнатылған видеоадаптердің көмегімен символдарды текстік немесе графиктік режимде шығаруға болады.
Turbo Pascal-да текстік режимде жұмыс істеу үшін қолданылатын арнаулы функциялар мен процедуралар қарастырылған екенін білімез. Соның ішіндегі CRT (Cathode Ray Tube display) – электронды-сәулелі дисплей екен. Ал текстік режимді орнату үшін TEXTMODE процедурасы қолданылады. Текстік режимнің көмегімен біз символдардың экранға шығатын түсін орната аламыз, оны TEXTBACKGROUND және TEXTCOLOR процедуралары арқылы жазамыз. Бұл процедаралардың өзінің түс кодтары бар. CRT модулінің құрамынан тағы бір процедура білдік, ол белгілі бір жиілікпен дыбыс шығару үшін қолданылатын SOUND процедурасы, сол орнатылған дыбысты өшіру үшін параметрсіз NOSOUND процедурасы қолданылады.
Текстік режимнің көмегімен DELAY процедурасы циклдік операторларының көмегімен текстік объектілерді жылжытуға болады екен. Текстік объект циклдің бастапқы координаттарымен DELAY процедурасының көмегімен кішкене уақыт экранда көрініп тұрады да, сонан соң CLRSCR процедурасымен өшіріледі.
Қорыта келе біз CRT модулінің процедуралары мен функцияларының көмегімен көпетеген есептер, программалар құра алады екенбіз.
Пайдаланылған әдебиеттер
Текст берілген. «р» бастапқы үш сөздің құрамында қанша рет кездесетінін анықтаудың программасын құру керек.
uses crt;
var tec:array[1..5] of string[30]; l,j,i,k:integer;
begin
writeln('Vvedite tekst:');
for i:=1 to 5 do read (tec[i]);
k:=0; l:=length(tec[i]);
for i:=1 to 3 do begin
if pos ('p',tec[i])<>0
then k:=k+1;
end;
readln;
Экранда қозғалатын кез келген үшбұрышты бейнелеу программасы
uses graph, crt;
var k,d1,d2:integer;
p:array[1..4] of pointtype;
begin
clrscr; d1:=detect; initgraph(d1,d2,'');
repeat for k:=1 to 300 do begin sound(3*k);
p[1].x:=k+100; p[1].y:=200;
p[2].x:=k+300; p[2].y:=200;
p[3].x:=k+150; p[3].y:=300; p[4]:=p[1];
delay(3000); cleardevice; drawpoly(4,p);
Экранда символдардың шығуы мен түзілуі монитордың видеоадаптерінің жұмысына байланысты болады. Компьютерде орнатылған видеоадаптердің көмегімен символдарды текстік немесе графиктік
01 10 2014
1 стр.
12 10 2014
1 стр.
Бұл қорытынды әр елдегi халықтың тұрмыс деңгейi (уровень) мен әлеуметтiк қорғалуын зерттеу негiзiнде шығарылды. Мұнда адамның өмiр сүру ұзақтығы, денсаулық жағдайы, халықтың мәдени
23 09 2014
1 стр.
Процедураға бағытталған тілдер және объектілерге бағытталған программалау туралы түсініктер. Компьютерді программалық қамтамасыз етудің жалпы түсінігі. Операциялардың жалпы құрамы.
01 10 2014
1 стр.
Тестте әр дұрыс жауапқа 1 балл қойылады, дұрыс емес жауапқа – 0 балл. Тестті орындау уақыты – 45 минут
15 10 2014
1 стр.
Комитет өз қызметiн Қазақстан Республикасының Конституциясы мен заңдарына, Қазақстан Республикасының Президентi мен Үкiметiнiң актiлерiне, осы Ережеге, сондай-ақ өзге де нормативтi
11 10 2014
1 стр.
Балалардың әнді дұрыс орындау дағдысын қалыптастыру, музыканы өнер ретінде таныту
25 12 2014
1 стр.
Дістемелік нұсқауда тапсырмалар жиынтығы мен оны орындау және қорғау туралы мәлімет, құжаттардың үлгілері берілген
17 12 2014
1 стр.