0: m: = 0;
1: m: = -1;
2: m: = 1
end.
2. Case sum of
'=' : k: = 1;
'*', '+', '/', '-' : ;
'!' : k: = 2;
':', ';' : k: = 3
end.
3. Case kun of
dush, sesh, chor, pay, jum: writeln('иш куни');
shan, yaksh: writeln('дам олиш куни')
end.
Вариант танлаш операторининг тана =исмига кириш фа=ат case ор=али амалга оширилади.
Энди шартли операторни, вариант танлаш оператори ор=али ифодасини кыриб чи=айлик:
|
+уйидаги шартли ва вариант танлаш операторлари бир-бирига мос келади
|
1.
|
if B then S1 else S2
|
ва Case B of
true: S1;
false: S2;
end.
|
|
+уйидаги чала шартли ва вариант танлаш операторлари бир-бирига мос келади
|
2.
|
if B then S
|
ва Case B of
true: S;
false:
end.
|
Вариант танлаш операторларидан саналма типлар =ийматларини кыришга =улай щолда чоп этиш учун фойдаланиш мумкин. Буни =уйидаги мисол устида кыриб чи=амиз:
type
hafta=(Du,Se,Cho,Pa,Jy,Sha,Jak);
var
kun:hafta;
begin
kun:=Du;
case kun of
Du,Se,Cho,Pa,Ju: writeln(‘Иш куни’);
Sha,Jak:writeln(‘Дам олиш куни’);
end;
for kun:=Du to Jak do
begin
case kun of
Du: writeln(‘Душанба’);
Se: writeln(‘Сешанба’);
Cho:writeln(‘Чоршанба’);
Pa: writeln(‘Пайшанба’);
Ju: writeln(‘Жума’);
Sha:writeln(‘Шанба’);
Jak:writeln(‘Якшанба’);
end ;
end;
end.
Саналма типли =ийматларни киритиш, анча =ийин масала щисобланиб, бу ишни ташкил =илиш учун ты\ридан-ты\ри вариант танлаш операторидан фойдаланиш мумкин эмас. Маълумотларни киритишда асосан =аторли (String) типлар имкониятларидан фойдаланилади.
3. Чекланган типлар
Фараз =илайлик, "n" ызгарувчиси программада =айсидир ойнинг бирор кунини ифодаловчи бутун сон былсин. Бу ызгарувчини integer типи билан эълон =илсак, "n"га ихтиёрий бутун сонни ызлаштириш мумкин. Лекин, ечилаётган масаланинг мощиятига кыра "n"нинг фа=ат [1; 31] орали=даги =ийматларигина маънога эга холос. Ызгарувчининг бош=а =ийматга эга былиши унинг хато щисобланаётганлигини ёки программага берилган маълумотларнинг хатолигини англатади. Шунга ыхшаш, дастурчи программани тузиш давомида маълум бир ызгарувчилар =ийматларининг ызгариш орали=лари ща=ида маълумотга эга былади. Бундай маълумотларнинг программада кырсатиб =ыйилиши, программа ишининг ты\ри бажарилаётганлиги устидан назорат =илиб туриш имкониятини яратади.
Шундай чеклашларни амалга ошириш учун, Паскал тилида чекланган типлар киритилган. Щар бир шундай тип олдиндан маълум былган типларга чеклашлар киритиш ор=али ани=ланади.
Чекланган типлар =уйидагича ани=ланади:
<чекланган тип>::=<ызгармас1>..<ызгармас2>
бу ерда <ызгармас1> ва <ызгармас2>лар чекланган тип киритилаётган, олдиндан ани=ланган типнинг ызгармасларидир, щамда <ызгармас1> < <ызгармас2> шарти бажарилиши керак.
Чекланган типларга доир мисоллар:
1..20 (integer типидаги чекланма);
dush..jum (саналма типли чекланма);
'A'..'Z' (char типидаги чекланма).
Ю=орида айтганимиздек, чекланма олдиндан ани=ланган типга нисбатан ани=ланади. Масалан, (dush, sesh, chor, pay, jum, shan, yаksh) саналма типини ани=ламасдан туриб dush..jum чекланган типини киритиш мумкин эмас.
Чекланма тип щам бош=а типлар каби, янги тип ани=лаш былимида ёки ызгарувчиларнинг типларини эълон =илиш былимида ани=ланиши мумкин.
Чекланган типларни эълон =илишга доир былган мисоллардан яна кыриб чи=айлик:
type
Hafta = (dush, sesh, chor, pay, jum, shan, yаksh);
Figura = (piyoda, ot, fil, ferz, shoh);
Engil_Figura = piyoda..fil;
Ish_Kunlari = dush..jum;
Indeks = 10..20;
Do'stlaringiz bilan baham: |