- •1.1 Алгоритмдік тілдің операторларын класқа бөлу
- •1.2 Меншіктеу операторы
- •1.3 Бос оператор
- •1.4 Сандық мәліметтерді енгізу операторы.
- •1.4.2 Символдық мәліметтерді енгізу операторы.
- •1.5 Мәліметтерді шығару операторы.
- •1.6 Таңдау операторы
- •1.7. Тармақталу операторы
- •1.7.2. Шартты операторлар
- •1.8 Қайталану операторлары.
- •1.8.1. Цикл әзір
- •1.8.2. Цикл дейін.
- •1.8.3. Параметрлік қайталау.
- •Қорытынды
1.4.2 Символдық мәліметтерді енгізу операторы.
Символдық деректерді пернетақтадан енгізу READ (READLN) операторы
арқылы жүргізіледі, оларды енгізудің төмендегідей ерекшеліктері бар.
1. Бос орын таңбасы - '_' Паскаль тілінде символ орнына жүретіндіктен,
символдық айнымалылардың мәндері (символдар) бос орынсыз жазылады.
2. Бір айнымалыға бір ғана символ меншіктеледі. Мысал ретінде төмендегі
программа үзіндісін қарастырайық:
......................
VAR А, В, С: CHAR;
.......................
READ (А, В, С);
.......................
Бұл мысалдағы READ операторы орындаларда пернетақтадан мынадай мәндер SNR енгізсек, онда айнымалылар өз орындарына сәйкес: A='S', B='N', C='R' мәндерін қабылдайды. Егер мәндерді S_N_R түрінде берсек, онда айнымалылар орындарына сәйкес A='S', В='_', С=' N' мәндерін қабылдайды да, соңғы екі таңба ешқайда енгізілмейді.
3. Символдық айнымалыларды енгізудің тағы бір ерекшелігі - тек Eпter
пернесі басылса да, оны READ операторы бос орын символы ретіндe қабылдайды. Мысалы, айнымалыларға: А=3, В=4, C='W', D='F' ,мәндерін меншіктеп, оны экранға шығару қажет болса, онда оған мынадай программа жазу керек:
VARA, В: INTEGER;
С, D: CНAR;
BEGIN
WRlTELN (' А, В, С, D мәндерін енгізіндер :');
READ (А, В);
READ (С, D);
WRlTELN (А, В, С, D);
END.
Бұл программа орындалу кезінде пернетақтадан мынадай мәндер енгізілген болса:
3
4
WF
онда А = 3, В = 4, С=' " D = 'W' болады, себебі 4 санынан соң басылған Enter пернесі бос символ ретінде меншіктеледі де, соңғы F символы ешқайда енгізілмейді. Программадағы айнымалылар мәнді дұрыс қабылдауы үшін екі оператордың арасына параметрсіз және бір енгізу операторын мына түрде жазу қажет:
READ (А, В);
READLN;
READ (С, D);
Осылай жазылған уш оператор А = 3, В = 4, С = ' W " D = 'Р' мәндерін дұрыс меншіктеуді қамтамасыз етеді. Символдарды енгізу операторының алдына міндетті турде READLN операторын қою қажет. Егер жоғарыдағы программа үзіндісін десимволдарды енгізу операторын (READ (С. D);) 1- орынға шығарсақ та, оның алдына READLN операторын қою қажет, яғни айтылған ерекшелікке байланысты жоғарыдағы жолдарды былай да жазуға болады:
READLN;
READ (С, D);
READ (А, В);
Программада сандық және символдық мән қабылдайтын айнымалылар үшін екі рет енгізу операторын жазудың да қажеті жоқ. Жоғарыдағы екі оператор орнына READ (А, В, С, D) операторын ғана жазуға болады. Егер READ (А, В, С, D) операторын орындауда айнымалыларға мәнді былай берсек:
45 31
KN
онда дисплей экранында 4531К көрінеді, демек А = 45, В = 31, С= ‘_’, D= 'К' болғаны, ал егер мәндер былай берілсе:
45 31 К N
Онда дисплейден 4531KN көрінеді, яғни осылай береді.
Readln операторы көмегімен пернетақтадан бір символ енгізіп оны экранның келесі қатарына қайта шығаруды орындайтын testread программасының мәтіні төменде келтірілген.
var сҺ: cҺar;
begin
writeln ('Символ енгізіндер: ');
writeln (сҺ,' символы енгізілді ');
write ('Enter пернесін басыңдар'); readln
end.
Егер осы программаның 'Символ енгізіндер:' деген хабарламасынан кейін бір символ пернесін басып, оны босатпасақ, онда сол басылған символ бейнесі экранға 127 рет шығады да, одан кейін тек тырсылдаған дыбыс қана естіледі. Бұл 127 символ сақтай алатын пернетақта буферінің енгізілген таңбалармен толып қалғанын көрсетеді.
Негізінде, перне басылғанда бірден екі код қалыптасады, оның алғашқысы символ коды, ал екіншісі - кеңейтілу немесе сканерлеу коды. Алфавиттік-цифрлық перне басылғанда, олардың символ коды пайдаланылады. Ал кеңейтілу коды басқару пернелері (Ctrl, SҺift, Caps Lock, , , , , F1, F2 т.б.) үшін өте маңызды. Бұлардың символ коды нөлге тең болып саналады да, программаларда олардың тек сканерлеу коды пайдаланылады. Скарнерлеу кодын пайдалану Турбо Паскаль программасының CRT модулінін Read Кеу функциясы арқылы жүзеге асырылады. Символ енгізу кезінде бұл Функция курсорды келесі орынға жылжытпай, ол орынға кез келген символ бейнесін шығара алады. Келесі testread2 программасы Read Кеу функциясын пайдаланып, кіші латын әріптерін бас әріптерге түрлендіреді.
Uses CRT;
Var сҺ: cҺar;
Begin
Writeln ('Латын алфавитінің кіші әріптерін енгізіңдер (z-программадан шығу). ');
Repeat
сҺ := Read Кеу;
write (Up Case( сҺ));
until сҺ ='z",
end.
Төмендегі (1-кесте) басқару пернелерің немесе олардың комбинацияларының
сканерлеу коды берілген.
1-Кесте
Басылған пернелер
|
Сканерлеу коды |
Басылған пернелер |
Сканерлеу коды
|
Ctrl+@Ctrl+3 SҺift+Tab Alt+ 1..Alt+= Alt+Q ..Alt+P Alt+A ..Alt+L Alt+Z ..Alt+M Alt+Enter Ноте Ctrl+Home Ctrl+PgUp
End
|
3 15 120..131 16..25 30..38 44..50 28 71 119 132 77 79 80 |
PgDn lns Del Fl ..FI0 SҺift+F 1..SҺift+F 10 Ctr1+Fl ..Ctrl+Fl0 Alt+F 1..Alt+F 10 Ctrl+PrintScreen PgUp 75 Ctrl+ Ctr1+End Ctrl+PgDn |
81 82 83 59..68 84..93 94 ..103 О 104..113 114 73 Ctrl+ 115 116 117 118
|
Төмендегі scan_codes программасы басылған пернелердың сканерлеу кодын
анықтауға арналған. Ол программамен жұмыс істеу барысында Сtгl + PrtSс (принтерге экрандағы мәліметті шығару) немесе Ctr1+Alt+Del (ДОС-ты· қайта жүктеу) пернелер комбинациясын басу керек емес, ал Ctr1+Break пернелерін басу программа жұмысын тоқтатады.
Uses CRT;
Var сҺ: char;
Begin
Writeln ('Программа символ коды мен сканерлеу кодын анықтайды');
Wrіtеln('Программа жұмысын тоқтату үшін Ctrl+Break пернелерін басыңдар');
repeat
wrіtеlп('Келесі перне: ');
сҺ: = Read Кеу;
writeln;
if cs <> #0 then
writeln ('Символдық перне. Огd (сҺ) = " Ord(ch))
else
begin
write (Басқару пернесі, символ коды: #0. ' );
сҺ : = Read Кеу;
writeln ('Сканерлеу коды: " Огd(сҺ));
end·,
until false;
end.
Бұл программа кейбір пернелерді басқанда, мысалы, F11 пернесін басқанда еш нәрсе істемейді. Оның символдық және сканерлеу коды болғанмен, Паскаль қолданатын DOS жүйесі компьютер пернелерінің кеңейтілмеген ескі нұcқaсын пайдаланатындықтан (онда F11 болмаған), программа осындай нәтиже береді.
4. Символдық және сандық мәндерді енгізгенде, көбінесе EOLN (еnd of linе - жол соңы) стандартты функциясын пайдалану қолайлы болады. Бұл Функция мәні "жолдың соңы болды " немесе "мәндер беріліп болды" дегенді білдіретін Enter пернесі басылғанда ғана ақиқат (TRUE) болады да,қалған жайғдайлардың барлығында жалған (FALSE) болады. Бұл Функция көбінесе циклдік операторларда пайдаланылады.
