“MA‟LUMOTLAR TUZILMASI VA ALGORITMLAR - · PDF filehajm asosida nazariy bilimlarini...

download “MA‟LUMOTLAR TUZILMASI VA ALGORITMLAR -  · PDF filehajm asosida nazariy bilimlarini hamda bajarilayotgan ishning fizik mohiyati ... cout

If you can't read please download the document

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