Takrorlash uchun savol va topshiriqlar
1. Formal va argumentlarning farqini tushuntiring.
2. Oraliq o‘zgaruvchi nima va undan qachon foydalaniladi?
3. Funksiyalar qachon va qanday tashkil qilinadi?
4. Funksiyalarning umumiy tarkibini aytib bering.
5. Funksiyalardan qanday foydalanish mumkin?
6. Funksiyalarni qayta yuklash nima?
7. Quyidagi masalalar uchun dastur ishlab chiqing.
a) k, l va m natural sonlari hamda x1, ..., xn, y1, ..., ym, z1, ..., zm haqiqiy sonlari berilgan bo‘lsin. Hisoblang:
.
b) s va t haqiqiy sonlari berilgan bo‘lsin. Hisoblang:
h(s,t)+max(h2(s−t, st), h4(s−t, s+t))+h(1+s, 1+t).
Bu yerda .
c) a, b, c va d natural sonlari berilgan. Bu sonlar uchun a/b va c/d kasrlarni qisqarmaydigan ko‘rinishga keltiring. (Ikki natural sonning eng katta umumiy bo‘luvchisini topish funksiyasidan foydalaning.)
d) x1, y1, ... , x10, y10 haqiqiy sonlari berilgan bo‘lsin. O‘nburchak uchlarining koordinatalari mos ravishda (x1,y1), ... , (x10,y10) bo‘lsin. Shu o‘nburchakning perimetrini toping. (Koordinatalari berilgan kesma uzunligini topish funksiyasidan foydalaning.)
e) N > 2 natural soni berilgan bo‘lsin. Bu son uchun Goldbax gipotezasini tekshiring. (Sonni tub yoki tub emasligini topish funksiyasidan foydalaning.)
5-§. ISTISNO QILINADIGAN HOLATLARNI QAYTA ISHLASH
5.1. Xatoliklarni qayta ishlashning umumiy mexanizmi
Istisno qilinadigan holatlar (kutilmagan bir qator vaziyatlar ro‘y berganda) dastur o‘z vazifasini bajara olmay qolishi mumkin. Nolga bo‘linish, mavjud bo‘lmagan xotira qismiga murojaat qilish mumkin bo‘lgan ana shunday holatlardan sanaladi.
Istisno qilinadigan holatlarni qayta ishlash (sodda qilib xatoliklarnui tutib qolish deb aytish mumkin) – dasturning bajarilishi jarayonida oldindan kutilmagan holatlar yuzaga kelganda mos ravishda javob reaksiyasini belgilab qo’yishni nazarda tutadi.
Python tili istisno qilinadigan holatlar sodir bo‘lganda dastur o‘zini qanday tutishini belgilab qo‘yish uchun dasturchilarga bir qator vositalarni taklif qiladi.
Dasturdagi xatoliklar uch guruhga bo`linadi: sintaktik (dastur matnidagi) va algoritmik hatoliklar va bajarilish vaqtidagi hatoliklar. Sintaktik hatoliklar eng oson tuzatiladigan hatolik hisoblanadi. Odatda interpretator dasturni ishga tushirishdan avval bunday hatoliklarni aniqlaydi va otladka qilish jarayonida bartaraf qilinadi. Algoritmik hatoliklarni aniqlash esa murakkabroq. Bunday hatoliklar masalani hal qilishning noto’g’ri usulini tanlash oqibatida yuzaga kelishi mumkin. Dastur matnidagi mavjud xatoliklarni aniqlash va bartaraf etish jarayoni boshlang’ich kiritiladigan ma`lumotlar uchun dastur kutilgan ishonchli natija berganidan keyingina tugallangan deb hisoblanadi. 3-tur xatoliklar esa faqat dastur bajarilayotgan vaqtda yuzaga kelishi mumkin. Bunday xatoliklar dastur ishini to‘xtatib qo‘yadi. Dasturchi bajarilish vaqtidagi hatoliklar oldini olishi, ya’ni dastur har qanday holda ham o‘z ishini davom ettirib, kutilgan natijani berishini ta’minlashi lozim. Buning uchun dasturchidan bajarish vaqtida hatoliklarni yuzaga keltirishi mumkin bo’lgan turli mazmundagi sabablarni hisobga olishi va ularning har biri sodir bo‘lgan hol uchun dasturning javob reaksiyasini belgilab qo‘yishi talab qilinadi.
Python interpretatori bajarish vaqtidagi hatoliklar yuzaga kelganligi haqida standart ma’lumotlarni ekranga chiqaradi. Ko’pincha bunday ma’lumotlar oddiy foydalanuvchilar uchun tushunarli bo’lmaydi. Bu muammoni dasturchi dasturning javob reaksiyasini belgilalayotgan vaqtda hal qilishi mumkin. Buning uchun u qayta ishlagichlarni tashkil qilishi lozim. Istisno qilinadigan holatlarni tutob qolish va ularni qayta ishlash try bilan boshlanadigan nazorat bloklarida amalga oshiriladi.
Eng ko’p chraydigan istisno qilinadigan vaziyat sifatida quyidagilarni keltirib o’tish mumkin:
nolga bo’linish;
mavjud bo’lmagan o’zgaruvchiga murojaat;
mavjud bo’lmagan faylga murojaat;
belgilangan diapazondan chetdagi elementga murojaat.
Quyidagi jadvalda shu va shunga o’xshash istisno qilinadigan vaziyatlar uchun Python tilida aniqlangan ularning tiplari keltirilgan.
Do'stlaringiz bilan baham: |