Збекистон миллий университети


Мустақил бажариш учун топшириқлар



Download 1,98 Mb.
bet32/56
Sana23.06.2022
Hajmi1,98 Mb.
#694633
TuriПрограмма
1   ...   28   29   30   31   32   33   34   35   ...   56
Bog'liq
inf va dast-oquv-qollanma

Мустақил бажариш учун топшириқлар





  1. Бир ўлчовли аi массивнинг энг катта элементини топадиган программа тузинг.

  2. aij - матрицанинг сатр элементлари йиғиндисини чоп этадиган программа тузинг.

  3. aij - матрица сатр бўйича киритилиб, устун бўйича чоп этилсин.



  4. 80 та белгидан ташкил топган сатрнинг аввал рақамлари, кейин қолган символлар чоп этилсин. Символларнинг тартиб номери сақланган бўлиши керак.

  5. аi , массив элементларини қийматлари бўйича ўсиш тартибида жойлаштирилсин.



§ 3.14. Процедуралар

Программалашда шундай ҳолатлар кузатиладики, унда программанинг турли жойларида мазмуни жиҳатидан бир хил алгоритмни бажаришга тўғри келадики, у мустақил қийматга эга, яъни ечилаётган асосий масаланинг бирор бир қисм масаласини ечишга мўлжалланган бўлади. Масалан иккита натурал соннинг энг катта умумий бўлувчисини топиш, векторнинг компоненталарини ўсиш ёки камайиш кўринишда тартиблаш ва бошқа масалалар.


Агар бу хусусий алгоритм ҳажм жиҳатидан катта ва мураккаб бўлса, у ҳолда бу алгоритмни ҳар сафар қайта ёзиш программани мураккаблаштириш билан бир қаторда уни ёзиш жараёнида грамматик хатоларга йўл қуйиш эҳтимолини оширади. Юқоридаги камчиликларни олдини олиш мақсадида, ҳамда унинг ихчамлигини ва тушинарли кўринишини таъминлаш учун Паскал тили ҳар қандай хусусий алгоритмни асосий программани матнидан ажратиб, уни мустақил программа объекти кўринишда, фақат бир марта ёзиш имконини беради. Бу программа объекти - процедура (қисм-программа) дейилади.
Процедура - процедура ва функциялар бўлимида эълон қилинади ва умумий ҳолда қуйидаги схематик кўринишга эга бўлади:
procedure < процедура номи>(<рамзий параметрлар>);
<ўзгарувчиларни эълон қилиш бўлими>;
begin
<оператор бўлими>
end;
Энди процедуранинг синтаксиси таърифини берамиз ва ҳар бир фойдаланилган тушунчаларга батафсил тўхтаб ўтамиз.
<процедурани эълони> :: = <процедура сарлавҳаси> : <блок>;

Блок программанинг процедура тааллуқли бўлиб, у программа тузилишидаги бўлимлар билан бир хил синтаксисга эга.


Процедуранинг сарлавҳаси procedure хизматчи сўзидан, процедуранинг номи ва қавс ичида баъзи бир қўшимча маълумотларни ўз ичига олган бўлиши мумкин.
Берилган процедурани активлаштириш, яъни ишга тушириш учун программани зарур жойида процедура операторни ёзиш керак:
<процедура оператор> :: = <процедура номи>
ёки <процедура номи> (<фактик параметрлар руйхати>);

Процедуранинг икки хил кўринишини ишлатиш мумкин: параметрли процедура ва параметрсиз. Параметрсиз процедураларда берилганлар асосий программанинг блокидан олинади, яъни глобал қиймат ҳисобланади. Бу эса рационал ҳисобланмайди. Процедура сарлавҳасининг умумий кўринишдаги ёзилиши қуйидагича:


