O‘zgarmas
|
Son
|
Rang
|
Protseduralar
| Black |
0
|
qora
|
TextColor, TextBackGround
|
Blue
|
1
|
ko‘k
|
TextColor, TextBackGround
| Green |
2
|
yashil
|
TextColor, TextBackGround
|
Cyan
|
3
|
havorang
|
TextColor, TextBackGround
|
Red
|
4
|
qizil
|
TextColor, TextBackGround
|
Magenta
|
5
|
siyoxrang
|
TextColor, TextBackGround
|
Brown
|
6
|
jigarrang
|
TextColor, TextBackGround
|
LightGray
|
7
|
ochiq kulrang
|
TextColor, TextBackGround
|
DarkGray
|
8
|
to‘q kulrang
|
TextColor, TextBackGround
|
LightBlue
|
9
|
ochiq ko‘k
|
TextColor
|
LightGreen
|
10
|
ochiq yashil
|
TextColor
|
LightCyan
|
11
|
ochiq havorang
|
TextColor
|
LightRed
|
12
|
ochiq qizil
|
TextColor
|
LightMagenta
|
13
|
ochiq siyohrang
|
TextColor
|
Yellow
|
14
|
sariq
|
TextColor
|
White
|
15
|
oq
|
TextColor
|
Blink
|
128
|
pirpirash
|
TextColor
|
Sound(Hz:word) va NoSound protseduralari SHEHM dinamikasiga murojaat qilish imkonini beradi. Sound protsedurasi berilgan gers chastotasida tovushni hosil qiladi. Protsedura o‘z ishini tugatgandan keyin ham tovush to‘xtamaydi, uni faqat NoSound protsedurasi bilan to‘xtatiladi.
Delay(ms:word) chaqirilganda ms-millisekundlik programmaviy pauza ro‘y beradi. Mashinaning ishlash tezligiga qarab, bu pauza vaqti talab qilingan vaqtdan ozgina farq qilishi mumkin.
KeyPressed funksiyasi. Bu funksiya TRUE qiymat qaytaradi, agar klaviaturadan kiritish buferida hech bo‘lmaganda bitta belgi bo‘lsa, aks holda, ya’ni bo‘sh bo‘lsa FALSE.
Ma’lumki, programma ish boshlaganda klaviatura buferi bo‘sh bo‘ladi va klaviatura tugmasi bosilishi bilan mos qiymat buferga kelib tushadi. Buferni Read va Readln protseduralari tozalaydi.
KeyPressed funksiyasi yordamida klaviatura holatini aniqlash mumkin: Masalan quyidagi shart operatori orqali klaviatura bosilganiga bog‘liq ravishda qandaydir amal qilish zarur bo‘lganda ishlatilishi mumkin:
if KeyPressed then Amal;
Readkey funksiyasi. Bu funksiya ham klaviatura holatini so‘raydi, lekin uning KeyPressed funksiyasidan farqi shundaki, u klaviatura buferi bilan ishlaydi. Funksiya har doim bitta char turidagi belgini qaytaradi. Funksiya ishlashida ikkita muhim xususiyat bor:
funksiya qabul qilgan qiymat (belgi) ekranda ko‘rinmaydi;
Readkey ishlashi bufer holatiga bog‘liq. Agar buferda qiymat bo‘lsa, Readkey undagi birinchi belgini qaytaradi (boshqalarning oldin kiritilgan belgi) va uni buferdan o‘chiradi. Agar bufer bo‘sh bo‘lsa Readkey programma ishini klaviaturadan belgi kodini hosil qiluvchi tugma bosilguncha to‘xtatadi.
Programmani ishlash ssenariysini yaratishda Readkey dan unumli foydalanish mumkin:
While KeyPressed do ch:qReadkey (buferni tozalash) yoki repeat until KeyPressed (klaviatura bosilishini kutish)
Readkey funksiyasidan grafika natijalarini ekranda ma’lum bir muddatda ko‘rib turish uchun (ekran matn rejimiga o‘tib ketmasligi uchun) foydalanish mumkin.
Yuqoridagi protsedura va funksiyalarni turli tovushlarni hosil qilishda ishlatish quyidagi programmada keltirilgan:
Uses CRT; {tovush hosil qilishga misol}
Var
Procedure Tovush (x,y:byte; s:string; ms:word);
Const
Hz=50; {tovush chastotasi}
Var i:byte; {tsikl parametri}
Begin
Dec (x); {qiymatni surish}
For i=1 to Length(s) do begin
Sound(Hz); Delay(ms); {birinchi tovush}
GotoXY(x+i,y); Write(S[i]); {simvolni chop etish}
Sound(2*Hz); Delay(ms); {ikkinchi tovush}
Nosound {tovushni to‘xtatish}
End
End;
BEGIN
ClrScr;
Tovush(20, 10, ’0123456789abcdeedcba9876543210’, 40);
Readln;
END.
Do'stlaringiz bilan baham: |