☰ Mundarija · Informatika

Mantiqiy ifodalar amaliyoti va if…else operatori

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
37

Tarmoqlanuvchi algoritmlarni dasturlash. if…else operatori

Darslik: 76–78-betlar
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?
2
Hisob summasi s kiritiladi. Agar s 100000 yoki undan ko‘p bo‘lsa, 10% chegirma beriladi. Dastur yozing (150000 da 135000).
3
Quyidagi dastur bajarilgach, y nimaga teng bo‘ladi? x = 4 ⏎ if x % 2 == 0: ⏎     y = x // 2 ⏎ else: ⏎     y = 3 * x + 1
4
Nima uchun else dan keyin shart yozilmaydi?