Darslar 40–41 · 2 ta dars · M. R. Fayziyeva, D. M. Sayfurov, N. S. Xaytullayeva. Informatika va axborot texnologiyalari, 9-sinf. «Nashriyot uyi Tasvir», Toshkent, 2020
41
Takrorlanuvchi algoritmlarni dasturlash. for operatori
Darslik: 82–84-betlar
Maqsadfor sikli va range(start, stop, step) tuzilishini biladi, takrorlanishlar sonini hisoblaydi, yig‘indi hisoblagan sikl yozadi va ichma-ich sikllarning ishlashini tushuntiradi.
Yangi so‘zlar
for sikli · for loop: a counted loop used when the number of repetitions is known beforehandrange() · range(): produces the numbers for a loop; the stop value is not includediteratsiya · iteration: one pass through the loop bodyichma-ich sikl · nested loop: a loop inside the body of another loop
Tushuntirish
Bir xil ishni bir necha marta bajarish kerak bo‘lsa, takrorlash (sikl) ishlatiladi; takrorlanishlar soni oldindan ma’lum bo‘lsa, for qulay. Yozuvi: for i in range(start, stop, step): – keyingi qatorda 4 ta probel chekinish bilan sikl tanasi turadi. i – sikl o‘zgaruvchisi bo‘lib, har bir iteratsiyada keyingi qiymatni oladi; start – boshlang‘ich qiymat (aytilmasa 0), step – qadam (aytilmasa 1), stop esa siklga kirmaydi: range(1, 6) beradigan sonlar 1, 2, 3, 4, 5. Kamayish tartibida qadam manfiy bo‘ladi: range(5, 0, -1) – 5 dan 1 gacha. Sikl ichida yana sikl yozish mumkin; tashqi sikl bir marta aylansa, ichki sikl to‘liq aylanib chiqadi, shuning uchun 3 × 3 sikl 9 marta bajariladi. Yig‘indi hisoblashda sikl oldidan s = 0 yoziladi, siklda esa s += i qilinadi.
Namunalar
Yig‘indi: s = 0 ⏎ for i in range(1, 11): ⏎ s += i ⏎ print(s) 1 dan 10 gacha sonlar yig‘indisi 55. Jadval: for i in range(1, 4): ⏎ for j in range(1, 4): ⏎ print(i * j, end=" ") ⏎ print() Natija 3 ta qator: 1 2 3, 2 4 6, 3 6 9.
Qadam: for i in range(1, 16, 3): ⏎ print(i, end=" ") 1 4 7 10 13 chiqadi (16 kirmaydi). Kamayish: for i in range(9, 0, -2): ⏎ print(i, end=" ") 9 7 5 3 1 chiqadi (0 kirmaydi).
Sinfda faoliyat
«Sikl hisoblagichi»: guruh 6 ta range() yozuvini (range(5), range(2, 9), range(1, 20, 5), range(8, 0, -2) ...) oladi, har birining iteratsiyalar sonini va sonlarini oldin daftarda topadi, so‘ng IDLE da list(range(...)) yoki sikl bilan tekshiradi.
Mashq
1
range(3, 20, 4) nechta qiymat beradi?
5
2
2 dan 20 gacha juft sonlarni bir qatorda chiqaruvchi sikl yozing.
for i in range(2, 21, 2): ⏎ print(i, end=" ")
3
1 dan 5 gacha sonlar kvadratlari yig‘indisini toping.
55
4
Nima uchun range(1, 6) da 6 soni bo‘lmaydi?
stop qiymati siklga kirmaydi; range 1 dan boshlab 6 dan oldingi sonlarni beradi.