20-AMALIY MASHG’ULOT
Amaliy mashg’ulotning maqsadi: Paskal dasturlash tilida qism dastur tushunchasi, fuksiya va protseduralar, ularning yozilishi, amallarning bajarilish tartibi va dasturda ishlatilishini o’rganish.
Amaliy mashg’ulot natijasi : Paskal dasturlash tilida qism dastur tushunchasi, fuksiya va protseduralar, ularning yozilishi, amallarning bajarilish tartibi va dasturda ishlatilishini o’rganish va ulardan amaliy masalalarga dastur tuzishda foydalanish malakasiga ega bo’lish.
Amaliy ish rejasi rejasi:
Nazariy ma’lumotlar. Dasturlash jarayonida murakkab dasturlarning bir necha joyida bir xil vazifani bajaruvchi operatorlar guruhini qo`llashga to`g`ri keladi va dasturda bir-biriga aynan o`xshash bir nechta qismlar vujudga keladi. Kompyuter xotirasini va dastur tuzuvchining vaqtini tejash maqsadida ushbu qismdagi o`xshash operatorlar bir marta asosiy dasturdan ajratib yoziladi va unga asosiy dastur bajarilishi jarayonida murojaat qilinadi. Dasturning ixtiyoriy qismidan murojaat qilib, bir necha bor ishlatish mumkin bo`gan bunday operatorlar guruhiga qism dastur deb ataladi va u asosiy dastur bilan bir butunni tashkil etadi.
Qism dasturlarni ishlatish dasturning hajmini kichraytiradi va uning ko`rinishini, o`qilishini hamda xatolar sonining kamayishiga olib keladi.
Protsedura qism dasturi va unga murojaat. Protsedura qism dasturi qism dasturda bir necha natija hosil qilish kerak bo`lgan hollarda ishlatiladi. Har bir protsedurani tasvirlash sarlavhadan boshlanadi. Protsedura sarlavhasining umumiy ko`rinishi quyidagicha:
Procedure < nom > (< soxta parametrlar ro`yxati >);
bu yerda procedure - xizmatchi so`z; <nom> - protseduraning nomi; <soxta parametrlar ro`yxati> - turlari ko`rsatilgan va natijalarni ifodalaydigan nomlar turlari bilan sanab o`tiladigan qator.Formal parametrlar ro`yxatida parametr-qiymat, parametr-o`zgaruvchilar (bulardan oldinda var xizmatchi so`zi turishi shart), parametr-protseduralar (bularning oldida procedure xizmatchi so`zi turishi kerak) va parametr-funktsiyalar (bularning oldida function xizmatchi so`zi turishi kerak) bo`lishi mumkin.
1-misol. y= xn ni protsedura shaklida ifodalang.
Yechish.
procedure Step2(n; integer; x: real; var y: real);
var i: integer;
begin
y:= 1;
for i:=1 to n do
y:= y*x
end;
Bunda protseduraning nomi Step2 bo`lib, soxta parametrlar ro`yxatida esa berilganlarni aniqlovchi parametrlar - n, x va protsedura natijasini ifodalovchi prametr – y turlari bilan sanab o`tilgan. Protsedurani bajarish uchun asosiy dasturning ixtiyoriy joyidan unga murojaat qilish kerak. Protseduraga murojaat va uni bajarish quyidagi operator yordamida amalga oshiriladi: < protsedura nomi > (< aniq parametrlar ro`yxati >);
Bunda qism dastur tasvirida keltirilgan protseduraga murojaat qilishda soxta va aniq parametrlar orasida to`liq moslik bo`lishi shart, ya’ni soxta va aniq parametrlar soni bir xil bo`lishi, kelish tartiblari mos tushushlari va ularning turlari bir xil bo`lishi kerak.
2-misol.
bunda 1/a-m = (1/a)-m ekanini e’tiborga olsak, u holda dastur quyidagicha bo’ladi:
Program Step2;
Var m: integer ; a, z: real ;
procedure step1 (n: integer; x: real; var y: real);
var i: integer;
begin y:= 1; for i:= 1 to n do y:= y*x; end;
begin read(a, m);
if m= 0 then z:=1 else
if m >0 then step2(m, a, z) else step2(-m, 1/a, z);
writeln(a:8:3, m:3, z)
end.
Dostları ilə paylaş: |