Algoritimlash va dasturlash tillari



Download 163,5 Kb.
bet9/12
Sana18.03.2022
Hajmi163,5 Kb.
#500328
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
algaritmdan kurs ishi

Klaviaturani boshkarish


Skanirlash kodi, begili tugmachalar, boshkaruv tugmachalari, kengaytirilgan kod, ReadKey, KeyPressed, surish tugmachalari,

Standart klaviaturalarda uch tipdagi tugmachalar mavjud:


belgili (xarflar, sonlar);
boshkaruv (funksional tugmachalar, kursorni surish, kushish, yukotish va bokalar);
surish Ctrl, Alt, NumLock, CapsLock va boshkalar.
Biror -bir tugmacha bosilganda klaviatura mikroprotsessori shaxsiy kompyuterlar standartiga mos kodni tanlaydi va bu kod Turbo Pascal sistemasida skanerlash kodiga aylantiriladi. Skanerlash kodini analiz qilish mumkin va u klaviaturani boshqarish algoritmining asosi xisoblanadi.
Belgili tugmachalar bosilganda bittagina qiymatni qaytaradi va bu qiymat oddiy kod deb aytiladi.
Boshkarish klaishalari bosilganda ikkita qiymatni qaytaradi , ulardan birinchisi 0 (mana shu boshqarish klavishvsining xususiyatiga kiradi), ikinchisi esa- tugmacha bosilgandagi kattalik. Maxsus tugmachalarning qaytarish kodlarini kengaytirilgan deb qabul qilinadi. Klaviaturani boshqarish CRT modulining maxsus ReadKey va KeyPressed funksiyalari yordamida bajariladi..
ReadKey funksiyasi belgilarni klaviaturadan o’chib, Char tipidagi qiymatlarni qaytaradi.
KeyPressed. funksiyasi biron tugmacha bosilganda True ni, aks xolda False ni kaytaradi.
Belgili va boshqarish klavishlarini skanerlash kodlarini quyidagi misolda ko’rib chiqamiz.

PROGRAM DemoScanCode;


USES Crt;
CONST
Null = #0;
Esc = #27;
F1 = #59;
F10 = #68;
InsKey = #82;
VAR
ExtendKey: boolean;
Ch: char;
FUNCTION GetKey: char;
{ funksiya klavish bosilishini kutib turadi }
VAR
Ch: char;
BEGIN
ExtendKey:= False;
Ch:= ReadKey;
IF Ch = Null THEN BEGIN
ExtendKey:= True;
Ch:= ReadKey
END;
GetKey:= Ch
END; { GetKey }
BEGIN { DemoScanCode }
ClrScr;
REPEAT
Ch := GetKey;
IF NOT ExtendKey THEN
Writeln('Kodli belgi tugmachasi bosilgan ', byte(Ch))
ELSE
CASE Ch OF
F1..F10 : Writeln(' Funksional klavish bosilgan');
InsKey : Writeln(' bosilgan')
ELSE Writeln('Kengaytirilgan kod #00+', byte(Ch));
END; { case }
UNTIL (Ch <> Esc);
END. { DemoScanCode }



Endi siljish tugmachasini qanday ishlashini ko’rib chiqamiz. Misol tariqasida SIF (NumLock) klavishini ko’rib chiqamiz.
Agar baytlarni 0 dan 7 gacha bitlar yigindisi deb qaralsa, NumLock ga $0000:$0417 absalyut adresli baytning 5- biti to’g’ri keladi. NumLock klavishining ishlash dasturi quyidagicha:

PROGRAM DemoNumLock;
USES Crt;
CONST
Esc = #27;
VAR
Ch : char;
ShiftByte: byte absolute $0000:$0417;
BEGIN
REPEAT
IF KeyPressed THEN
Ch:= ReadKey;
IF ShiftByte AND $20 <> 0 THEN
Write(' NumLock tugmachasi bosilgan');
UNTIL Ch <> Esc;
END. { DemoNumLock }


Download 163,5 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish