Uyga vazifa : 4-mashqni bajarish.
4*. y=sm2x funksiyasining [-K, n] oraliqdagi qiymatlarini 0,01 qadam bilan hisoblang. Natijalarni «sinus.out» faylida saqlab qo'ying.
5*. «sinus.out» fayliga izoh qo'shuvchi dastur tuzing.
46- dars. 9- sinf
MAVZU: Protsedura va funksiyalar
Dars maqsadi: a) Ta’limiy
b) Tarbiyaviy
c) Rivojlantiruvchi
Dars jihozi: Kompyuter, ekran, doska, bo’r, kitob, daftar
Dars uslubi: Aralash
Darsning borishi: a) O’tilganlarni takrorlash
b) Yangi mavzu bayoni
Ko'pincha ma’lum amallar majmuini dastuming 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 funksiyalami ularga murojaat etishda beriladigan ma’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:
Procedure
(parametrlar);
Funksiya sarlavhasi quyidagi umumiy ko'rinishga ega:
Function (parametrlar) : ;
Parametrli protsedura va funksiyalarda parametrlarning turlari ham tavsiflanadi. Masalan,
Function daraja (a, n : Integer):lnteger; yoki Procedure shifr(satr: String); Ко1 rib turganingizdek, protsedura va funksiyalar o‘xshash tuzilishga ega. Ularning tuzilishi dastuming 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 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.
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 qiymat- larini parametr sifatida olib, shu oraliqdagi butun sonlarning yig‘indisini hisoblovchi funksiyadan foydalanib ham yechish mumkin. misol. Uchburchakning berilgan tomonlari bo'yicha, uning baland- liklarini 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;
Begirr
yp:= (a+b+c)/2; {Perimetr yarmini hisoblash } 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= *, he: 10:4); Readln
End.
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(xl,у 1,х2,у2,хЗ,уЗ,col:Integer); begin
SetColor(col); Line(xl,yl,x2,y2); Line(x2,y2,x3,y3);
Line(x3,y3,xl,yl);
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.
Yuqorida keltirilgan dasturlarga e'tibomi qaratib, quyidagi xulosaga kelish mumkin: protsedura va funksiyalarga murojaat etish vaqtida funksiya nomi albatta biror operator tarkibida, protsedura nomi esa alohida (mustaqil yozilar ekan Mustahkamlash uchun savol va topshiriqlar
Do'stlaringiz bilan baham: |