Darslar 36–37 · 2 ta dars · M. R. Fayziyeva, D. M. Sayfurov, N. S. Xaytullayeva. Informatika va axborot texnologiyalari, 9-sinf. «Nashriyot uyi Tasvir», Toshkent, 2020
MaqsadTarmoqlanuvchi algoritm va if, if…else operatorlarining tuzilishini biladi, chekinish qoidasiga amal qilib, bitta shartga ko‘ra ikki yo‘ldan birini tanlaydigan dastur yozadi.
Yangi so‘zlar
tarmoqlanuvchi algoritm · branching algorithm: the choice of which commands to carry out depends on a conditionif · if: runs its block only if the condition is Trueelse · else: the block run when the if condition is Falseblok · block: the lines under if or else, indented by four spaces
Tushuntirish
Tarmoqlanuvchi algoritmda shart tekshiriladi va natijaga qarab buyruqlarning bir yoki boshqa guruhi bajariladi. Pythonda buning uchun if shart: yoziladi; shartdan keyin ikki nuqta turadi, bajariladigan satrlar esa keyingi qatordan 4 ta probel chekinish bilan yoziladi – ular if bloki deyiladi. Shart True bo‘lsa, blok bajariladi, aks holda o‘tkazib yuboriladi. else: bilan qo‘shimcha blok beriladi: shart False bo‘lganda shu blok ishlaydi; else ning o‘zida shart yozilmaydi va u if bilan bir tekis, ya’ni bir xil chekinishda turadi. Chekinish bu yerda tilning qoidasi: uni unutsangiz IndentationError chiqadi. Blok-sxemada shart romb bilan ko‘rsatiladi va undan «ha» hamda «yo‘q» deb belgilangan ikkita strelka chiqadi. Ikki yo‘ldan keyin ular yana birlashadi va dastur umumiy qismdan davom etadi.
Namunalar
Musbat yoki yo‘q: n = int(input()) ⏎ if n > 0: ⏎ print("musbat") ⏎ else: ⏎ print("musbat emas") -3 kiritilsa, shart yolg‘on, shuning uchun else bloki ishlaydi va musbat emas chiqadi.
Juft yoki toq: n = int(input()) ⏎ if n % 2 == 0: ⏎ print("juft") ⏎ else: ⏎ print("toq") 7 % 2 = 1, shart yolg‘on, shuning uchun toq chiqadi. Chegirma bilan: s = int(input()) ⏎ if s >= 100000: ⏎ s = s - s // 10 ⏎ print(s) 100000 yoki undan ko‘p bo‘lsa, summadan o‘ndan bir qismi ayiriladi; 150000 uchun 135000.
Sinfda faoliyat
«Odam-dastur»: sinf ikki yarmiga bo‘linadi; bir qism «sharti» kartochkalarini (yosh >= 14, son juft) ushlaydi, boshqa qism «ha» yoki «yo‘q» yo‘llariga yurib blok-sxemani jonli ijro etadi.
Mashq
1
if x > 3: dan keyin print(x) chekinishsiz yozilsa, qaysi xato chiqadi?
IndentationError
2
Hisob summasi s kiritiladi. Agar s 100000 yoki undan ko‘p bo‘lsa, 10% chegirma beriladi. Dastur yozing (150000 da 135000).
s = int(input()) ⏎ if s >= 100000: ⏎ s = s - s // 10 ⏎ print(s)
3
Quyidagi dastur bajarilgach, y nimaga teng bo‘ladi? x = 4 ⏎ if x % 2 == 0: ⏎ y = x // 2 ⏎ else: ⏎ y = 3 * x + 1
2
4
Nima uchun else dan keyin shart yozilmaydi?
else if shart False bo‘lgan barcha boshqa holatlar uchun ishlaydi, shuning uchun alohida shart kerak emas.