“MA‟LUMOTLAR TUZILMASI VA ALGORITMLAR - · PDF filehajm asosida nazariy bilimlarini...
Transcript of “MA‟LUMOTLAR TUZILMASI VA ALGORITMLAR - · PDF filehajm asosida nazariy bilimlarini...
OZBEKISTON RESPUBLIKASI ALOQA, AXBOROTLASHTIRISH VA
TELEKOMMUNIKATSIYA TEXNOLOGIYALARI DAVLAT QOMITASI
Toshkent axborot texnologiyalari universiteti
Dasturiy injiniring fakulteti
MALUMOTLAR TUZILMASI VA ALGORITMLAR
fanidan laboratoriya ishlarini bajarish boyicha
USLUBIY KORSATMA
Toshkent 2013
2
Uslubiy korsatma Malumotlar tuzilmasi va algoritmlar fanidan talim
oluvchi talabalarga moljallangan bolib, mazkur fandan laboratoriya ishlarini
bajarish uslubi va topshiriqlar orin olgan. Uslubiy korsatma talabalarning
Malumotlar tuzilmasi va algoritmlar fanidan nazariy va amaliy bilimlarini
oshirishlariga yordam beradi. Laboratoriya ishlariga moljallangan barcha
mavzular misollar, algoritmlar va ularning C++ dasturlash muhitidagi kodlari bilan
keng yoritib berilgan. Har bit laboratoriya ishida ishdan maqsad, qisqacha nazariy
qism, topshiriqlar va topshiriqlarni bajarishga namunalar keltirilgan. Uslubiy
korsatma 6 ta laboratoriya ishini bajarishga moljallangan va birinchi, ikkinchi va
uchinchi ishlar 2 soatga, tortinchi, beshinchi va oltinchi ishlar 4 soatga, jami 18
soatga moljallanib tuzilgan.
Tuzuvchilar: t.f.n. Akbaraliyev B.B.
ass. Yusupova Z.Dj.
Taqrizchilar: prof.,t.f.d. Yaqubov M.C.
dotsent,t.f.n. Xudayberdiyev M.X.
Uslubiy korsatma Axborot texnologiyalarining dasturiy taminoti
kafedrasining 2012 yil 4 dekabrida otkazilgan majlisida korilgan va
tasdiqlangan.
Dasturiy injiniring fakulteti ilmiy-uslubiy kengashi ruxsati bilan chop etildi.
Toshkent axborot texnologiyalari universiteti, 2013 yil
3
MUNDARIJA
KIRISH..........
TASHKILIY-USLUBIY KORSATMALAR...
4
5
1-laboratoriya ishi. MALUMOTLARNING ODDIY SOZLANGAN
TOIFALARI... 7
2-laboratoriya ishi. YARIMSTATIK MALUMOTLAR TUZILMASI... 33
3-laboratoriya ishi. DINAMIK MALUMOTLAR TUZILMASINI
TADQIQ QILISH...... 47
4-laboratoriya ishi. DARAXTSIMON TUZILMALAR.. 63
5-laboratoriya ishi. QIDIRUV USULLARINI TADQIQ QILISH 95
6-tajriba ishi. MALUMOTLARNI SARALASH USULLARI.................... 111
FOYDALANILGAN ADABIYOTLAR... 126
4
KIRISH
Ushbu uslubiy korsatma Informatika va axborot texnologiyalari (sohalar
boyicha) yonalishi 2-bosqich talabalari uchun moljallangan bolib,
Malumotlar tuzilmasi va algoritmlar fanidan bilim, malaka va konikmalarini
oshirishda hamda tajriba ishlarini bajarishda foydalanilishi mumkin. Uslubiy
korsatma 6 ta tajriba ishi va foydalanilgan adabiyotlar royhatidan tashkil topgan.
1-tajriba ishida C++ tilida malumotlarning oddiy sozlangan va keltirilgan
toifalari haqida va ularga oid misollar keltirilgan.
2-tajriba ishida yarimstatik malumotlar tuzilmasi navbat, stek va dek haqida
qisqacha nazariy bilimlar va ularni C++ tilida elon qilish, ular ustida amallar
bajarishga oid misollar keltirilgan.
3-tajriba ishida dinamik malumotlar tuzilmasi, yani, bir boglamli
royhatlar, ularni elon qilish va ustida amallar bajarishga oid misollar va
algoritmlarga moljallangan.
4-tajriba ishida daraxtsimon malumotlar tuzilmasi, binar daraxtlar va ularni
elon qilish, uni ustida amal bajarish algoritmlari va misol uchun dastur kodlari
keltirilgan.
5-tajriba ishida tuzilmadan biror kalit boyicha elementni qidirish usullari va
qidiruvni optimallashtirish yollari va algoritmlar misollar bilan taqdim etiladi.
6-tajriba ishida tuzilmalarni saralash usullaridan ayrimlarining algoritmlari
va misollar keltirilgan.
Har bir tajriba ishi oxirida shu mavzuga oid talabalar uchun topshiriq
variantlari va topshiriqni bajarishga namuna, unda esa variantlarga oxshash
bolgan bitta misolning toliq dasturi berilgan.
Uslubiy korsatma oxirida foydalanilgan adabiyotlar royhati keltirilgan.
5
TASHKILIY-USLUBIY KORSATMALAR
1. Har bir tajriba ishini bajarishdan oldin, tayyorlanishi lozim bolgan tajriba
ishiga oid mavzular boyicha maslahatlar (konsultatsiya) otkaziladi.
2. Har bir tajriba ishi hajmi, uni tayyorlash va bajarish tartibi shunday
tuzilganki, barcha talabalar berilgan topshiriqlarni tayyorlashlari va hisobotlarni
oz vaqtida topshirishlari imkoni etiborga olingan.
3. Talabalar navbatdagi tajriba ishini bajarishga oldindan tayyorlanib
boradilar.
4. Talabalar 1000 V gacha bolgan tajriba qurilmalarida ishlash uchun
texnika xavfsizligini organishlari majbur.
5. Talaba tajriba ishiga tayyorgarlik korish davrida mazkur korsatma va
tavsiya etilayotgan adabiyotlardan foydalangan holda kerakli nazariy materiallarni
organishlari, zaruriy hisoblashlarni amalga oshirishlari va nazorat savollariga
javob berishlari shart.
6. Tayyor bolmagan talabalarga tajriba ishlarini bajarishiga ruxsat
berilmaydi.
7. Mashgulot mobaynida hisobot topshirmagan talabalar, keyinchalik
oqituvchi belgilagan vaqtda topshiradilar.
8. Tajriba ishlarini oz vaqtida topshirmagan talabalar keyinchalik oqituvchi
bilan vaqtni kelishgan holda topshiradilar.
9. Har bir tajriba ishi talaba tomonidan mustaqil ravishda tayyorlanadi. Har
bir talaba shaxsiy tarzda hisobot topshiradi. Hisobotni elektron hujjat korinishda
topshirishga ruxsat etiladi. Hisobotni tayyorlashda tajriba ishini bajarish tartibiga
binoan quyidagi malumotlar bolishi kerak:
1. Mavzu
2. Ishdan maqsad
3. Masalaning qoyilishi
6
4. Topshiriqqa oid qisqacha nazariy malumot
5. Masalani yechish algoritmi
6. Dastur kodi
7. Natijaning ekran korinishi
10. Talabalar bilimlari tajriba mashguloti va hisobot topshirish mobaynida
oqituvchi tomonidan tekshiriladi.
11. Hisobot topshirish davrida talaba nazorat savollari orqali aniqlanuvchi
hajm asosida nazariy bilimlarini hamda bajarilayotgan ishning fizik mohiyati
tushunchasini korsatishi lozim.
7
1-tajriba ishi. MALUMOTLARNING ODDIY SOZLANGAN TOIFALARI
Ishdan maqsad: Malumotlarning oddiy sozlangan va nostandart toifalarini
organish va ularni tadqiq qilish.
Qoyilgan masala: C++ tilida butun, haqiqiy, belgili, mantiqiy toifadagi
malumotlarni elon qilish, nostandart toifalarni yaratish va ularga doir
misollarning dasturini ishlab chiqish.
Ish tartibi:
Tajriba ishi nazariy malumotlarini organish;
Berilgan topshiriqning algoritmini ishlab chiqish;
C++ dasturlash muhitida dasturni yaratish;
Natijalarni tekshirish;
Hisobotni tayyorlash va topshirish.
1.1. Malumotlar toifalari
Koplab dasturlash tillarida malumotlar bazaviy va keltirilgan toifalarga
ajratiladi. Malumotlarning toifalarini 1.1-rasmdagidek klassifikatsiyalash
mumkin.
1.1-rasm. Toifalar klassifikatsiyasi
Malumotlar toifasi
bazaviy keltirilgan
bosh skalyar
void Butun sonli haqiqiy
mantiqiy simvolli butun
bool
skalyar tuzilmaviy
sanaladigan
enum
Korsatkichlar
murojaatlar
toifa_nomi *
toifa_nomi&
classlar
strukturalar
birlashma
massivlar
union
class
struct
char
wchar_t
short
int
long
float
double
long
double
bool
8
Malumotlarning ixtiyoriy toifasi qiymatlar sohasi va ular ustida bajarilishi
mumkin bolgan amallar orqali tavsiflanadi. void kalit sozi hech qanday toifaga
ega emaslikni anglatadi. Bunday toifadagi funksiyalar hech qanday qiymatni
qaytarmaydi. Lekin asosiy dastur tanasi, yani main() funksiyasi void toifasiga ega
bololmaydi, u int toifasida bolishi kerak.
1.2. Sozlangan toifalar
1.2.1. Butun toifa int
Mazkur toifa butun sonlar toplamining qandaydir qism toplami bolib,
uning olchami mashina, yani kompyuter konfiguratsiyasiga bogliq ravishda
ozgarib turadi. Mazkur toifaga kiruvchi sonlar ikkiga bolinadi: ishorali (signed)
va ishorasiz (unsigned). Sonlarmi xotirada tasvirlashda eng chapdagi bit ishora
uchun belgilanadi. Toifalarni signed (ishorali), unsigned (ishorasiz) kalit sozlari
bilan modifikatsiyalash mumkin. Bunda ishorali toifa uchun ajratilgan joyning eng
chap biti ishora uchun, qolgan bitlar qiymatlarni saqlash uchun ishlatiladi, yani
0 plus, 1 - minus. Ishorasiz toifalarda esa barcha bitlar qiymatlarni saqlash uchun
ishlatiladi. Ularning har biri uchun mos ravishda qiymat qabul qilish oraligi
mavjud:
a) ishorasiz sonlar uchun (0...2n-1);
b) ishoralilar uchun (-2n-1
2n-1
-1).
Butun sonlar ustida turli matematik (+, -, /, *) va solishtirish amallarini
bajarish mumkin, yani ==, !=, = operatorlar bilan binar amallarni
bajarish mumkin. Ammo bu operatsiyalarning natijalari int toifasiga kirmaydi, ular
bool toifasiga kiradi.
Butun qiymat qabul qiluvchi ozgaruvchilarni elon qilish uchun int, short
int, long int xizmatchi sozlaridan foydalanish mumkin. Butun qiymatli
toifalarning barchasi 1.1-jadvalda keltirilgan:
9
1.1-jadval
Butun toifa shakllari
Toifa
korinishi
Mazkur toifadagi ozgaruvchining
qabul qiladigan qiymatlar oraligi
Ozgaruvchining
kompyuter xotirasidan
egallaydigan joy