Procedure <процедура номи>(<рамзий параметрлар рўйхати>);
бу ерда procedure-қисм программа процедура кўринишда берилаётганини англатувчи хизматчи сўздир, <процедура номи>-идентификатор.
Расмий параметрлар рўйхатида қавслар ичида қуйидаги кўринишдаги параметрлар бўлиши мумкин:
1) параметр-қийматлар;
2) параметр-ўзгарувчилар (уларнинг олдида var хизматчи сўзи туради);
3) Процедура номини кўрсатувчи параметрлар (уларнинг олдида procedure хизматчи сўзи туради);
4) Функция номини кўрсатувчи параметрлар (уларнинг олдида function хизматчи сўзи туради).
Сарлавҳадан сўнг процедуранинг танаси жойлашиб ";" белгиси билан тугайди. Процедуранинг танаси Турбо-Паскал программаси тузилишидаги кетма-кет жойлашган бўлимлардан иборат бўлиши мумкин.
Процедурани чақириш ва уни ишлаши қуйидаги процедура оператори ёрдамида амалга оширилади:
<процедура номи> (<фактик параметрлар рўйхати>);
Бу ерда <процедура номи>-мурожаат қилинаётган процедуранинг номи,<фактик параметрлар рўйхати> - процедурани ишлашида рамзий параметрларга мос қўйиладиган қийматлар (ифодалар) ёки ўзгарувчилар номлари иборат бўлиши мумкин.
Фактик ва рамзий параметрлар орасида қуйидаги муносабатлар бўлиши лозим:
- фактик параметрлар сони билан рамзий параметрлар сони тенг бўлиши керак;
- рўйхатдаги фактик параметрларни жойлашиш тартиби рамзий параметрларни жойлашиш тартиби билан бир хил бўлиши керак;
- фактик параметрларнинг ҳар бирини тури мос равишда ҳар бир рамзий параметрни тури билан мос тушиши керак.
Агар процедурага параметрсиз мурожаат қилинмоқчи бўлса, у ҳолда процедура операторида мурожаат қилинаётган процедуранинг номигина кўрсатилади холос. Қуйида биз рамзий параметрларнинг икки кўринишига мисоллар кўрамиз:
1. Параметр-қийматлар. Параметр-қийматлар одатда процедурага бошланғич берилганларни узатишда фойдаланилади. Уларни рўйхатда вергул билан ажратиб, тури кўрсатилади.
Мисол:
procedure m1(i,j:integer; r,z:real);
Фактик параметрлар сифатида турлари қиймат-параметрлар тури билан бир хил бўлган ифода, ўзгарувчи ёки константа бўлиши мумкин.
Процедурага мурожаат қилинганда фактик параметрлар ҳисобланади ва расмий параметрлар бу қийматларни мос равишда бошланғич қиймат сифатида қабул қилади.
Процедура ишлаши жараёнида рамзий параметр-қийматларга мос ўзгарувчилар қиймати ўзгариши мумкин, лекин бу қийматлар процедура ичидагина ишлатилиши мумкин ва у процедура ишини тугатгандан кейин сақланиб қолмайди. Шунинг учун ҳам параметр-қийматлар процедурани натижасини программага узатиш учун ишлатилмайди.
Мисол:
Қуйидаги программа ишлагандан сўнг х нинг қиймати сифатида 0 чоп этади.

Program m2;


var x : integer;
procedure izm ( y : integer);
begin
y: =1;
end;
begin
x : = 0; izm(x);
writeln(x)
end.

2. Параметр-ўзгарувчи. Параметр-ўзгарувчилар процедурада амалга оширилган ишлар натижасини аниқлашда ишлатилади ва расмий параметрлар рўйхатида VAR хизматчи сўзидан кейин ёзилиб тури кўрсатилади.


Мисол:
Procedure m3 (var k, l : integer; var z : real);
Рамзий параметр-ўзгарувчига мос келувчи фактик параметр сифатида фақат шу турдаги ўзгарувчи келиши мумкин. Бу ҳолда процедурага мурожаат қилинганда фактик параметрларнинг хотирадги адреси жўнатилади (қиймати эмас). Натижада рамзий параметр фактик параметр адресини олади, яъни хотиранинг битта катаги икки ном билан белгиланади ва процедурада рамзий параметрлар устида қилинган барча ишлар фактик параметрларга ҳам тегишли бўлади.
Мисол:
Қуйидаги программа ишлагандан сўнг х нинг қиймати сифатида 1 қийматини чоп қилади.

Program m4;


var x : integer;
procedure izm(var y : integer);
begin
y: =1;
end;
begin
x: =0; izm(x);
writeln(x)
end.

Агарда процедура параметрлари ҳосилавий тур бўлса, масалан, жадвал катталиклар, бу турларни асосий программанинг турлар эълон қилиш бўлимида эълон қилиш керак. Процедура эълонида эса эълон қилинган турдан фойдаланиш керак. Ўлчами катта бўлган ўзгарувчиларни параметр - ўзгарувчи кўринишда эълон қилиш машина хотирасини ва машина вақтини тежаш нуқтаи-назаридан афзаллик беради.



Download 1,98 Mb.

Do'stlaringiz bilan baham:
1   ...   28   29   30   31   32   33   34   35   ...   56




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish