2
1-Amaliy mashg‘ulot:
Ma’lumotlarning har xil turlarini qayta ishlash dasturlarini tuzish.
Algoritmlaming turlari, Umumiy ko‘rinishdagi ma’lumotlar
tuzilmalarini hosil
qilish, Rekursiv misollarni tahlil qilish, Rekursiv algoritmlarning dasturlarini
ishlab chiqish.
Amaliy mashg‘ulot ishlari uchun topshiriqlar:
3. 2 ta istalgan ma’lumot turidan foydalangan holda 2 ta raqam ayirmasini hisoblang.
Pyhtonda yozilgan dastur:
n1 = int(input("Birinchi sonni kiriting: "))
n2 = int(input("Ikkinchi sonni kiriting: "))
if n1 > n2:
diff = n1 - n2
else:
diff = n2 - n1
print("Ayirmaning natijasi:",diff)
Dastur natijasi:
3
Nazorat savollari:
1. Ma’lumotlar tuzilmasining qanday umumiy ko‘rinishlari mavjud?
Javob: Ma’lumotlar turli turdagi ob’ektlardan iborat bo‘lishi mumkin.
Ma’lumotlarni quyidagi turkumlarda klassifikatsiyalash mumkin:
1. Massivlar;
2. Vektorlar;
3. Yozuvlar;
4. To‘plamlar;
5. Ko‘rsatkichli turlar.
2. Massiv va vektor qanday farqlanadi?
Javob: 1. Massivlar: Massiv, bir nechta elementlarni
biror tartibda saqlaydigan
turdagi ma’lumotlardir. Massivlar tezkor qidirish va elementlarni tartiblab yuklash uchun
foydalaniladi.
2. Vektorlar: Vektorlar, biror fizikavi o‘zgaruvchini yoki ko‘rsatkichni ifodalovchi
ma’lumotlardir. Vektorlar, o‘z x, y, va z koordinatalari bo‘yicha ma’lumotlarni
saqlaydigan turdagi ob’ektlardir.
3. Ko‘rsatkichli turlar qanday bo‘ladi?
Javob: Ko‘rsatkichli turlar ma’lumotlarni qayd etish,
ifodalash yoki boshqa
ko‘rsatkichliklar uchun foydalaniladigan turdagi ob’ektlardir. Bu, ma’lumotlarni biror bir
turi yoki klassi bilan bog‘liqlash uchun foydalaniladi.
4
2-Amaliy mashg‘ulot:
Ma’lumotlarni qidirish algoritmlari va dasturlarini ishlab chiqish,
Ma’lumotlar tuzilmalarini xeshlash algoritmlari yordamida hosil qilish.
Ma’lumotlarni saralash algoritmlari va dasturlarini ishlab chiqish,
Chiziqli
ma’lumotlar tuzilmalarini qayta ishlash algoritmlari va dasturlarini tuzish.
Amaliy mashg‘ulot ishlari uchun topshiriqlar:
3. Qidiruv algoritmlaridan biri bilan berilgan matnni indeks orqali qidiruv qilish
dasturini yozing.
Pyhtonda yozilgan dastur:
text = "Salom Murodjon! TATUga xush kelibsiz."
substring_tuple = ("Murodjon", "xush", "!", "bugun")
for sub in substring_tuple:
try:
index = text.index(sub)
print(f"Index o'rni: '{sub}': {index}")
except ValueError as e:
print(f"Ushbu matn topilmadi:'{sub}' ")
Dasturning natijasi:
5
Nazorat savollari
1. Qidiruv algoritmlari deganda nimani tushunasiz?
Javob: Ro‘yxatdan zarur axborotni qidirish - nazariy dasturlashning fundamental
masalalaridan biri hisoblanadi. Qidiruv algoritmini tahlil qilishda, qidirilayotgan axborot
kompyuterda ma‘lumotlar massivi ko‘rinishida joylashgan deb faraz qilamiz. Yozuvlar
yoki ro‘yxat elementlari massivda ketma-ket joylashadi va ular o‘rtasida bo‘shliq yo‘q.
Ro‘yxatdagi yozuvlar 1 dan N gacha tartiblangan bo‘ladi. Aslida yozuvlar maydonlardan
tashkil topgan bo‘ladi, bizni kalit deb ataluvchi maydonlardan bittasining qiymati
qiziqtiradi. Ro‘yxatlar kalit maydonlari qiymati bo‘yicha
tartiblangan yoki
tartiblanmagan bo‘lishi mumkin. Aniq qiymatni qidirish masalasi biror elementni tanlash
masalasi bilan bog‘liq. Aytaylik, bizga kattaligi bo‘yicha beshinchi element,
oxiridan
yettinchi yoki o‘rta qiymatli element kerak.
Qidiruv - bu kompyuter xotirasida ma‘lumotlarni qayta ishlash jarayonida
qo‘llaniladigan asosiy amallardan biri hisoblanadi. Bu amalning mazmuni shundan
iboratki, berilgan argument bo‘yicha massiv elementlari orasidan shu argumentga mos
ma‘lumotni (elementni) aniqlashdan iborat.
2. Chiziqli qidiruv algoritmi qanday?
Javob: Bizga ushbu massivda biron bir element bor yoki yo‘qligini tekshira
oladigan dastur tuzish sharti qo‘yilgan. Ushbu masalani yechishda eng birinchi xayolga
keladigan usul - bu massivni ketma-ket har bir elementini solishtirib chiqish va bu usul -
Chiziqli qidiruv - Linear Search deb ataladi
3. Binar qidiruv qanday tuzilgan?
Javob: Bu usulda ham funksiyaga 2 ta parametr, birinchisi massiv o‘zi keyin esa
biz qidirayotgan elementni parametr sifatida beriladi.
4. Ikkala qidiruv tizimini qanday farqli jihatlari mavjud?
Javob: 1. Funksiyaga berilayotgan massiv Binar qidiruv uchun albatta o‘sish
tartibida bo‘lishi talab qilinadi, chiziqli qidiruv uchun esa berilayotgan massiv qay
tartibda bo‘lishini ahamiyati yo‘q
2. Chiziqli qidiruvda elementlarni bittalab har birini tekshiriladi, binarda esa
algoritmidan kelib chiqib chiziqliga nisbatan ancha kam solishtirish amali bajariladi,
chiziqli qidiruvning ishlash vaqti ko‘pi bilan O (n) va binar qidiruvniki ko‘pi bilan
O (log n).
5. Indexlarni qanday axamiyati mavjud?
Javob: Indekslar so‘ralgan ma'lumotlarni topish vaqtini qisqartirishga yordam
beradigan ma'lumotlar tuzilmasi. Indekslar bunga qo‘shimcha saqlash, xotira va ularni
yangilab turish (sekinroq yozish) hisobiga erishadi, bu bizga jadvalning har bir qatorini
tekshirishning zerikarli vazifasini o‘tkazib yuborishga imkon beradi.
6
3-Amaliy mashg‘ulot:
Chiziqli bog‘langan ro‘yhatlar bilan ishlash algoritmlari
va dasturlarini
tuzish, Daraxtsimon ma’lumotlar tuzilmalarini qayta ishlash algoritmlari va
dasturlarini tuzish, Heap tree ko‘rinishidagi binar daraxtlar bilan ishlash
algoritmlari, Graflarni ko‘ruv
algoritmlarini ishlab chiqish, Graflarda eng qisqa
yo‘lni aniqlash algoritmlari va dasturlarini tuzish.
Amaliy mashg‘ulot ishlari uchun topshiriqlar.
3. A-E tugunlari orasidagi eng qisqa masofani toping.
Natija:
Nazorat savollari:
1. Dijkstra algoritmi va Bellman-Ford algoritmi orasidagi farq nima?
Javob: 1. Dijkstra algoritmi: