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;
Шу нарсани эслатиб ўтиш керакки, паскал тилининг стандарт процедура ва процедура-функциялар синфи мавжудки, уларни дастурда тўғридан-тўғри ишлатиш мумкин.
Процедурани ишга тушириш процедура-оператори ёрдамида амалга оширилар эди, процедура функцияни эса функцияни чақириш билан амалга оширилади. Функцияни чақирувчи ифода алохида оператор сифатида келиши мумкин эмас, у қиймат бериш операторининг ўнг томонида ёки бошқа қисм-дастурга мурожаатда параметр-қиймат сифатида келиши мумкин.
y := fact(7);..... writeln(‘факториал=‘, fact(10));
Мисол 1. 1+2!+3!+...+N! ифодани ҳисоблашни функциялар ёрдамида дастури тузилсин.
program param;
var
s,n,k,f:integer;
function faktor(m:integer): integer;
var
i:byte;
begin
f:=1;
for i:=1 to m do f:=f*i;
end;
begin
write(‘n=’); readln(n);
s:=0;
for k:=1 to n do begin faktor(k); s:=s+f; end;
writeln(‘Javob=’,s);
end.
Масала 2. Берилган тўртта a,b,c,d сонларидан каттасини иккита сондан каттасини топиш функцияси ёрдамида дастури тузилсин.
program misol_function;
uses crt;
var a,b,c,d,m,p,q:real;
function max(x,y:real):real;
begin
if x>y then max:=x else max:=y;
end;
begin
clrscr;
write('1-sonni kirit='); read(a);
write('2-sonni kirit='); read(b);
write('3-sonni kirit='); read(c);
write('4-sonni kirit='); read(d);
p:=max(a,b); q:=max(c,d); m:=max(p,q);
writeln('Sonlarning kattasi=',m:2:2);
end.
Мустахкамлаш учун саволлар:
1. Турбо паскальда функция қандай тузилади.
2. Процедуранинг функциядан фарқи нима.
3. Функцияга мисол келтиринг.
Таянч тушунчалар: Функция, функция бичими, функцияни эълон қилиш, Functiоn.
Адабиёт: [1],[2],[4]
Do'stlaringiz bilan baham: |