96
Bu erda CASE (tanlash) -xizmatchi so‗z, OF (dan), S - selektor, Mi – operatorlar
belgilari, Ai -operatorlar (i=1 dan n gacha).
CASE operatori tarmoqlanish jarayonini berilgan bir
necha operatordan birini
tanlash yo‗li bilan amalga oshiradi. Tanlash operatorida barcha operatorlar, shu
jumladan bajarilishi uchun tanlangan operator ham aniq ravishda keltiriladi (berilgan
operatorlar ketma-ketligi chegaralangan).
Bajarilishi kerak bo‗lgan operator yoki operatorlar
ketma-ketligi operator
selektorining qiymatiga ko‗ra aniqlanadi. Operator selektori sifatida haqiqiy
bo‗lmagan, skalyar ko‗rinishdagi har qanday ifoda yoki o‗zgaruvchi
ishlatilishi
mumkin.
Operatorning ishlashida uning tarkibidagi har bir operator tanlash belgisi deb
ataluvchi belgi bilan ta'minlanadi. Bu belgi operatorning
bajarilishi uchun zarur
bo‗lgan selektorning maxsus qiymatini qabul qiladigan selektorning tavsifiga mos
konstantadir. Operator bir necha mavjud qiymatlar bilan ishlashi uchun, unda tanlash
belgilari ro‗yxati keltirilishi kerak.
Tanlash operatoridagi belgili operatorlar oddiy belgiga ham ega bo‗lishlari
mumkin. Bu holda oldin tanlash belgilari, so‗ngra oddiy belgilar yoziladi.
Shuni
ham inobatga olish lozimki, tanlash operatoriga faqat CASE xizmatchi
so‗z
orqali kirish mumkin, ya'ni tanlash operatoridan tashqaridagi o‗tish operatori
orqali bu operatorga murojaat qilish mumkin emas.
Tanlash operatorining bajarilishi uning tarkibidagi operatorlar ketma-ketligidagi
bitta operatorning bajarilishiga olib keladi. Shuning uchun
ularning biridan biriga
GOTO operatori yordamida o‗tish xato demakdir.
Shartli o‗tish operatorining quyidagi
IF B THEN Al ELSE A2
ko‗rinishi tanlash operatorining quyidagi ko‗rinishiga ekvivalentdir:
CASE B OF
TRUE: A1;
FALSE:A2;
97
END;
qisqa ko‗rinishdagi shartli o‗tish operatorining IF B THEN A ko‗rinishi tanlash
operatorining quyidagi ko‗rinishga ekvivalentdir:
CASE B OF
TRUE: A;
FALSE
END;
Misol:
CASE T OF
'*','/': R:=l;
'+','-': R:=2
End;
Bu operatorning bajarilishi natijasida, agar T-belgili o‗zgaruvchi "+" yoki "-"
belgi qiymatlarni qabul qilsa, R o‗zgaruvchi 2 qiymatni, agar T o‗zgaruvchi "*" yoki
"/" belgini qabul qilsa, R o‗zgaruvchi 1 qiymatni qabul qiladi.