I дастурлаш тиллари, уларнинг классификацияси pascal дастурлаш тили



Download 442 Kb.
bet22/29
Sana23.07.2022
Hajmi442 Kb.
#842416
TuriИнструкция
1   ...   18   19   20   21   22   23   24   25   ...   29
Bog'liq
turbo pascal

Мустахкамлаш учун саволлар
1. Turbo Pascalда процедура қандай тузилади.
2. Параметрли ва параметрсиз процедуралар.
3. Процедураларга мисол келтиринг.

Таянч тушунчалар: Процедуралар, Ўзгарувчи параметрли процедуралар, Қийматли параметрли процедуралар, Аралаш параметрли процедуралар, Процедура бичими.

Адабиётлар [1],[2],[3],[6].
16мавзу
Функциялар

Режа:
1. Функция ҳақида тушунча.


2. Функциянинг бичими.
3. Функция ва процедура орасидаги фарқлар.

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


Алгоритмик тилларда эса шундай функциялар қараладики, улар учун функциянинг қийматини аниқловчи алгоритм бериш мумкин бўлиши керак.
Pascal тилида қийматлари фақат оддий турга тегишли бўлган функциялар қаралади. Программалашда ҳар қандай функцияни ҳам формула кўринишда бериш мумкин эмас, баъзан рекурсив кўринишдаги кетма-кетлик орқали функцияни қиймати ҳисобланиши мумкин. Агар бу кетма -кетлик дастурнинг бир нечта жойида келадиган бўлса ҳар сафар уни ёзмасдан фақат бир марта функционал боғликлигини кўрсатиб унга ном бериш, керак бўлса аргументларини кўрсатиш кифоя (процедурада кўрилганидек).
Функционал боғлиқликни аниқлаш учун мўлжалланган процедурага процедура-функция дейилади.
Pascal тилида функцияни аниқлаш учун <функцияни эълон қилиш> тушунчаси хизмат қилади ва булар функция ва процедуралар бўлимига жойлаштирилади.
Функцияни эълон қилиш синтаксиси худди процедурани синтаксисига ўхшаб аниқланади:
<функцияни эълон қилиш>:=<функцияни сарлавхаси>;<блок>
<функцияни сарлавхаси>:functiоn <функция номи>; <турнинг номи>(<рамзий параметр номи>{,<рамзий параметр номи>})
ёки functiоn <функция номи >: <турнинг номи>

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


Шуни такидлаш лозимки, процедура-функцияни параметрсиз, ҳамда параметр-қийматли ва параметр-ўзгарувчили кўринишда ишлатиш мумкин. Процедура-функцияни ташкил этувчи блок одатдагидек аниқланади, аммо функцияни ҳисоблаш жараёнида функцияни қиймати билан бирга оралиқ қийматлар ҳам ҳисобланади. Шунинг учун функция қийматини бу оралиқ қийматлардан фарқлаш учун функцияни ҳисобловчи операторлар кетма-кетлигида камида битта қуйидаги кўринишдаги қиймат бериш оператори қатнашиши керак:
<функция номи>:<ифода>;

бу ёзув функциянинг қиймати сифатида ўнг томондаги ифоданинг қиймати олинишини билдиради. Шуни эслатиб ўтиш зарурки, бу кўринишдаги операторлар фақат функцияни эълон қилишдагина ишлатилади.


Шундай қилиб процедура-функцияни процедурадан учта фарқи бор:
1) процедура-функция functiоn хизматчи сўзидан бошланади;
2) процедура- функциянинг сарлавхасида функция қийматининг тури кўрсатилади;
3) функцияни ҳисобловчи дастурда камида битта чап томонида эълон қилинган функциянинг номи бўлган қиймат бериш оператор кўрсатилиши керак ва бу операторларнинг камида биттаси бажарилиши керак.

Масалан n факториални ҳисобловчи дастурни Pascal тилида қуйидаги кўринишда ёзиш мумкин:


functiоn fact(n:integer):integer;
var
i,k: integer;
begin k:=1;
fоr i:=1 tо n dо k:=k*i;
fact:=k;
еnd.
Шу нарсани эслатиб ўтиш керакки, Pascal тилининг стандарт процедура ва процедура-функциялар синфи мавжудки, уларни дастурда тўғридан-тўғри ишлатиш мумкин.
Процедурани ишга тушириш процедура-оператори ёрдамида амалга оширилар эди, процедура функцияни эса функцияни чақириш билан амалга оширилади. Функцияни чақирувчи ифода алохида оператор сифатида келиши мумкин эмас, у қиймат бериш операторининг ўнг томонида ёки бошқа қисм-дастурга мурожаатда параметр-қиймат сифатида келиши мумкин.
y := fact(7);..... writeln(‘факториал=‘, fact(10));

Мисол.
Қуйидаги ифодани ҳисоблаш учун қисм дастур-функция ёрдамида дастур ёзинг


1+2!+3!+...+N!

program param;


var
s,n,k:integer;

function faktor( m:integer): integer;


var
i;byte;
begin
faktor :=1;
for i:=1 to m do faktor := faktor *i;
end;
begin
writeln(‘n ни киритинг’); read(n);
s:=0;
for k:=1 to n do s:=s+ faktor (k);
end;
writeln(‘жавоб’,s);
end.

Download 442 Kb.

Do'stlaringiz bilan baham:
1   ...   18   19   20   21   22   23   24   25   ...   29




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