Informatika-9-A,B. 33 – dars.
Mavzu: Parametrli takrorlash operatori
Maqsad:
1) ta’limiy: O`quvchilarga parametrli takrorlash operatori haqida tushuncha berish;
2) tarbiyaviy: O`quvchilarga iqtisodiy tejamkorlik tarbiyasi berish;
3) rivojlantiruvchi: o`quvchilarda takrorlanuvchi jarayonlarni dasturlash ko`nikmalarini rivojlantirish.
DTS: Parametrli takrorlash operatorining yozilishini va bajarilishini bilish.
Darsning borishi
I Tashkiliy davr.
II. Takrorlash.
III. Yangi mavzuni o`rganish
Aksariyat masalalarni yechishda ma’lum amallar ketma-ketligini bir necha marta takrorlash zarur bo‘ladi. Avvalgi bobda bu kabi masalalar bilan tanishdingiz va ularni hal qilish uchun takrorlanuvchi algoritmlar tuzdingiz. Endi takrorlanuvchi dasturlar tuzish usullari bilan tanishtiramiz.
Takrorlanuvchi dasturlar tuzish uchun takrorlash operatorlaridan foydalaniladi. Paskalda ular uchta bo‘lib, bu darsda ulardan bittasi – parametrli takrorlash operatori bilan tanishamiz. Mazkur operatorning umumiy ko‘rinishi quyidagicha:
For I: = N1 To N2 Do <takrorlanish tanasi>;
bu yerda For (uchun), To (gacha) va Do (bajar) Paskalning xizmatchi so‘zlari; I – butun turli ixtiyoriy o‘zgaruvchi bo‘lib, u takrorlash parametri deyiladi; N1 – takrorlash parametrining qabul qiladigan boshlang‘ich qiymati; N2 – takrorlash parametrining qabul qiladigan oxirgi qiymati; <takrorlanish tanasi> – takrorlanishi lozim bo‘lgan operator yoki operatorlar ketma-ketligi. Takrorlanish tanasini operatorlar ketma-ketligi tashkil etgan bo‘lsa, ular albatta begin ko‘rsatmasi bilan boshlanib, end; ko‘rsatmasi bilan tugallanadi. Takrorlash parametrining boshlang‘ich va oxirgi qiymatlari o‘zgarmas, o‘zgaruvchi yoki ifoda ko‘rinishida bo‘lishi mumkin.
Mazkur operator quyidagicha ishlaydi:
1. Avval takrorlash parametri boshlang‘ich qiymatni qabul qiladi;
2. Agar takrorlash parametrining qiymati oxirgi qiymatdan katta bo‘lmasa, takrorlash tanasini tashkil etuvchi operatorlar bajariladi, aks holda takrorlanish to‘xtatiladi va boshqarish navbatdagi operatorga uzatiladi;
3. Takrorlash parametrining qiymati bittaga ortadi (unga 1 qo‘shiladi) va 2-bandga o‘tiladi.
For operatori, asosan, takrorlanishlar soni avvaldan ma’lum bo‘lganda qo‘llaniladi.
1–misol. “O’zbekiston – vatanim manim!” matnini ekranga 20 marta chiqaruvchi dastur tuzing.
Yechish. Shartga ko‘ra ekranga “O’zbekiston – vatanim manim!” matni 20 marta chiqarilishi kerak. Ya’ni WriteLn(‘O’zbekiston – vatanim manim!‘) operatori 20 marta takrorlanishi lozim. Quyidagicha dastur tuzamiz:
Program Takrorlash;
Var I : Integer;
Begin
For I:=1 To 20 Do WriteLn(‘O’zbekiston – vatanim manim!‘);
End.
Ushbu dasturda takrorlash parametri I ning boshlang‘ich qiymati 1 ga, oxirgi qiymati 20 ga tengdir. Takrorlash tanasi bitta – WriteLn(‘O`zbekiston – vatanim manim!‘) operatoridan iborat. Dastur bajarilganda takrorlash parametri navbat bilan 1, 2, 3,…, 20 qiymatlarni qabul qiladi va har safar WriteLn(‘O`zbekiston – vatanim manim!‘); operatori bajariladi. Natijada ekranga “O’zbekiston – vatanim manim!” matni 20 marta yangi satrdan chiqariladi. Dasturda takrorlash parametrining boshlang‘ich qiymatini 41 va oxirgi qiymatini 60 ga o‘zgartirsak ham natija shunday bo’ladi, chunki takrorlanishlar soni 60–41+1=20 ta.
2–misol. Ekranga 1 dan 20 gacha bo‘lgan butun sonlarni o‘sish tartibida chiqaruvchi dastur tuzing.
Yechish. Ekranga chiqariladigan sonlarni S bilan belgilaymiz. Avval S:=0 deb olamiz. S ning qiymatini S:=S+1 yordamida bittaga orttirib WriteLn(S) yordamida ekranga chiqaramiz. Bu amallarni 20 marta takrorlash lozim, shuning uchun For operatoridan foydalanamiz.
Program Ketma_ketlik;
Var I, S : Integer;
Begin
S:=0;
For I:=1 To 20 Do begin S:=S+1; WriteLn(S); end;
End.
Umuman, takrorlash parametrini takrorlash tanasida ishlatish ham mumkin. Lekin uning qiymatini o‘zgartirib bo‘lmaydi. 2-misol dasturini tahlil qilib, takrorlanish davomida S o‘zgaruvchi I bilan bir xil qiymatlar qabul qilayotganligini ko‘rish mumkin. Shunday ekan, ekranga S ning o‘rniga I ni chiqarsa ham bo‘ladi. U holda dasturda S o‘zgaruvchini ishlatishga hojat qolmaydi. Bularni inobatga olib, dasturni quyidagicha o‘zgartiramiz:
Program Ketma_ketlik;
Var I : Integer;
Begin
For I:=1 To 20 Do WriteLn(I);
End.
3–misol. 1 dan 100 gacha butun sonlarni kamayish tartibida chop etuvchi dastur tuzing.
Yechish: Chop etiladigan sonlarni son, takrorlash parametrini i deb belgilaymiz.
Program Sonlar;
Var i,son : Integer;
Begin
son:=101;
For i:=1 to 100 Do Begin son:=son–1; WriteLn(son); end;
End.
For operatorida takrorlash parametri katta qiymatdan kichik qiymatga qarab kamayib borishi ham mumkin. Buning uchun To xizmatchi so‘zi o‘rniga Downto xizmatchi so‘zi ishlatiladi. Buni hisobga olib yuqoridagi dasturni quyidagicha soddalashtirish mumkin:
Program Sonlar;
Var i : Integer;
Begin
For i:=100 Downto 1 Do WriteLn(i);
End.
4–misol. 1 dan 21 gacha bo’lgan toq sonlar yig’indisini hisoblash dasturini tuzing.
Yechish: 1 dan 21 gacha bo’lgan sonlarni qarab chiqish uchun takrorlash operatori parametrini ishlatish mumkin. S=1+2+3+…+21 yig’indidagi qo’shiluvchilar 255 dan katta emas, demak, bu holda parametr uchun byte, S butun va manfiy bo’lmagani uchun word turini tanlash mumkin. Indekslarni toqligini tekshirish uchun Odd(x) funksiyasidan foydalanish qulay.
Program Summ;
Var s: word; i: byte;
Begin
S:=0;
For i:=1 to 21 Do If odd(i) then S:=S+i;
WriteLn(‘S= ‘, S);
End.
5–misol. Berilgan A[1..21] massivni juft indeksli elementlari yig’indisini hisoblash dasturini tuzing.
Yechish: Massivni kiritish va indekslarini qarab chiqish uchun yana takrorlash operatori parametridan, indekslarni juftligini tekshirish uchun NOT(Odd(x)) dan foydalanamiz.
Program Massiv;
Var i: Integer; s: real;
a: array[1..21] of real;
Begin
For i:=1 to 21 Do Begin WriteLn(‘a[‘, i, ‘]= ‘); readln(a[i]); end;
S:=0;
For i:=1 to 21 Do If NOT(odd(i)) then S:=S+a[i];
WriteLn(‘S= ‘, S); readln;
End.
Ko’rib turganingizdek, massivlarni kiritish, chiqarish va ularni indekslarini sanash kabi vazifalarni bajarish uchun parametrli takrorlash operatori juda qulaydir.
IV. Mustahkamlsh.
1. Parametrli takrorlash operatorining ko‘rinishi qanday?
2. Takrorlash parametri qanday qiymatlarni qabul qiladi?
3. Parametrli takrorlash operatorining boshlang’ich va oxirgi qiymatlarini izohlang.
4. Takrorlash parametrining qiymatlari chegaralanganmi?
5. Takrorlash operatorini ishlashini tushuntiring.
6. Qanday vaziyatda To o’rniga Downto xizmatchi so‘zi ishlatiladi?
1. Quyidagi operatorlardagi takrorlanishlar sonini aniqlang.
a) for i:=1 to 88 do b:=1; b) for i:=73 to 161 do m:=2; d) for i:= -21 to 0 do a:=3;
88-1+1=88 marta 161-73+1=89 marta 0-(-21)+1=22 marta
e) a:=5; b:=34; for i:=a+7 to b-1 do s:=s+1;
b-1-(a+7)+1=b-1-a-7+1=b-a-7=34-5-7=22 marta.
3. funksiyaning qiymatini x ning [–15;5] oraliqdagi butun qiymatlarida hisoblash dasturini tuzing.
Program funksiya;
Var x,y: integer;
Begin
For x:-15 to 5 do begin y:=23*x; writeln(‘x=’,x,’ da y=‘,y); end;
Readln; end.
4. A[1..17] massiv berilgan. Massivning nolga teng elementlarini indeksini chiqaruvchi dastur tuzing.
5. funksiyaning qiymatini x ning [0, 10] oraliqda 0.25 qadam bilan hisoblash dasturini tuzing (yo’llanma: i=0 da x=0; i=1 da x=0,25; …; i=40 da x=10).
Program funksiya;
Var i: intejer;
x,y: real;
begin
for i:=1 to 40 do begin x:=0,25*i; y:=2*x+19; writeln(‘x=’,x,’ da y=‘,y); end;
readln; end.
V. Uyga vazifa
1 b)e) mashqlar
© ООО «Знанио»
С вами с 2009 года.