16-qism
def find_512():
for x in range(100):
for y in range(100):
if x * y == 512:
break # biz xohlagan amalni bajarmaydi!
return f"{x} * {y} == 512"
1-savol
Ushbu xatolikka ega find_512 funksiyasini ishga tushiring. U nima qaytaradi?
Izoh: x*y=512 (u 29 teng) tenglik birinchi marta x = 8 (23) va y = 64 (26) bo‘lganda bajariladi, lekin break bayonoti faqatgina y uchun sikldan chiqaradi va tashqi sikl uchun x = 9 qiymatdan ishlashni davom etadi. Keyin x*y=512 tenglik ushbu holatlarda bajariladi:
x = 24 va y = 25,
x = 25 va y = 24,
x = 26 va y = 23
Ya’ni jami 4 marta bajariladi (buni o‘quvchilarga o‘ylab ko‘rish uchun savol sifatida berish mumkin).
2-savol
Sizningcha, ushbu yondashuvlardan qaysi biri xatoni tuzatishga imkon beradi?
Izoh: Kerakli qiymatlar topilganidan keyin ikkala sikldan chiqib ketish uchun shunchaki return iborasidan foydalanish kifoya. “break” bayonotini ikki marta ishlatish sintaksis xatoga olib keladi
Qo‘shimcha savol sifatida o‘quvchilardan so‘rash mumkin, dasturga qanday o‘zgartirishlar kiritilsa, u barcha tenglik bajariladigan hollarni chop etadi? Javob:
Do'stlaringiz bilan baham: |