Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovoy_Original.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
109 Кб
Скачать
☆

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) болады. Бұл Функция көбінесе циклдік операторларда пайдаланылады.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]