Загрузил Bobur Kuchkarov

24.protsedura va funksiyalar

Реклама
_________________________________
____________________________________________
____________________________________________
Mavzu: Protsedura va funksiyalar
Tekshirdi:
Topshirdi:
____________________________
____________________________
________-yil
1
2
PROTSEDURA VA FUNKSIYALAR
Ko`pincha ma’lum amallar majmuini dasturning turli qismida
takrorlashga to`g`ri keladi. Paskalda ko`p takrorlanadigan amallar majmuini
asosiy dasturdan ajratib olib, ulardan alohida bloklar - protsedura va
funksiyalar tashkil qilish mumkin. Har bir shunday tashkil etilgan
protsedura va funksiyaga albatta nom beriladi. Kerakli protsedura yoki
funksiyaga uning nomi orqali murojaat etiladi. Protsedura va funksiyalardan
oqilona foydalanib tuzilgan dastur, odatda, sodda va tushunarli bo`ladi.
Protseduralar ham, funksiyalar ham ma’lum amallar majmuidan iborat
bo`lsa, ular bir biridan nimasi bilan farq qiladi?
Funksiyalar, umuman olganda, biror bir qiymatni hisoblashga
mo`ljallab tuziladi. Pirovard natijada hisoblangan qiymat funksiya nomiga
o`zlashtiriladi.
Protseduralar esa ma’lum bir amallar ketma-ketligini bajarish
maqsadida tuziladi. Bunda biror natijaviy qiymat hisoblanishi emas, balki
berilgan amallar ketma-ketligi bajarilishining o`zi ahamiyatga ega.
Masalan, dasturda tomonlari berilgan uchburchak yuzini bir necha
marta hisoblash kerak bo`lsa, funksiyadan foydalanish maqsadga muvofiq.
Chunki bunda har safar birgina qiymatni - uchburchakning yuzi hisoblanadi.
Agar uchlarining berilgan tomonlari bo`yicha ekranda bir nechta uchburchak
chizish talab etilgan bo`lsa, tabiiyki, birgina qiymatni hisoblashga
mo`ljallangan funksiya emas, balki, ekranda uchburchak chizish jarayonini
tashkil etuvchi protsedura tuzish lozim.
Protsedura
va
funksiyalarni
ularga
murojaat
etishda
beriladiganma’lum bir qiymatlarga bog`liq qilib tashkil etish ham mumkin.
Bu qiymatlar parametrlar, shu tarzda tashkil etilgan protsedura va
funksiyalar esa parametrli protsedura va funksiyalar deyiladi.
Protsedura va funksiyalar sarlavha bilan boshlanadi. Protsedura
sarlavhasi quyidagi umumiy ko`rishga ega:
3
Procedure <protsedura nomi> (parametrlar);
Funksiya sarlavhasi quyidagi umumiy ko`rinishga ega:
Function
<funksiya
nomi>
(parametrlar):
<funksiya
qiymatiningturi>;
Parametrli protsedura va funksiyalarda parametrlarning turlari ham
tavsiflanadi. Masalan,
Function daraja (a, n : Integer):Integer; yoki Procedure shifr(satr:
String);
Protseduraning umumiy tuzilishi:
Funksiyaning umumiy tuzilishi:
Procedure<protsedura
Function<fiinksiya nomi>
nomi>
(parametrlar);
(parametrlar):turi;
Label
Label
<nishonlar>;
<nishonlar>;
Const
Const
<konstantalar tavsifi>;
<konstantalar tavsifi>;
Var
Var
< o`zgaruvchilar tavsifi>;
<o`zgaruvchilar tavsifi>;
«Ichki» protsedura va funksiyalar;
«Ichki»
Begin
funksiyalar;
<protsedura tanasi> {dastur}
Begin
end;
<funksiya tanasi> {dastur}
protsedura
va
end;
Ko`rib turganingizdek, protsedura va funksiyalar o`xshash tuzilishga
ega. Ularning tuzilishi dasturning tuzilishidan deyarli farq qilmaydi. Shuni
aytish lozimki, asosiy dasturda tavsiflangan o`zgarmas va o`zgaruvchilar
umumiy (global) o`zgarmas hamda o`zgaruvchilar deyiladi. Ulardan
dasturning istalgan qismida, jumladan, protsedura va funksiyalarning ichida
ham foydalansa bo`ladi. Biror protsedura yoki funksiyaning ichida
tavsiflangan o`zgarmas va o`zgaruvchilar mahalliy (lokal) o`zgarmas va
o`zgaruvchilar deyiladi. Ulardan faqat o`zi tavsiflangan protsedura yoki
4
funksiyaning ichida foydalanish mumkin. Paskalda umumiy va mahalliy
o`zgaruvchi bir xil nomga ega bo`lishi ham mumkin. Bu holda mahalliy
o`zgaruvchi tavsiflangan protsedura yoki funksiya ichida mahalliy
o`zgaruvchining qiymati, boshqa protsedura va funksiyalarda hamda asosiy
dasturda umumiy o‘zgaruvchining qiymati hisobga olinadi.
1- misol.[20, 83], [178, 391], [211, 746] oraliqlardagi barcha butun
sonlar yig`indisini topish dasturini tuzing.
Yechish. Berilgan uchta oraliqdagi butun sonlarning yig`indisini
hisoblash uchun parametrli takrorlash operatoridan uch marta foydalanishga
to`g`ri keladi. Masalani berilgan oraliqning boshlang`ich va oxirgi
qiymatlarini parametr sifatida olib, shu oraliqdagi butun sonlarning
yig`indisini hisoblovchi funksiyadan foydalanib ham yechish mumkin.
Program Summa;
Var i, s, s1, s2, s3 : Integer;
Function Sum(n1, n2:Integer):Integer;
Begin
s:=0; For i:=n1 To n2 Do s:=s+i; Sum:=s;
End;
BEGIN
S1:= Sum(20,83); s2 := Sum(178,391); s3:=Sum(211,746);
S:=s1+ s2 + s3; WriteLn(`S= s)
END.
2-
misol. Uchburchakning berilgan tomonlari bo`yicha, uning
balandliklarini aniqlovchi dastur tuzing.
Program Uchburchak balandligi;
Var a, b, c, ha, hb, he: real;
Function H_UB(a, b, c: real): real; { a, b, с- Uchburchak tomonlari }
Var yp, s: real;
Begin
yp:= (a+b+c)/2; {Perimetr yarmini hisoblash }
5
s:= Sqrt(yp*(yp-a)*(yp-b)*(yp-c)); {Yuza hisoblash}
H_UB:= 2*s/a; {Funksiyaga qiymat berildi }
End;
Begin
Write(`Uchburchak tomonlari (a,b,c) kiritilsin`); Readln(a,b,c),
ha:= H_UB(a, b, c); hb:= H_UB(b, a, c); hc:= H_UB(c, b, a);
Writeln(`Uchburchak balandliklari: `);
Writeln(`ha= `, ha:10:4, `hb= hb:10:4, `hc= hc:10:4);
Readln
End.
3-
misol. Uchta uchburchak uchlarining quyidagi koordinatalari
berilgan
1) (120,20), (80,170), (140,150); 2) (200,97), (500,156), (210,180),
3) (300,190), (200,390), (415,222).
Shu uchburchaklarni mos ravishda qizil, sariq va yashil ranglarda
chizish dasturini tuzing.
Uses Graph;
var gd, gm:Integer;
Procedure Uchburchak(x1,y1,x2,y2,x3,y3,col:Integer);
begin
SetColor(col);
Line(x1,y1,x2,y2);
Line(x2,y2,x3,y3);
Line(x3,y3,x1,y1);
end;
Begin gd:=0;
InitGraph(gd,gm, ");
Uchburchak( 120,20,80,170,140,150,4);
Uchburchak(200,97,500,156,210,180,14);
Uchburchak(300,190,200,390,415,222,2); ReadLn;
CloseGraph;
End.
6
Yuqorida keltirilgan dasturlarga e’tiborni qaratib, quyidagi xulosaga
kelish mumkin: protsedura va funksiyalarga murojaat etish vaqtida funksiya
nomi albatta biror operator tarkibida, protsedura nomi esa alohida (mustaqil)
yozilar ekan.
Savol va topshiriqlar
1.
Dasturda protsedura va funksiyalar qanday maqsadda qo`llaniladi?
2.
Protsedura va funksiyalarning farqi nimada?
3.
Parametrli protsedura va funksiyalar haqida so`zlab bering.
4.
Protseduraning umumiy tuzilishini ifodalab bering.
5.
Funksiyaning umumiy tuzilishini ifodalab bering.
6.
Dasturdagi umumiy va mahalliy о`zgaruvchilar haqida so`zlab
bering.
7.
Funksiya o`rniga qachon protsedurani qo`llash mumkin?
Mashqlar
1. Uchta to`g`ri to`rtburchakning har birining bittadan diagonali
uchlariningkoordinatalari berilgan: 1) 20,20 va 80,200; 2) 200,97 va
500,156; 3) 300,120 va 400,420. Shu to`g`ri to`rtburchaklarni mos ravishda
qizil, sariq va yashil ranglarda chizish dasturini tuzing.
3.
Berilgan n natural son uchun S=1*5+2*6+3*7+...+n*(n+4)
yig`indini hisoblash dasturini protsedura yordamida tuzing.
4.
Uchta sondan kattasini topish dasturini tuzing. Buning uchun
ikkita sondan kattasini topish funksiyasini tuzib, undan foydalaning.
7
Скачать