2. Amaliy mashg’ulot topshiriq
Masala:
Berilgan N sonining juft bo'luvchilari sonini topish algoritm va dasturini tuzing.
Yechilishi:
Berilgan sonning juft bo'luvchilari sonini topish uchun quyidagi algoritmani va dasturni tuzish mumkin:
Algoritm:
Sonning juftligini tekshirish uchun, berilgan sonning 2 ga bo'linishidan qoldiqsiz qoladi yoki yo'qligi aniqlanadi.
Qoldiqsiz qolgan sonni ro'yxatga qo'shish uchun bo'sh ro'yxat yaratiladi.
Ro'yxatda birinchi element sifatida berilgan sonning juftligini tekshirish uchun yuqoridagi qadamni qayta ishga tushirish.
Ro'yxatdagi elementlar tugaguncha 2- dan berilgan sonning yarimiga qoldiqsiz bo'linuvchilar aniqlanib, ro'yxatga qo'shiladi.
Ro'yxatdagi elementlar tugaguncha aniqlangan juft bo'luvchilari sonini chiqarish uchun ro'yxat uzunligi hisoblanadi.
Juft bo'luvchilari soni chiqariladi va dasturdan chiqish amalga oshiriladi.
Dastur:
def juft_bo_luvchi_topish(n):
juft_sonlar = []
if n % 2 == 0:
juft_sonlar.append(n // 2)
for i in range(2, n // 2 + 1, 2):
if n % i == 0:
juft_sonlar.append(i)
print("Berilgan sonning juft bo'luvchilari soni: ", len(juft_sonlar))
return juft_sonlar
Bu dastur berilgan sonning juft bo'luvchilari sonini topadi va ro'yxat sifatida chiqaradi. Dasturni quyidagi shaklda ishlatishingiz mumkin:
n = 24
juft_bo_luvchi_topish(n)
Natija: Berilgan sonning juft bo'luvchilari soni: 4
Natijadagi ro'yxat: [2, 4, 6, 12]
2-topshiriq
Butun sonlardan iborat NxM o’lchamli matritsa berilgan. Bu matritsani gorizontalga nisbatan ko’chirilgan holatda chiqaring.
Matritsaning barcha qatorlarini gorizontalga nisbatan o'girish kerak. Buning uchun o'girish paytida har bir qatordan foydalanish kerak.
Dastur quyidagicha yozilishi mumkin:
# NxM o'lchamli matritsa
matrix = [
[3, 4],
[5, 9, 2, 6],
[6, 2, 4, 3],
[1, 2, 8, 7]
]
# Gorizontalga nisbatan o'girish
for i in range(len(matrix)):
matrix[i] = matrix[i][::-1]
# Matritsaning chap tarafi chiqariladi
for row in matrix:
for element in row:
print(element, end=" ")
print()
Dastur natijasi:
7 8 2 1
3 4 9 5
3 4 2 6
7 8 2 1
Dostları ilə paylaş: |