Ш. И. Раззоќов, М. Д. Юнусова turbo pascal алгоритмик тилида дастурлаш касб-ћунар коллеж талабалари учун ўќув ќўлланма
end. 10.2. Процедура ва функциялардан фойдаланишда идентификаторларнинг фаолият соћаси
Download 1,74 Mb.
|
Turbo Pascal назария
- Bu sahifa navigatsiya:
- 10.3. Параметрларни узатиш усулларининг таснифи
- 10.4. Турбо Паскалда параметрларни узатиш
end.
10.2. Процедура ва функциялардан фойдаланишда идентификаторларнинг фаолият соћаси Идентификатор фаолият соћаси деб, идентификатор ишлатилиши мумкин бўлган дастур ќисмига айтилади. Идентификатор фаолияти соћаси уларни эълон ќилиш ўрни билан аниќланади. Агар идентификаторлар битта процедура ёки функция доирасида ишлатилиши мумкин бўлса, улар локал дейилади. Агар идентификаторлар таъсири биттадан кам бўлмаган (бир нечта) ичма-ич киритилган процедура ва (ёки) функцияларга тарќалса, бундай идентификаторлар глобал дейилади. «Локал» ва «глобал» тушунчалар, маълум процедура (функция) га кўра, нисбатан деб тушунилиши керак. Б уни ќуйидаги мисол билан намойиш этамиз: Бу мисолда дастурда ишлатилаётган ћамма процедура ва функциялар учун АО, ВО, СО глобал бўлади. Р1 процедура ичида (бу мисолда Р2 процедура учун) баён этилган ћамма процедура ва функциялар учун А1, В1, С1 глобал, бир ваќтда Р1 процедуранинг ўзи учун локал бўлади. Р2, энг ички, процедурада эълон ќилинган А2, В2, С2 маълумотлар фаќат локал бўлади. Процедура ва функция идентификаторлари учун таъсир соћасини аниќлаш ќоидасини келтирамиз:
Биринчи учта ќоида кўрилган мисол билан тушунтирилган бўлса, тўртинчисини тушунтириш учун яна бир мисол келтирамиз: Яъни, исмига кўра ташќи процедура исмлари билан мос келувчи идентификаторли маълумотларни ички процедурада эълон ќилиш ташќи идентификаторлар таъсирини бекор ќилади ва тури бўйича мос келадими, йўќми ўзининг локал баёнларини киритади. Локал маълумотлар процедура (функция) ни чаќиришда яратилади ва фаќат унинг бажарилиш ваќтида мавжуд бўлади. Локал маълумотлар учун хотирани ажратиш, автоматик равишда, процедура (функция) бажарилишининг бошида, бу хотирани бўшатиш эса - процедура (функция) бажарилишининг тугаши билан содир бўлади. Процедура (функция) танасида жойлашган операторлар унинг локал маълумотларига (ўзгармас ва ўзгарувчиларга) мурожаат ќилиши ва уларнинг ќийматини ўзгартириши мумкин. Локал маълумотлар ќиймати процедура (функция) ишлаган ваќтгача мавжуд бўлади. У тугаши билан процедура (функция) операторлари билан ќилинган локал маълумотлар ќийматларининг барча ўзгаришлари, хотиранинг бўшаши билан йўќолади. 10.3. Параметрларни узатиш усулларининг таснифи Процедура (функция) фаоллаштирилганда унга параметрларни узатиш мумкин. Узатишда процедура (функция) сарлавћасида баён этилган параметрларнинг ћаммаси чаќириш операторида кўрсатилишини кузатиш зарур. Процедура (функция)ни баён этишда унинг сарлавћасида кўрсатиладиган параметрлар расмий параметрлар дейилади. Процедура (функция) ни чаќиришда кўрсатиладиган параметрлар ћаќиќий параметрлар дейилади. Кўп процедуралар бир нечта параметрларга эга. дастурчининг вазифаси – у чаќиришда кўрсатаётган параметрларнинг, маъносига кўра, расмий параметрларга мос келишига ишонч ћосил ќилишдир. Компилятор параметрларнинг хато сонини ва турларнинг номутаносиблигинигина текшира олади. Дастурлаш тилларида амалга оширилиши мумкин бўлган параметрларни узатиш усуллари ќуйидаги таснифга эга: Параметрлар ќуйидаги белгиларига кўра фарќланади:
а) ќийматига кўра узатиш (value); б) адресига (мурожаатига) кўра узатиш (addr).
а) фаќат кирувчи параметр сифатида (in); б) фаќат чиќувчи параметр сифатида (out); в) кирувчи, худди шундай чиќувчи сифатида (inout). Бу фарќларга назарий жићатдан параметрларни узатишнинг 6 усули мос келиши мумкин:
Мавжуд дастурлаш тилларида, параметрларни узатишнинг 6 усули мавжудлигига ќарамасдан, одатда, икки-уч усулигина ишлатилади. Турбо Паскалда параметрларни узатишнинг биринчи (value in), тўртинчи (addr in) ва олтинчи (addr inout) усулларигина амалга оширилади. Мана шу уч усул билан яќиндан танишамиз: value in параметрлари.
а) расмий параметрлар ва локал маълумотлар учун хотира ажратилади (стекда ёки локал маълумотлар учун хотиранинг махсус жойида); б) хотирада ћаќиќий параметрлар ќийматларидан расмий параметрлар учун ажратилган нусха олиш бажарилади.
а) расмий параметрлар ќийматларининг ўзгариши ћаќиќий параметрларнинг хотира ячейкаларидаги таркибига ћеч ќандай таъсир этмайди.
а) расмий параметрлар ва локал маълумотлар учун ажратилган хотира тозаланади; б) процедуранинг иши ваќтида олинган, расмий параметрларнинг янги ќийматлари хотира тозаланиши билан бирга тозаланади. addr in параметрлари
а) фаќат локал маълумотлар ва ћаќиќий параметрлар адресларини саќлаш учунгина хотира ажратиш (стекда ёки локал маълумотлар учун махсус соћада) бажарилади; б) ћаќиќий параметрлар адресларини (лекин ќийматларини эмас!) улар учун ажратилган хотирага нусхалаш бажарилади.
а) расмий параметрлар ќийматларини ўзгартириш мумкин эмас; б) расмий параметрлар ќийматларини фаќат бошланѓич маълумотлар сифатида ишлатиш мумкин; в) расмий параметр ќийматлари, нусхаланган адресларни ишлатиб, бевосита ћаќиќий параметрлар хотирасидан танланади.
а) чаќирилган процедура (функция) нинг чаќирувчига бундай параметрлар орќали таъсири бўлмайди; б) процедура (функция) иши учун ажратилган хотира тозаланади. addr inout параметрлари
а) фаќат локал маълумотлар ва ћаќиќий параметрлар адресларини саќлаш учунгина хотира ажратиш (стекда ёки локал маълумотлар учун махсус соћада) бажарилади; б) ћаќиќий параметрлар адресларини (лекин ќийматларини эмас!) улар учун ажратилган хотирага нусхалаш бажарилади; в) ћаќиќий параметрлар сифатида ўзгармасларни ишлатиш ман этилади.
а) бундай турдаги параметрларнинг ишлатилиши учун ћеч ќандай чекликлар ќўйилмайди; б) нусхаланган адреслардан фойдаланиб, расмий параметрларни ўзгартириш бевосита ћаќиќий параметрларга тегишли бўлган хотира ячейкаларида бажарилади.
а) натижани атайлаб нусхалаш талаб ќилинмайди, чунки расмий параметрлар билан ћамма амаллар ћаќиќий параметрларнинг хотира ячейкалари устида бевосита бажарилади; б) процедура (функция) учун ажратилган хотира тозаланади. 10.4. Турбо Паскалда параметрларни узатиш Турбо Паскалда параметрларни узатишнинг юќорида айтилган олтита усулидан учтаси амалга оширилади:
Турбо Паскалда бундай параметрлар параметр-ќийматлар дейилади. Процедура (функция) сарлавћалари баёнида параметр-ќийматлар идентификаторларидан олдин ќўшимча калит сўзлар ќўйилмайди.
Турбо Паскалда бундай параметрлар параметр-ўзгарувчилар дейилади. Процедура (функция) сарлавћасини баён этишда параметр-ўзгарувчилар идентификаторларидан олдин var калит сўзи ќўйилади.
Турбо Паскалда бундай параметрлар параметр-ўзгармаслар дейилади. Процедура (функция) сарлавћаси баёнида параметр-ўзгармаслар идентификаторидан олдин cons - калит сўзи ёзилади. Параметрларнинг дастлабки икки тури Паскал тилининг ћамма версияларига хос. Учинчи, параметр-ўзгарувчи тури эса Турбо Паскал 7-версиясигагина янги киритилган. 10.4.1. Параметр-ќийматлар Параметр-ќийматлар баён этилган процедура сарлавћаси ќуйидаги кўринишга эга бўлади. Download 1,74 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2025
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling