Darslar 47–48 · 2 ta dars · M. R. Fayziyeva, D. M. Sayfurov, N. S. Xaytullayeva. Informatika va axborot texnologiyalari, 9-sinf. «Nashriyot uyi Tasvir», Toshkent, 2020
48
Amaliy mashg‘ulot: funksiyalar
Darslik: 95-bet
MaqsadAmaliy mashg‘ulotda funksiya va protseduralar yordamida masalalarni yechadi: eng kattasini topadi, juft sonlarni chiqaradi, funksiyani boshqa funksiya ichida chaqiradi.
Yangi so‘zlar
funksiyani chaqirish · calling a function: writing its name with the values in bracketsichma-ich chaqiruv · nested call: the result of one call is used as an argument of anotherprotsedura · procedure: a function that prints but returns no valueo‘rnatilgan nom · built-in name: names like max, len, print that should not be used for your own functions
Tushuntirish
Funksiyalar bilan ishlashda avval funksiyaning vazifasi bitta jumlada aytiladi: «ikki sonning kattasini qaytaradi», «n gacha bo‘lgan juft sonlarni chiqaradi». Birinchisi qiymat qaytaradi (return), shuning uchun natijani boshqa ifodada ishlatish mumkin: katta(katta(a, b), c) – uch sonning kattasi. Ikkinchisi natijani darrov ekranga chiqaradi va qiymat qaytarmaydi, ya’ni protsedura. Nomni mazmuniga qarab tanlang va o‘rnatilgan max, len kabi nomlardan qoching; shuning uchun kattaligini topuvchi funksiyaga biz katta nomini berdik. Funksiyani yozgandan keyin uni kamida ikki xil qiymat bilan chaqirib sinang. Funksiya e’lon qilinishi uning chaqirilishidan oldin turishi kerak, aks holda NameError chiqadi.
Namunalar
Uch sonning kattasi: def katta(a, b): ⏎ if a > b: ⏎ return a ⏎ else: ⏎ return b ⏎ a = int(input()) ⏎ b = int(input()) ⏎ c = int(input()) ⏎ print(katta(katta(a, b), c)) 14, 31, 22 uchun 31 chiqadi.
Juft sonlar protsedurasi: def juftlar(n): ⏎ for i in range(2, n + 1, 2): ⏎ print(i, end=" ") ⏎ juftlar(10) juftlar(10) ekranga 2 4 6 8 10 chiqaradi va hech qanday qiymat qaytarmaydi.
Sinfda faoliyat
«Funksiyalar kutubxonasi»: guruh 3 ta kichik funksiyani yozadi (kichigi, kvadrat, raqamlar yig‘indisi) va bir faylga to‘playdi; boshqa guruh ularni o‘z masalasida chaqirib ishlatadi.
Mashq
1
Uch sonning kichigini topish uchun kichik(a, b) funksiyasidan foydalanib dastur yozing (9, 4, 6 da 4).
def kichik(a, b): ⏎ if a < b: ⏎ return a ⏎ else: ⏎ return b ⏎ print(kichik(kichik(9, 4), 6))
2
Uch sonning o‘rta arifmetigini qaytaruvchi ortacha(a, b, c) funksiyasini yozing va ortacha(4, 5, 9) ni chiqaring (6.0).
def ortacha(a, b, c): ⏎ return (a + b + c) / 3 ⏎ print(ortacha(4, 5, 9))
3
juftlar(7) ekranga nima chiqaradi?
2 4 6
4
Nima uchun o‘z funksiyamizni max deb nomlamaslik ma’qul?
max o‘rnatilgan funksiya; o‘z nomimiz uni «yopib» qo‘yadi va boshqa joylarda chalkashlik chiqishi mumkin.