9-маъруза: +ийматларнинг скаляр типлари.
Режа:
Саналма типлар;
Вариант танлаш оператори;
Чекланган типлар.
1. Саналма типлар
Шу пайтгача биз =ийматларнинг стандарт-скаляр типлари устида сыз олиб бордик ва улардан программалашда фойдаландик. Бу типлар Паскал тилининг ызида ани=ланган типлар эди. Лекин, Паскал тили программа тузувчи ызи учун =улай былган янги типлар киритиш имкониятини беради. Шундай янги типлардан бири сифатида чекланган ва саналма типларни кырсатиш мумкин.
Тилнинг стандарт типларига биз "бутун сон"лар, "ща=и=ий сон"лар, "белги"лар ва "манти=ий =иймат"ларни киритган эдик. Лекин, амалда турли хил типдаги =ийматлар билан ишлашга ты\ри келади. Масалан, ранг тушунчаси =изил, =ора, о=, сари=, кулранг ва щ. к.ларни ыз ичига олади, ёки йил ойлари тушунчаси январ, феврал, ..., декабр каби 12 та ойни ыз ичига олади. Бундай =ийматли типларни сонлар ор=али ифодалаб олса щам былади, лекин бу белгилаб олиш уларнинг мощиятини йы=отиб, тушунишга =ийин щолни щосил =илади. Масалан:
if k = 7 then
программа =аторини ы=иб, гапни нима ща=ида кетаётганилигини дабдурустдан англаш =ийин. Эщтимол, гап бу ерда 7 - ой ща=идадир, балки "k" ызгарувчини 7 бутун сони билан текширилаётгандир. Шундай =илиб, "7" сони остида нима яширинганини билиш жуда =ийин. Лекин, программанинг бу =атори
if k = июл then
былса, гап йилнинг июл ойи ща=ида кетаётганлигини осонгина англаш мумкин.
Ю=оридаги каби тушунмовчиликларни бартараф =илиш, программани ы=ишга =улайлигини ошириш учун =ийматлар типларининг саналма типи киритилган.
Стандарт типлар ичида бу типга мисол =илиб boolean (манти=ий) типини кырсатиш мумкин: boolean = (false, true).
Саналма =иймат типини =уйидагича ани=ланади:
<саналма типи>::=(<исм>,<исм>,...) ёки<саналма типи>::=(<исм> {,<исм>})
бу ерда кичик =авс ичидаги ызаро вергул билан ажратилган <исм>лар ани=ланган типнинг ызгармаслари щисобланади, уларнинг =авс ичига олиб ёзилган бирикмаси эса, шу типнинг =ийматлар тыплами щисобланади. Саналма тип =ийматлари =атъий нолдан бошлаб номерланган.
Масалан, (душанба, сешанба, чоршанба, пайшанба, жума, шанба, якшанба) саналма типи 7 та щаддан иборат былиб, бу ерда =уйидаги щол ыринлидир:
душанба < сешанба < чоршанба < пайшанба < жума < шанба < якшанба яъни душанба 0 - тартиб ра=амига , сешанба 1-тартиб ра=амига эга ва щ.к.
Бу тип программанинг янги типлар былимида ани=ланади.
Саналма типни ани=лашга доир мисоллар:
type
Rang = (qizil, safsar, sariq, kuk, havorang, kulrang, qora, oq);
Hafta = (dush, sesh, chor, pay, jum, shan, yaksh);
Mevalar = (olma, nok, shaftoli, uzum);
Gul = Rang;
бу ерда биз тыртта саналма тип киритдик, охирги Gul типи Rang типи билан бир хил =илиб ани=ланди.
Шуни эсда тутиш керакки, бир исмда щар хил тип =ийматлари былиши мумкин эмас. Масалан ю=оридаги типларнинг сафига
Zirovor = ( zira, qalampir, olma)
типини =ышиш мумкин эмас, чунки olma =иймати Mevalar типида ани=ланган эди. Бундай тип эълон =илиш, программанинг хатолигини англатади.
Программанинг type былимида ани=лаб =ыйилган типлардан ызгарувчиларни типларини эълон =илиш былимида худди стандарт типлар каби фойдаланилса былади:
Do'stlaringiz bilan baham: |