Модел ва алгоритм тушунчаси


Масала 4. Элементлари бутун сонлардан иборат бўлган t[1..20] жадвалдаги максимал элементни топиш процедуралар ёрдамида аниқлансин. program


Download 0.77 Mb.
bet45/56
Sana18.06.2023
Hajmi0.77 Mb.
#1556825
1   ...   41   42   43   44   45   46   47   48   ...   56
Bog'liq
7 Алгоритмлар мавзуси

Масала 4. Элементлари бутун сонлардан иборат бўлган t[1..20] жадвалдаги максимал элементни топиш процедуралар ёрдамида аниқлансин.


program max1;
var i:integer;
x,y,u,v:real; a,b,S:real;
t:array[1..20] of integer;
procedure max;
begin
if a>b then S:=a else S:=b;
end;
begin
write('t[',1,']='); read(t[1]);
a:=t[1];
for i:=2 to 20 do
begin
write('t[',i,']='); readln(t[i]);
b:=t[i]; max; u:=S;
a:=u;
end;
writeln('Eng kattasi=',u);
end.

Ушбу масалага ўзгарувчи параметрли, қиймат параметрли, ўзгарувчи ва қиймат параметрли процедуралар ёрдамида дастур тузишни мустақил равишда амалга оширинг.


Масала 5. s ва t ҳақиқий сонлари берилган. g(1.2,s)+g(t,s)+g(2s-1,st) ифоданинг қийматини ҳисоблаш дастури процедуралардан фойдаланган ҳолда тузилсин. Бунда


program prosed5;
var
s,t,k,l:real;
a,b,c,g:real;
procedure m;
begin
g:=(sqr(a)+sqr(b))/(sqr(a)+4*a*b+3*sqr(b));
end;
begin
write('s,t larni kiriting:’); readln(s,t);
a:=1.2; b:=s; m; k:=g;
a:=t; b:=s; m; k:=k+g;
a:=2*s-1; b:=s*t; m; k:=k+g;
writeln('k=',k:1:2);
end.

Мустахкамлаш учун саволлар


1. Турбо паскальда процедура қандай тузилади.
2. Параметрли ва параметрсиз процедуралар.
3. Процедураларга мисол келтиринг.

Таянч тушунчалар


1. Процедуралар.


2. Ўзгарувчи параметрли процедуралар.
3. Қийматли параметрли процедуралар.
4. Аралаш параметрли процедуралар.
5. Процедура бичими.

Адабиётлар [1],[2],[3],[7].


Функциялар


Режа:
1. Функция ҳақида тушунча.
2. Функциянинг бичими.
3. Функция ва процедура орасидаги фарқлар.

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


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

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


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

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



Download 0.77 Mb.

Do'stlaringiz bilan baham:
1   ...   41   42   43   44   45   46   47   48   ...   56




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