Shartli o’tish operatori.
Yuqorida ko’rib o’tilgan dasturlardagi chiziqli tuzilishga ega bo’lib, bajariladigan amallar va ko’rsatmalar bevosita ketma-ket bajarilishi talab qilingan edi. Ayrim masalalarni yechishda shartlar qo’yilgan bo’ladi. Shartning chin yoki yolg’onligiga qarab masalaning u yoki bu qismini bajarishga to’g’ri keladi. Bunday masalalarga dastur tuzishda masala shartiga qarab shartning chin yoki yolg’onligiga asosida dasturning bajarilish ketmaketligi o’zgartiriladi. Bunday masalalar juda ko’plab uchraydi.
Umumiy holda shartli o’tish operatorining umumiy sintaksisini quyidagicha ifodalash mumkin:
if Shart:
Shart chin bo’lganda bajariladigan ko’rsatmalar, operatorlar ketma-ketligi
else:
Shart yolg’on bo’lganda bajariladigan ko’rsatmalar, operatorlar ketma-ketligi
Masala. x sonning modulini aniqlash blok-sxemasi va dasturi tuzilsin.
Dastur x > 0 bo’lsa, x ni oynaga chiqarishi, aks holda –x ni chiqarishi kerak bo’ladi. Bunday holda dasturning bajarilish ketma-ketliini o’zgartirishga to’g’ri keladi. Ushbu masalaning sxematik ko’rinishini quyidagicha tushuntirish mumkin bo’ladi.
Bunday masalalarga dastur tuzishda Python dasturlash tilida if operatoridan foydalaniladi. Uning bichimi (sintaksisi)ni quyidagi uch xil ko’rinishda yozish mumkin:
1) if e1 e2: operator
2) if e1 e2: operator1
else: operator2
3) if e1 e2: operator1
elif e3 e4: operator2
elif e5 e6: operator3
. . .
elif ek el: operatorN
else: operatorM
Bunda if (agar) operator nomi, e1 e2 tekshirilayotgan shart (shartlar kichik qavs ichida yozilishi ham mumkin), elif (aks holda agar) va else (aks holda) yordamchi so’zlar, - tekshirilayotgan shart (>, <, >=, <=, <>, = munosabat amallaridan biri), operator, operator1, operator2, … tekshirilayotgan shart chin bo’lganda bajarilishi kerak bo’lgan faqat bitta operator, operatorN yuqoridagi shartlar bajarilmasa, ya’ni yolg’on bo’lganda bajarilishi kerak bo’lgan operator. e1, e2, … el – o’zgaruvchi, arifmetik ifoda, xususiy holda son bo’lishi mumkin.
E’tibor bergan bo’lsangiz bu erda e1 e2 shartdan so’ng “:” ikki nuqta belgisi qo’yilishi va undan so’ng faqat bitta operatordan foydalanish mumkin ekan. Demak, if (agar) e1 e2 munosabat chin (true) bo’lsa, ya’ni bajarilsa bitta operator bajariladi.
Yuqoridagi masala uchun dastur kodini yozib ko’raylik:
x = float(input(x))
if (x < 0) : x = -x
print (x)
Dastur kodining birinchi satrida x soni kiritilib, haqiqiy songa aylantirildi.
Ikkinchi satrida x soni noldan kichik bo’lsa, u –x ga aylantirildi.
Uchinchi satrda x soni oynaga chiqarildi.
Haqiqatdan ham x = 3 bo’lsa, 3 < 0 shart bajarilmaganligi uchun boshqarish keyingi satrga beriladi. Bu erda print operatori 3 sonini ekranga chiqaradi.
x ga -3 qiymati berilsa, ikkinchi satrda shart bajariladi va x soni -(-3) ga, ya’ni 3 ga aylantiriladi, keyingi uchinchi satr 3 qiymatini oynaga chiqaradi.
Bu dasturda uchinchi satr har qanday holatda ham bajariladi.
Python dasturlash tilining instruktsiyasi bo’yicha if operatorining yozilishida takshirilayotgan shartdan so’ng ikki nuqta qo’yiladi. Operator esa keyingi satrdan boshlanib to’rtta probel belgisidan so’ng, xech bo’lmaganda bitta probeldan so’ng yozilishi tavsiya qilinadi.
1) if e1 e2:
operator
2) if e1 e2:
operator1
else:
operator2
3) if e1 e2:
operator1
elif e3 e4:
operator2
elif e5 e6:
operator3
. . .
elif ek el:
operatorN
else: operatorM
Misol sifatida quyidagi masalani ko’rib o’taylik.
Misol.
ni hisoblash dasturi tuzilsin, bunda a butun son.
Yechish. Masalada trigonometrik funksiya qatnashayotganligi uchun math modulidan foydanashimiz kerak bo’ladi. Shuning uchun ushbu modulni import math yuklab olishimiz kerak bo’ladi. x o’zgaruvchi sinus funksiyasining argumenti bo’lganligi uchun unga haqiqiy son berish kerak bo’ladi. Ushbu misolimizda agar x > 1 bo’lsa y=2sinx + a ning qiymatini hisoblash, aks holda y=2a – 1 funksiyasining qiymatini hisoblash so’ralgan. Dastur kodi quyidagicha yoziladi.
Do'stlaringiz bilan baham: |