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


§ 3.15. Процедура–функция



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

§ 3.15. Процедура–функция

Функция деганда функциянинг қиймати деб аталувчи қийматни функцияни аргументи деб аталувчи бошқа бир қиймат билан боғлиқлиги тушинилади.


Алгоритмик тилларда эса шундай функциялар қараладики, улар учун функцияни қийматини аниқловчи алгоритм бериш мумкин бўлиши керак.
Паскал тилида қийматлари фақат оддий турга тегишли бўлган функциялар қаралади. Программалашда ҳар қандай функцияни ҳам формула кўринишда бериш мумкин эмас, баъзан рекурсив кўринишдаги кетма-кетлик орқали функцияни қиймати ҳисобланиши мумкин. Агар бу кетма - кетлик программанинг бир нечта жойида келадиган бўлса, ҳар сафар уни ёзмасдан фақат бир марта функционал боғликлигини кўрсатиб, унга ном бериб, керак бўлса, аргументларини кўрсатиш кифоя (процедурада кўрилганидек).
Программада процедура-функцияни эълони процедурани тасвирлаш билан деарли бир хил. Улар орасидаги фарқлар қуйидагилардан иборат. Процедурани бажарилиши натижасида ҳосил бўлган қиймат эса унинг параметрларини қиймати кўринишида программага узатилади. Процедура-функцияни бажарилиши натижасида ҳосил бўлган қиймат программага функция номини қиймати кўринишда кайтарилади. Функцияни тасвирлаш ҳам процедура тасвиридаги каби сарлавҳадан бошланади ва умумий ҳолда қуйидаги кўринишга эга:

function < функция номи> (<рамзий параметрлар руйхати>):< функция тури>;


<ўзгарувчиларни тасвирлаш бўлими>;
begin
< операторлар бўлими>
end;

Энди процедура – функциянинг синтаксис таърифини беришга ўтамиз.


function <функция номи> (<параметрлар рўйҳати>):<натижа тури>,
бу ерда function қисм-программани функция кўринишида берилаетганини англатувчи хизматчи сўз, <натижа тури> - функция кайтарувчи қиймат тури.
Сарлавҳадан сўнг процедурадагидек унинг эълон кисми ва танаси жойлашади ва унда албатта функция номига қиймат берувчи оператор бўлиши керак (<функция номи>:=<ифода>). Мана шу оператор функциянинг қийматини аниқлайди.
Программада функцияга мурожаат қилиш функция номи кўринишида ёзилади. Ундан сўнг эса қавс ичида фактик параметрлар рўйхати келтирилади. Функцияга мурожаат қилинганда фактик параметрларни узатиш қоидалари процедурадаги қоидалар билан бир хил. Агар функция ўз танасида рамзий ўзгарувчи-параметрни ёки бу функцияга нисбатан глобал бўлган ўзгарувчиларни қийматларини ўзгартирса, у ҳолда бу функция "иккиламчи самара"га эга дейилади. Функцияга мурожаат фақат программа операторининг таркибидагина бўлиши мумкин.
Мисол. 1. Берилган манфий булмаган бутун n сони учун ҳисоблаш учун процедура - функция тузилсин.

Function daraja ( n : integer; x : real ) : real;


var i : integer; y : real;
begin
y : = 1;
for i : =1 to n do y : = y*x;
daraja : = y
end.

2. n факториални ҳисобловчи процедура - функция тузилсин.


function fact(n:integer):integer;
var i,k: integer;
begin k: =1;
for i: =1 to n do k: =k*i;
fact: =k;
end
Шу нарсани эслатиб ўтиш керакки, паскал тилининг стандарт процедура ва процедура-функциялар синфи мавжудки, уларни программада тўғридан - тўғри ишлатиш мумкин.
Процедурани ишга тушириш процедура-оператори ёрдамида амалга оширилар эди, процедура функцияни эса функцияни чақириш билан амалга оширилади. Функцияни чақирувчи ифода алоҳида оператор сифатида келиши мумкин эмас, у қиймат бериш операторининг ўнг томонида ёки бошқа қисм-программага мурожаатда параметр-қиймат сифатида келиши мумкин.
y : = fact(7);..... writeln(‘факториал=’, fact(10));
Процедура ва функциялар танасида уларнинг ўзига мурожаат ҳам бўлиши мумкин, бундай қисм программаларни рекурсив қисм программалар дейилади.
Функционал боғлиқликни аниқлаш учун мўлжалланган процедурага процедура-функция дейилади.
Паскал тилида функцияни аниқлаш учун <функцияни эълон қилиш> тушунчаси хизмат қилади ва булар функция ва процедуралар бўлимига жойлаштирилади.
Шундай қилиб процедура-функцияни процедурадан учта фарқи бор:
1) процедура-функция function хизматчи сўзидан бошланади;
2) процедура - функциянинг сарлавҳасида функция қийматининг тури кўрсатилади;

  1. функцияни ҳисобловчи программада камида битта чап томонида эълон қилинган функциянинг номи бўлган қиймат бериш оператор кўрсатилиши керак ва бу операторларнинг камида биттаси бажарилиши керак.

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



  1. 1..N натурал сонларнинг йиғиндисини ҳисоблайдиган procedure қисм-программаси тузилсин.

  2. S=1!+2!+3!+…+n! йиғинди Procedure-Function қисм программасини тузиш ёрдамида ҳисоблансин.

  3. топадиган ҳисоблайдиган procedure қисм-программаси тузилсин.

  4. Трапециялар формуласи ёрдамида берилган интегрални ҳисоблайдиган программа тузилсин.



Download 1,98 Mb.

Do'stlaringiz bilan baham:
1   ...   29   30   31   32   33   34   35   36   ...   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