2.20 Шартли операторлар.
Шартли оператор,шарт, жойлаштирилган операторлар.
Turbo Pascal тилида иккита шартли операторлар мавжуд : IF ва CASE. IF шартли оператори , операторларнинг бажарилиш жараенининг табиий холатини узгартирадиган энг куп воситалардан бири. У куйидаги куринишлардан бирига эга булиши мумкин:
IF <шарт> THEN <оператор1>
ELSE <оператор2>;
IF <шарт> THEN <оператор>;
Шарт - бу булев типдаги ифода . Биринчи холатда , агар ифода киймати хакикат булса , <оператор1>бажарилади , агар хакикат эмас булса <оператор2>бажарилади. Иккинчи холатда - агар ифода натижаси True булса , <оператор>бажарилади, агар False булса - IF операторидан кейинги оператор бажарилади. IF операторлари жойлаштирилган булиши мумкин .
Мисол :
Read(Ch);
IF Ch='N' THEN Parol:= True
ELSE Parol:= False;
Read(X); IF Parol = True THEN
IF X = 100 THEN Write('Пароль и код правильны.');
ELSE BEGIN
Writeln('Ошибка в коде.');
Halt(1)
END;
2.21Танлаш оператори .
Танлаш оператори,селектор,параметрлар руйхати,танлаш узгармаслари руйхати.
Танлаш оператори CASE мавжуд вариантлардан танлаш имкониятини беради. У хар бирига танлаш узгармаслари руйхати (руйхат битта узгармасдан иборат булиши мумкин) тегишли селектор деб номланган ифодадан ва параметрлар руйхатидан иборат.
Формати:
CASE <ифода-селектор> OF
<руйхат1>: <оператор1; >
<руйхат к2>: <оператор2; >
. . .
<руйхат N>: <операторN>
ELSE <оператор>
END;
Узгармаслар типи доим селектор типига тугри келиши керак . Селектор учун real ва string типлари ман этилган.
CASE оператори куйидагича ишлайди. Биринчи навбатда селектор- ифода киймати хисобланади, кейинги навбатда жорий селектор кийматига тенг булган узгармас катнашган оператор бажарилади. Агар хеч кайси узгармас селекторнинг жорий кийматига тенг булмаса ELSE сузидан кейинги оператор бажарилади. Агар ELSE сузи булмаса END сузидан кейинги оператор ишга тушади,яъни CASE чегарасидан кейинги оператор.
Селектор бутун сонли ( -32768..32767 диапазонида булган) булев, литер еки фойдаланувчи типига боглик булиши керак .
Узгармас кийматлар руйхати тасодифий киймат еки диапазондан иборат, улар бир-биридан вергул ердамида ажратилади. Диапазон чегаралари иккита бири-биридан ".." белгиси ердамида ажратилган узгарамас сонлар ердамида езилади. Узгармаслар типи селектор типига тугри келиши керак.
Куйида CASE операторининг типик езилиш тартиби курсатилган:
Интервал типли селектор :
CASE I OF
1..10: Writeln ('ракам ', I:4, ' диапазон 1 - 10');
11..20: Writeln ('ракам ', I:4, ' диапазон 11 - 20');
21..30: Writeln ('ракам ', I:4, ' диапазон 21 - 30')
ELSE Writeln ('число ', I:4, ' контроля чегарасидан ташкарида')
END;
Бутун сон типли селектор :
CASE I OF
1: Z := I + 10;
2: Z := I + 100;
3: Z := I + 1000
END;
Фойдаланувчи хисоб типли селектор:
VAR
Season: (Winter, Spring, Summer, Autumn);
BEGIN
... CASE Season OF
Winter: Writeln('Winter');
Spring: Writeln('Spring');
Summer: Writeln('Summer');
Autumn: Writeln('Autumn')
END;
END;
Do'stlaringiz bilan baham: |