214-guruh talabasi Abdurashidov Qutbiddin Laboratoriya №5

214-guruh talabasi Abdurashidov Qutbiddin
Laboratoriya №5
Python dasturlash muhitida funksiya va protseduralardan foydalanish.
I. Ishdan maqsad: Python dasturlash muhitida funksiyalardan foydalanib dasturlar tuzish.
II.Kerakli jihozlar: Zamonaviy kompyuter. Python dasturi. Konspekt daftarlari. 220 V kuchlanish, internet.
Nazariy ma’lumotlar.
Funksiya - bu bitta, bog'liq bo'lgan harakatni amalga oshirish uchun ishlatiladigan uyushgan, qayta ishlatilishi mumkin bo'lgan kodlar bloke.
Funksiyalar def kalit so’zi bilan hosil qilinadi. def so`zidan so`ng funksiya nomi va qavs ichida formal parametrlar ro`yxati ko`rsatiladi. Funksiya tanasini hosil qiluvchi instruksiyalar keying qatordan boshlab bo`sh joy(отступь) bilan yoziladi. Quyidagi kodimiz ishga tushsa, bizga hech qanday natija bermaydi. Chunki biz faqat funksiya hosil qilgan bo’lamiz:
def my_func():
print("Funksiya ishga tushdi")
my_func()
III. ISHNI BAJARISH TARTIBI: Topshiriqni bajarish namunalar: Masala. Ikki sonning yig‘indisi va ko‘paytnasini hisoblovchi kop(x,y) funksiya yarating va bu funksiya natijasidan foydalanish dasturini tuzing.
Mustaqil bajarish uchun variantlar:
1.Chapga siklik siljishni amalga oshiruvchi ShiftLeft3(A, B, C) funksiyasini hosil qiling. Ya'ni C ning qiymati B ga, B ning qiymati A ga, A ning qiymati C ga o‘tib qolsin. Bu funksiya orqali (A1, B1, C1) va (A2, B2, C2) sonlarini siljiting.
def ShiftLeft3(A, B, C):
temp = A
A = B
B = C
C = temp
return A, B, C
A1, B1, C1 = 3, 1, 7
A2, B2, C2 = 5, 8, 6
A1, B1, C1 = ShiftLeft3(A1, B1, C1)
A2, B2, C2 = ShiftLeft3(A2, B2, C2)
print("A1 =", A1, "B1 =", B1, "C1 =", C1)
print("A2 =", A2, "B2 =", B2, "C2 =", C2)
|
|
3. Kvadrat tenglamaning ildizlar sonini aniqlovchi funksiya hosil qiling. A* x 2+B*x+C=0 ko‘rinishidagi tenglama kvadrat tenglama deyiladi. (A noldan farqli son)
def ildizlar_soni(A, B, C):
D = B**2 - 4*A*C
if D > 0:
x1 = (-B + D**0.5) / (2*A)
x2 = (-B - D**0.5) / (2*A)
return 2
elif D == 0:
x = -B / (2*A)
return 1
else:
return 0
A = 1
B = -5
C = 6
print(ildizlar_soni(A, B, C))
|
|
5. Markazi bir nuqtada bo‘lgan, R1 va R2 radiusga ega 2 ta aylananing ustma–ust tushmaydigan (kesishmaydigan) qismining yuzasini topuvchi RingS nomli funksiya hosil qiling. Doiraning yuzini hisoblash formulasidan foydalaning, S=pi*R2 . Pi pi=3.1415 ni o‘zgarmas deb qabul qiling.
import math
def RingS(R1, R2):
pi = 3.1415
S1 = pi * R1**2
S2 = pi * R2**2
ring_S = abs(S1 - S2)
return ring_S
R1 = int(input("R1="))
R2 = int(input("R2="))
S = RingS(R1, R2)
print("S=", S)
|
|
7. A va B sonlari orasidagi sonlar yig‘indisini hisoblovchi SumRangle(A, B) nomli funksiya hosil qiling. Agar A > B bo‘lsa, funksiya 0 qiymat qaytaradi. Bu funksiya orqali A dan B gacha va B dan C gacha bo‘lgan sonlar yig‘indisini hisoblang. A, B, C butun sonlar.
def SumRange(A, B):
if A > B:
return 0
total_sum = 0
for num in range(A, B+1):
total_sum += num
return total_sum
A = int(input("A="))
B = int(input("B="))
sum_range = SumRange(A, B)
print("sum_range", sum_range)
|
|
9. X va Y butun sonlari berilgan (X va Y noldan farqli). (X, Y) nuqta qaysi chorakda ekanini aniqlovchi Quarter nomli funksiya hosil qiling. Bu funksiya orqali 4 ta nuqtaning choragini aniqlang.
def Quarter(x, y):
if x > 0 and y > 0:
return "Birinchi chorak"
elif x < 0 and y > 0:
return "Ikkinchi chorak"
elif x < 0 and y < 0:
return "Uchinchi chorak"
elif x > 0 and y < 0:
return "To'rtinchi chorak"
x=int(input("x="))
y=int(input("y="))
a = Quarter(x, y)
print(a)
|
|
11. IsSquare(K) mantiqiy funksiyasini hosil qiling. (K > 0). Agar K biror butun sonning kvadrati bo‘lsa – true, aks xolda false qiymat qaytarsin. Shu funksiya orqali 3 ta sonni tekshiring.
import math
def IsSquare(K):
if K < 0:
return False
sqrt_K = int(K ** 0.5)
return sqrt_K * sqrt_K == K
numbers = [9, -16, 25]
for num in numbers:
print(f"{num} - {IsSquare(num)}")
|
|
13. IsPowerN(K) mantiqiy funksiyasini hosil qiling. (K > 0). Agar K soni N ning biror darajasi bo‘lsa – true, aks xolda false qiymat qaytarsin. Shu funksiya orqali 5 ta sondan nechtasi N ning darajasi ekanini aniqlovchi dastur tuzilsin.
def IsPowerN(K, N):
if K <= 0:
return False
power = 1
while power <= K:
if power == K:
return True
power *= N
return False
K = 25
N = 3
count = 0
for num in range(1, 6):
if IsPowerN(num, N):
count += 1
print("1 dan 5 gacha bo'lgan sonlardan", N, "ning darajasi bo'lgan sonlar:", count)
|
|
15. Butun qiymat qaytaruvchi DigitCount(K) funksiyasini hosil qiling. (K > 0). Funksiya K ning raqamlari sonini qaytarsin. Shu funksiya orqali 5 ta sonning raqamlari soni aniqlansin.
def DigitCount(K):
if K <= 0:
return 1 if K == 0 else 0
count = 0
while K > 0:
count += 1
K //= 10
return count
numbers = [321, 7642, 98765, 0, 87654321]
for num in numbers:
count = DigitCount(num)
print(num, "count", count)
|
|
IV.LABORATORIYA ISHI NATIJASIDA OLINGAN NATIJALAR:
1. Python dasturlash tilida funksiyalar haqida ma’lumotga ega bo‘ldim.
2. Python dasturlash tilida funksiyalar yaratdim.
3. Python dasturlash tilida funksiyalarning dasturini yaratish ko‘nikmalarga ega bo’ldim.
V.FOYDANALILGAN ADABIYOTLAR:
1.Eric Matthes. Python Crash Course Paperback.England 2015.205p.
2.Krishna Rungta. Learn Python in 1 Day: Complete Python Guide with Examples. India 2016. -182 p. 3.Narasimha Karumanchi. Data Structure and Algorithmic Thinking with Python Paperback. India 2015. 170p.
|