Вариантли ёзувлар, ёзувни белгиланган кисми , ёзувни вариантли кисми,
Юкорида келтирилган ёзувлар катъий аникланган структурага эга. Би хилги холларда улардан фойдаланиш имконияти чегараланган. Шунинг учун Паскаль тилида ёзувларни эълон килишда бир нечта вариантлар структурасидан фойдаланиш имконияти бор. Бундай ёзувлар вариантли ёзиш дейилади. Вариантлар билан ёзиш ёзувларни бирлаштириш воситаси булиб, ухшаш, лекин шаклан фаркли. Улар мажбурий булмаган ва вариантли кисмлардан иборат.
Вариант кисм CASE оператори ёрдамида шакллантирилади. У майдоннинг махсус езувлари - айни пайтда вариантлардан кайси бири активлашиши керак булган майдон белгисини беради
Езилиши:
TYPE Rec = RECORD
CASE <майдон белгиси > : <тип номи> OF
<1-танлов константаси > : (майдон,...:типи);
...
: (майдон,...:типи)
END;
Хар бир вариантнинг компоненталари (майдон идентификаторлари ва уларнинг типлари) кавс ичига олинади. CASE кисмида CASE операторидагидек алохида END йук. END сузи барча вариантли езувлар тугаганини билдиради.
Вариантли езувлар учун керак булган хотира хажми белгиланган майдон кисми ва узгарувчи майдон кисмнинг максимал хажмли майдонларининг йигиндисидан хосил булади.
Мисол.
TYPE
Rec = RECORD
Number : byte;
Code : integer;
CASE Flag : boolean OF
True : (Price1 : integer); False: (Price2 : real)
END;
VAR
PRec : Rec;
Белгиланган кисмда жойлашган Number ва Code майдонлари майдон белгиларидан катъий назар дастурда хар кандай жорий вактда ярокли. Price1 майдонидан Flag майдон белгисининг киймати True булгандагина фойдаланиш мумкин. Акс холда эса Price2 дан фойдаланиш мумкин, агарда Flagнинг киймати False булса.
Вариантли езувлардан фойдаланганда куйидаги коидаларга амал килиш зарур:
кайси вариантда учрашидан катъий назар, майдон номлари бир-биридан хеч булмаганда битта белгига фарк килиши керак;
езув битта вариантли кисмга эга булиши мумкин, у хам булса езув охирига жойлашиши керак;
агар бирор меткага мос келувчи майдон буш булса, у холда куйидагича езилади:
<метка>: ();.
Назорат саволлари
Ёзув нима?
2.Майдон нима?
3.Туркумли номлаш деб кандай номлашга айтилади?
4.Ёзув майдонларига мурожат кандай амалга оширилади?
5.Кандай ёзувларга ичма-ич ёзувлар дейилади?
6. Кандай ёзувларга вариантли ёзувлар дейилади?
7.Вариант кисми кайси оператор ёрдамида шакллантирилади?
8.Вариантли ёзувлардан фойдаланилганда кандай коидаларга риоя килинади?
9.Ёзувнинг белгиланган кисми деганда нима тушинилади?
10.Ёзувнинг вариантли кисми нима?
Do'stlaringiz bilan baham: |