|
Texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkentBog'liq Ma\'lumotlar tuzilmasi Maruza Mustaqil ishAAA5. Dasturni sinovdan o’tkazish:
Kiriuvchi ma’lumotlar:
Chiquvchi ma’lumotlar:
120
295240
50
22100
25
2600
23
6-Amaliy topshiriq
1. Masalaning qo’yilishi:
Haqiqiy sonlar to'plamini xotiraga yozish va chop etish uchun
stack
shablonidan foydalaning
.
2. Masalaning qo’yilishida parametrlarni aniqlash:
Bu masalani yechishda Stak nomli klass va toplam nomli ozgaruvchi
oldim.
3. Hisoblash algoritmini (qoidasini) aniqlash:
Stack klassi: Bu klass stack imkoniyatlarini amalga oshiradi. Uning ichida
quyidagi metodlar mavjud:
__init__(self): Bo'sh ro'yxat yaratadi.
push(self, item): Elementni ro'yxatga qo'shadi.
pop(self): Ro'yxatdan eng ustidagi elementni olib beradi.
is_empty(self): Ro'yxat bo'sh bo'lsa True, aks holda False qaytaradi.
size(self): Ro'yxatdagi elementlar sonini qaytaradi.
haqiqiy_sonlar_to'plami funksiyasi: Ushbu funksiya haqiqiy sonlarni o'z
ichiga oladi, ulardan iborat bo'lgan sonni ifodalaydi, shu sonni stack orqali o'qib
oladi va chop etadi. Bu funksiyada quyidagi qadamlar amalga oshiriladi:
stack obyekti yaratiladi.
Sonni raqamlar bo'yicha yig'indisi topiladi va stack ga joylangan.
Stack bo'sh bo'lishgacha sonni chap etib olib, shu paytgacha olgan sonni
ifodalaydi.
4. Masalaning yechimi uchun dasturlash tilidagi algoritm
(dastru kodi):
Python dasturlash tilida:
class Stack:
def __init__(self):
24
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def is_empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
def haqiqiy_sonlar_toplami(n):
stack = Stack()
while n > 0:
qoldiq = n % 10
stack.push(qoldiq)
n = n // 10
toplam = 0
while not stack.is_empty():
toplam = toplam * 10 + stack.pop()
return toplam
raqamlar = 12345
toplam = haqiqiy_sonlar_toplami(raqamlar)
print(f"{raqamlar} haqiqiy sonlari to'plami: {toplam}")
|
| |