Ш. И. Раззоќов, М. Д. Юнусова 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 усули мос келиши мумкин: value in; value out; value inout; addr in; addr out; addr inout; Мавжуд дастурлаш тилларида, параметрларни узатишнинг 6 усули мавжудлигига ќарамасдан, одатда, икки-уч усулигина ишлатилади. Турбо Паскалда параметрларни узатишнинг биринчи (value in), тўртинчи (addr in) ва олтинчи (addr inout) усулларигина амалга оширилади. Мана шу уч усул билан яќиндан танишамиз: value in параметрлари. Процедура (функция) чаќирилганда: а) расмий параметрлар ва локал маълумотлар учун хотира ажратилади (стекда ёки локал маълумотлар учун хотиранинг махсус жойида); б) хотирада ћаќиќий параметрлар ќийматларидан расмий параметрлар учун ажратилган нусха олиш бажарилади. Процедура (функция) иши ваќтида а) расмий параметрлар ќийматларининг ўзгариши ћаќиќий параметрларнинг хотира ячейкаларидаги таркибига ћеч ќандай таъсир этмайди. Процедура (функция) нинг тугашида а) расмий параметрлар ва локал маълумотлар учун ажратилган хотира тозаланади; б) процедуранинг иши ваќтида олинган, расмий параметрларнинг янги ќийматлари хотира тозаланиши билан бирга тозаланади. addr in параметрлари Процедура (функция) ни чаќиришда а) фаќат локал маълумотлар ва ћаќиќий параметрлар адресларини саќлаш учунгина хотира ажратиш (стекда ёки локал маълумотлар учун махсус соћада) бажарилади; б) ћаќиќий параметрлар адресларини (лекин ќийматларини эмас!) улар учун ажратилган хотирага нусхалаш бажарилади. Процедура (функция) нинг иши ваќтида: а) расмий параметрлар ќийматларини ўзгартириш мумкин эмас; б) расмий параметрлар ќийматларини фаќат бошланѓич маълумотлар сифатида ишлатиш мумкин; в) расмий параметр ќийматлари, нусхаланган адресларни ишлатиб, бевосита ћаќиќий параметрлар хотирасидан танланади. Процедура (функция) нинг тугашида: а) чаќирилган процедура (функция) нинг чаќирувчига бундай параметрлар орќали таъсири бўлмайди; б) процедура (функция) иши учун ажратилган хотира тозаланади. addr inout параметрлари Процедура (функция) чаќирилганда а) фаќат локал маълумотлар ва ћаќиќий параметрлар адресларини саќлаш учунгина хотира ажратиш (стекда ёки локал маълумотлар учун махсус соћада) бажарилади; б) ћаќиќий параметрлар адресларини (лекин ќийматларини эмас!) улар учун ажратилган хотирага нусхалаш бажарилади; в) ћаќиќий параметрлар сифатида ўзгармасларни ишлатиш ман этилади. Процедура (функция) нинг иши ваќтида: а) бундай турдаги параметрларнинг ишлатилиши учун ћеч ќандай чекликлар ќўйилмайди; б) нусхаланган адреслардан фойдаланиб, расмий параметрларни ўзгартириш бевосита ћаќиќий параметрларга тегишли бўлган хотира ячейкаларида бажарилади. Процедура (функция) нинг тугашида: а) натижани атайлаб нусхалаш талаб ќилинмайди, чунки расмий параметрлар билан ћамма амаллар ћаќиќий параметрларнинг хотира ячейкалари устида бевосита бажарилади; б) процедура (функция) учун ажратилган хотира тозаланади. 10.4. Турбо Паскалда параметрларни узатиш Турбо Паскалда параметрларни узатишнинг юќорида айтилган олтита усулидан учтаси амалга оширилади: value in кўринишидаги параметрлар Турбо Паскалда бундай параметрлар параметр-ќийматлар дейилади. Процедура (функция) сарлавћалари баёнида параметр-ќийматлар идентификаторларидан олдин ќўшимча калит сўзлар ќўйилмайди. addr inout кўринишдаги параметрлар. Турбо Паскалда бундай параметрлар параметр-ўзгарувчилар дейилади. Процедура (функция) сарлавћасини баён этишда параметр-ўзгарувчилар идентификаторларидан олдин var калит сўзи ќўйилади. addr in кўринишдаги параметрлар. Турбо Паскалда бундай параметрлар параметр-ўзгармаслар дейилади. Процедура (функция) сарлавћаси баёнида параметр-ўзгармаслар идентификаторидан олдин cons - калит сўзи ёзилади. Параметрларнинг дастлабки икки тури Паскал тилининг ћамма версияларига хос. Учинчи, параметр-ўзгарувчи тури эса Турбо Паскал 7-версиясигагина янги киритилган. 10.4.1. Параметр-ќийматлар Параметр-ќийматлар баён этилган процедура сарлавћаси ќуйидаги кўринишга эга бўлади. Download 1.74 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling