☰ Mundarija · Informatika

Lokal va global o‘zgaruvchilar, EKUB funksiyasi

Darslar 49–50 · 2 ta dars · M. R. Fayziyeva, D. M. Sayfurov, N. S. Xaytullayeva. Informatika va axborot texnologiyalari, 9-sinf. «Nashriyot uyi Tasvir», Toshkent, 2020
50

Amaliy mashg‘ulot: funksiyalar va Yevklid algoritmi

Darslik: 98–99-betlar
MaqsadAmaliy mashg‘ulotda Yevklid algoritmi bilan ikki sonning EKUBini topadi, uni funksiya sifatida yozadi va kasrni qisqartirish hamda EKUK topishda qo‘llaydi.
Yangi so‘zlar
EKUB · EKUB: the greatest common divisor of two numbers (gcd)Yevklid algoritmi · Euclidean algorithm: repeat (a, b) → (b, a % b) until b is 0EKUK · EKUK: the least common multiple, which equals a * b // EKUB(a, b)kasrni qisqartirish · reducing a fraction: dividing numerator and denominator by their EKUB
Tushuntirish

Ikki sonning eng katta umumiy bo‘luvchisini (EKUB) tub ko‘paytuvchilarga ajratib topish kompyuter uchun qulay emas; Yevklid algoritmi esa qisqa va tez. Uning g‘oyasi: a ni b ga bo‘lib qoldiq olinadi, so‘ng (a, b) o‘rniga (b, qoldiq) olinadi; bu ish b nolga teng bo‘lguncha takrorlanadi va oxirida a EKUB bo‘ladi. Masalan, (84, 36) → (36, 12) → (12, 0), demak EKUB = 12. Pythonda bu ikki qatorli sikl: while b != 0: ⏎     a, b = b, a % b – bunda o‘rin almashtirish ham, qoldiq ham bir satrda bajariladi. EKUB topilgach, kasrni qisqartirish (ikkalasini EKUB ga bo‘lish) va EKUK = a * b // EKUB ni topish juda oson. Algoritm har doim to‘xtaydi, chunki qoldiq har gal kamayib boradi va oxiri nolga yetadi.

Namunalar
EKUB funksiyasi: def ekub(a, b): ⏎     while b != 0: ⏎         a, b = b, a % b ⏎     return a ⏎ print(ekub(84, 36)) ekub(84, 36) = 12.
Kasrni qisqartirish: def ekub(a, b): ⏎     while b != 0: ⏎         a, b = b, a % b ⏎     return a ⏎ g = ekub(18, 24) ⏎ print(18 // g, 24 // g) 18/24 kasr 3/4 bo‘ladi (EKUB = 6). EKUK: def ekub(a, b): ⏎     while b != 0: ⏎         a, b = b, a % b ⏎     return a ⏎ print(12 * 18 // ekub(12, 18)) 12 va 18 ning EKUK i 36.
Sinfda faoliyat

«Qoldiq zanjiri»: juftliklar o‘z ikki sonini tanlab, (a, b) → (b, a % b) zanjirini daftarda yozadi va EKUB ni topadi; so‘ng dasturda tekshiradi.

Mashq
1
48 va 18 sonlarining EKUBini toping (Yevklid algoritmi bilan).
2
(84, 36) dan boshlab zanjirni yozing: har bir qadamdagi (a, b) juftligini ko‘rsating.
3
Kasrni qisqartirish: 45/60 kasrning suratini va maxrajini toping.
4
Nima uchun Yevklid algoritmi albatta to‘xtaydi?