1-ma’ruza: Ma’lumotlar turlari. Ma’lumotlarning abstrakt tuzilmalari Reja


Download 333.5 Kb.
Sana10.09.2020
Hajmi333.5 Kb.
#129085
Bog'liq
1-mavzu ma'ruza


1-ma’ruza: Ma’lumotlar turlari. Ma’lumotlarning abstrakt tuzilmalari
Reja:

  1. Ma’lumotlar tuzilmasi va algoritmlar faniga kirish ma’lumotlari

  2. Malumotlar tuzilmasi haqida asosiy tushunchalar

  3. Ma’lumot va uning xotirada tasvirlanishi

  4. Ma’lumotlarni saqlash

  5. Ma’lumotlar turi, ma’lumotlarning abstrakt (mavhum) turlari va ma’lumotlar tuzilmasi

  6. Xotirani adreslash

  7. Ma’lumotlar tuzilmasi klassifikatsiyasi

  8. Ma’lumotlar va algoritmlarni strukturalashtirish (tuzilmalashtirish)

  9. Foydalanilgan manbalar


Kalit so‘zlar: Ma’lumot, axborotm, tuzilma (struktura), abstrakt ma’lumot, ma’lumotlar tzuilmasi sinflari.


Коd

PRC 3.01

Nomi

Ma’lumotlar tuzilmasi va algoritmlar

ECTS krediti

6

O‘quv yili

2020-2021

Semestr

3


Maqsadi (ing.: purpose) - turli dasturlash tizimlarida loyihalash usullari, ma’lumotlar tuzilmasini ishlab chiqish hamda algoritmlar bo’yicha nazariy va amaliy bilimlar berish.

Vazifasi (ing.: objective) talabalarni turli xil ma’lumotlar tuzilmalari bilan tanishtirish, yangi tuzilmalarni ishlab chiqish va o’quv jarayonlariga tadbiq etish usullari o’rgatishdan iboratdir.

Kurs talabalarni tuzilmalar ko’rinishida ma’lumotlarni gayta ishlash, optimal algoritimlar ishlab chiqish va dasturlash ko’nikmalarini takomillashtirishga yo’naltiradi.

Ushbu kurs quyidagi 3 bo’limdan iborat:


  • Ma’lumotlar, tuzilmalar, rekursiya va ob’ektga yo’naltirilgan dasturlash

  • Standart ma’lumotlar tuzilmalari kutubxonasi bilan ishlash

  • Dasturiy ta’minotni testlash va tekshirish. Ma’lumotlar tuzilmalarini modellashtirish

Ma’lumot - bu biror bir ob’ekt, jarayon, hodisa yoki voqelikni ifodalab (tasniflab) beruvchi belgi yoki belgilar majmuasidir.

Berilgan ma’lumot (belgi)lar qanday qiymat qabul qilishiga qarab ma’lumotlarni bir qancha turlarga ajratish mumkin.

Ma’lumotlar tuzilmasi va algoritmlar dastur tuzish uchun zarur bo’lgan tushunchalar sifatida qaraladi. O’rnatilgan ma’lumotlar tuzilmasi ikkilik miqdor (kodlangan ma’lumot)lar saqlanadigan registrlar va xotira so’zlarini ifodalab beradi. Qurilmani loyihalash uchun ishlab chiqilgan algoritm – bu elektron mantiqiy qurilmalarda qat’iy amalga oshiriladigan qoidalar bo’lib, xotirada saqlangan ma’lumot bajarilishi lozim bo’lgan komanda sifatida bo’ladi.

Dasturlash – bu nafaqat aqliy faoliyatni avtomatlashtirish, balki, ilmiy tadqiqot predmeti hisoblanadi.

Qandaydir amaliy masalani yechish uchun dastur tuzish jarayoni quyidagi bir nechta bosqichlardan tashkil topgan:

1. Masalaning qo’yilishi (qo’yilgan masalaga texnik topshiriqni ishlab chiqish);

2. Rasmiylashtirish – formallashtirish (masalaning matematik qo’yilishi);

3. Masalani yechish usulini tanlash (yoki ishlab chiqish);

4. Algoritmni ishlab chiqish (algoritmlash);

5. Dastur tuzish (dasturlash);

6. Dasturni testlash va otladka qilish;

7. Natijalarni hisoblash va qayta ishlash hamda dasturni hujjatlashtirish (foydalanuvchi yo’riqnomasini ishlab chiqish).

Dasturlash jarayonini quyidagicha sxema orqali iqodalash mumkin:


Matematik model




Ma’lumotlarning abstrakt turlari



Ma’lumot tuzilmasi


Norasmiy algoritm




Psevdo tildagi dastur




C++ tilidagi dastur

Birinchi bosqichda qo’yilgan masalaga matematik model tuziladi, buning uchun mos matematik model tadbiq qilinadi (masalan, graflar nazariyasiga o’xshash).

Keyingi bosqichda umumlashgan psevdo til - oddiy operatorlar va – S++ tilidagi konstruktsiyalar aralashmasi yordamida algoritm yoziladi.

Ushbu bosqichni norasmiy (formal bo’lmagan) operatorlarni almashtirish bilan davom ettiramiz.

Dasturlashning uchinchi bosqichida ma’lumotlarning har bir abstrakt turining tadbiqi ta’minlanadi va ushbu turdagi ma’lumotlar ustida bajariladigan turli xil operatorlar uchun protseduralar ishlab chiqiladi. Bu bosqichda barcha psevlo tilda yozilgan operatorlar C++ tilidagi kod bilan almashtiriladi. Bosqichning natijasi ishlaydigan dastur bilan yakunlanadi.

Ma’lumot va uning xotirada tasvirlanishi

Hisoblash mashinalari yordamida har qanday masalani yechish ma’lumotlarni xotiraga yozish, xotiradan o’qish va uni qayta ishlashni hisobga olgan holda bajariladi.

Nazariy jihatdan ma’lumot noaniqliklarni aniqlovchi vosita sifatida qaraladi. Faraz qilaylik, biror bir tizimning N ta mumkin bo’lgan holati mavjud bo’lsin, har bir holat paydo bo’lishi mustaqil P ehtimolga ega bo’lsin. U holda bu tizimning noaniqligi quyidagi ko’rinishda aniqlanadi:

=(P(i)*log2 P(i))

Tizimning noaniqligini o’lchash uchun bit deb ataluvchi maxsus birlik qabul qilingan. Bit hech bo’lmaganda ikkita mumkin bo’lgan holatga bog’liq noaniqlik (yoki ma’lumot)ning o’lchovi hisoblanadi, masalan rost-yolg’on yoki bor-yo’q holatlar. Bit noaniqlik va axborotning o’lchovi sifatida qo’llaniladi, ya’ni olingan axborotlar soni axborotlarni olish natijasida yo’qotilgan noaniqliklar soniga teng.

Ma’lumotlarni saqlash


Kompyuterda eslab qoluvchi qurilmalarni asosiy uchta ko’rinishi mavjud: o’ta tezkor, tezkor va tashqi xotira. Odatda o’ta tezkor xotira registrlardan tashkil topgan bo’ladi. Registrlar ma’lumotlarni vaqtincha saqlab turish va akslantirish uchun qo’llaniladi.

Juda muhim registrlardan ba’zilari komp’yuterning markaziy protsessorida joylashgan. Markaziy protsessor arifmetik amallarning argumentlari (ya’ni operandlar) joylashadigan (vaqtincha saqlanadigan) registrlardan tashkil topgan. Registrga yuborilagan ma’lumotlarni qo’shish, ayirish, ko’paytirish va bo’lish amallar juda murakkab mantiqiy sxema orqali bajariladi. Bundan tashqari, registrlarda boshqaruv ketma-ketligini to’g’ri bajarilishini tekshirish zaruriyatidan kelib chiqqan holda alohida bitlarda tahlil qilinadi. Arifmetik amallardagi operandlar va natijalarni vaqtincha saqlashdan tashqari, registrlar dastur komandalarini va keyingi bajariladigan komandaning tartib raqami haqidagi boshqaruv ma’lumotlarini ham vaqtincha saqlash vazifasini bajaradi.



Tezkor xotira ma’lumotlarni o’z muhitida nisbatan doimiy saqlash uchun mo’ljallangan. Tezkor xotiraning muhim xususiyatlaridan biri bu adreslanganligi hisoblanadi. Bu xotira yacheykalari massividagi har bir xotira yacheykasi birqiymatli o’z nomi (identifikatori)ga egaligini anglatadi. Ushbu nom yacheyka adresi deb ataladi. Yacheyka adresi tezkor xotiraga murojaat qilgan mashina kommandasining operandi hisoblanadi. Zamonaviy hisoblash tizimlarida adreslash uchun ikkilik 8 razryaddan tashkil topgan bayt-yacheyka birligi qo’llaniladi. Tezkor xotiraning aniq yacheykalari yoki yacheykalar majmuasi dasturdagi aniq o’zgaruvchi bilan bog’liq bo’lishi mumkin. Lekin o’zgaruvchilar ishtirok etgan arifmetik hisoblashlarni bajarish uchun hisoblash boshlanmasdan oldin o’zgaruvchilar xotira yacheykasidan registrlarga o’tkazilishi zarur bo’ladi. Agar hisoblash natijasi ham ushbu o’zgaruvchiga o’zlashtirilgan bo’lsa, u holda natija qiymat ham yana mos registrdan ushbu o’zgaruvchiga bog’liq bo’lgan tezkor xotira yacheykasiga o’tkazilishi kerak. Dastur bajarilishi vaqtida uning komandalari va ma’lumotlari asosan tezkor xotira yacheykalarida joylashadi. Tezkor xotira elementlarining to’liq to’plami ba’zan asosiy xotira deb ham yuritiladi.

Tashqi xotira ma’lumotlarni uzoq muddat saqlab turish uchun mo’ljallangan. Bu xotiraning farqli tomoni shundaki, undagi ma’lumotlar dastur o’z ishini yakunlagandan keyin ham, hisoblash mashinasi elektr tokidan ajratib qo’yilganda ham saqlanib qoladi. Ya’ni biror bir dastur yordamida hosil qilingan (yoki tashqi xotirada saqlangan) ma’lumot ushbu dastur ishi yakunlangandan keyin va qayta ishga tushirilganda foydalanish uchun alohida saqlab qo’yilishi mumkin. Tashqi xotiradagi ma’lumotlarda bir necha marta qayta qayta foydalanish imkoniyati mavjud bo’ladi. Tashqi xotira dasturning o’zini saqlab qo’yish uchun ham qo’llaniladi. Tashqi xotiraning qiymati tezkor xotiradan kichik bo’lsa ham, uning ma’lumotlarni saqlash hajmi juda katta bo’ladi. Tashqi xotiraning yana bir vazifasi bajarilayotgan dasturning bajarilishi vaqtida zarur bo’lmagan kodi va ma’lumotlarini vaqtincha saqlab turish hisoblanadi. Faol bajarilayotgan dastur va u qayta ishlayotgan ma’lumotlar albatta tezkor xotiraga ko’chirib o’tkazilgan bo’lishi kerak, ya’ni tashqi xotira bilan registrlar o’rtasida ma’lumotlarni to’g’ridan-to’g’ri almashish imkoniyati mavjud emas.

Ma’lumotlarni saqlovchi qurilma sifatida tashqi xotira ham tezkor xotiraga o’xshash adreslangan xususiyatga ega. Shuning uchun tashqi xotiradagi ma’lumotlar tuzilmasi ham tezkor xotiradagidek, ularni qayta ishlash algoritmlar ham bir xil bo’ladi. Lekin tashqi xotiraning fizik muhitida butunlay boshqa ko’rinishga ega bo’lib, undagi adreslarga kirish boshqa vaqtinchalik xususiyatlarga ega. Tezkor xotira uchun samarali bo’lgan tuzilmalar va algoritmlar tashqi xotira uchun ishlamasligini bildiradi.

Qayta ishlanadigan axborotlarning katta hajmi real hayotning ajralmas qismi hisoblanadi. Muayyan masalalarni yechish uchun zarur bo’lgan axborotlar, muammoga bog’liq bo’lgan aniq ma’lumotlar majmuasidan tashkil topadi. Ixtiyoriy masalani yechishda mavhumlashtirish darajasini tanlash zarur, ya’ni real holatni tavsiflovchi ma’lumotlar to’plamini aniqlash kerak bo’ladi. Tanlab olishda hal qilinishi zarur bo’lgan masalani uchun ma’lumotlarni to’g’ri boshqarish zarur. Keyinchalik ushbu ma’lumotlarni tavsiflash usulini tanlab olish kerak bo’ladi.

Ma’lumotlar turi, ma’lumotlarning abstrakt (mavhum) turlari va ma’lumotlar tuzilmasi


Ushbu tushunchalar, o’xshash bo’lishi mumkin, lekin ularning ma’nosi har xil hisoblanadi.

Dasturlash tillarida o’zgaruvchining ma’lumot turi, ushbu o’zgaruvchi qabul qilishi mumkin bo’lgan qiymatlar to’plamini anglatadi. Ma’lumotlar turi natural va butun sonlar, haqiqiy (o’nlik kasr ko’rinishidagi) sonlar, satrlar, belgilar va boshqalarni o’z ichiga oladi.

Ba’zi dasturlash tillarida har bir konstanta yoki o’zgaruvchilarning turini unga ta’minlangan qiymatning yozilishiga qarab kompilyator aniqlaydi. Masalan, o’nlik sonda qo’llaniladigan nuqta, haqiqiy son belgisi sifatida qabul qilinadi. Boshqa dasturlash tillarida esa, dasturchi tomonidan kirtilayotgan har bir o’zgaruvchining turi aniq ko’rsatilishi talab etiladi, va bu muhim vazifalardan biri hisoblanadi. Dastur bajarilishi davomida o’zgaruvchining qiymati bir necha marta almashishi mumkin, lekin uning turi o’zgarmasligi kerak. Bu kompilyator o’zgaruvchi ustida bajariladigan amallarni uning tavsiflanishiga mos ravishda tekshirib chiqadi. Bu tekshirish to’liq dastur matni bo’yicha amalga oshiriladi va natijada dastur bajaradigan barcha amallar aniqlab olinadi.

Dasturlash tilining maqsadiga qarab, kompilyatsiya jarayonida ma’lumotlarning turi himoyalanganlik darajasi mavjud. Masalan, Pascal dasturlash tilida ma’lumotlarning turi qat’iy himoyalangan bo’lib, dasturning sarlavha qismidayoq dasturda qo’llaniladigan barcha o’zgaruvchilar va konstantalarning turlari aniqlab berilishi talab qilinadi. C dasturlash tilida esa buning teskarisi bo’lib, ma’lumotlarning turini aniqlash dastur bajarilishi vaqtida dasturchi tomonidan aniqlanishi ham mumkin. Bu esa C dasturlash tilida ma’lumotlarning turi kuchsiz himoyalanganligini bildiradi. Shu bilan birgalikda ma’lumotlarning turi qat’iy himoyalanmagan dasturlash tillarida dasturning to’g’ri ishlashiga javobgarlik dasturchining o’ziga yuklatilgan.



Ma’lumotlarning abstrakt (mavhum) turlari – bu matematik model va shu model doirasida aniqlangan turli xil operatorlardir. Abstrakt ma’lumotlar turi bilan algoritmlarni ishlab chiqish mumkin, lekin ma’lum bir dasturlash tilida algoritmlarni qo’llash uchun ma’lumotlarning abstrakt turlarini ushbu dasturlash tiliga mos ma’lumotlar turi va operatorlar yordamida ishlab chiqiladi.

Ma’lumotlarning abstrakt turlarini tavsiflash uchun o’zida o’zgaruvchilarning aniq to’plamini, mumkin bo’lgan ma’lumotlar turini mujassamlashtirgan ma’lumotlar tuzilmasidan foydalaniladi.

Algoritmlarda qo’llaniladigan ma’lumotlar tuzilmasi juda murakkab bo’lishi mumkin. Ma’lumotlarni to’g’ri taqdim etish natijasi muvaffaqiyatli dasturlash kaliti sifatida xizmat qiladi. Ma’lumotlar tuzilmasining qurilish materiali tayanch yoki tarkibli ma’lumotlar turini saqlashga mo’ljallangan yacheykalar hisoblanadi. Ma’lumotlar tuzilmasi yacheykalar majmuasiga boshqa yacheykalar vakili (ya’ni ko’rsatkichlar) sifatida nom berish orqali ishlab chiqiladi.

Xotirani adreslash


Ixtiyoriy mashina komandasi – kodi ikkita maydon: amallar va adreslardan tashkil topgan.

Komandaning adres maydonida adres kodi saqlanadi. Ko’p hollarda ma’lumotlarga murojaat fizik adres bo’yicha amalga oshiriladi. Odatda fizik adres komandaning adres maydoniga mos kelmaydi, lekin unga bog’liq bo’ladi. Umumiy holda kodning adresini fizik adresga akslantirish – adreslash deyiladi.

Hozirgi vaqtda o’ndan ziyod adreslash usullari va ularning modifikatsiyalari mavjud. Ma’lumotlarni adreslash mavjud barcha usullarini ikkita asosiy guruhga ajratiladi: to’g’ridan-to’g’ri (bevosita) va bilvosita.

Bevosita adreslash usulida operandning joylashgan adresi yoki operandning o’zi bevosita adres kodida joylashgan bo’ladi. Bilvosita adreslash usulida esa, adres kodi bo’yicha fizik adresni shakllantirish protsedurasi bajarilishi kerak, buning uchun hisoblash mashinalarida maxsus adreslash muxanizmi qo’llaniladi.



Ma’lumotlar tuzilmasi klassifikatsiyasi


Fizik ma’lumotlar tuzilmasi deganda ma’lumotlarning mashina xotirasida tasvirlanishini tushinish kerak va bu tushuncha ba’zan saqlash tuzilmasi, ichki tuzilma yoki xotira tuzilmasi kabi nomlar bilan ham yuritiladi.

Ma’lumotlarning mashina xotirasida tasvirlanishini hisobga olmasdan hosil qilingan tuzilmalari abstrakt (mavhum) yoki mantiqiy tuzilma deb ataladi. Umumiy holda mantiqiy tuzilma bilan uning mos fizik tuzilmasi orasida farq mavjud bo’lib, bu ma’lumot taqdim etiladigan muhitning tuzilishi va xususiyatlariga bog’liq bo’lgan farqlar hisoblanadi. Shuning uchun ham mantiqiy tuzilmani fizik tuzilmaga va aksincha, fizik tuzilmani mantiqiy tuzilmaga aylantiruvchi (aklantiruvchi) protseduralar ishlab chiqilgan. Bu protseduralar, fizik tuzilmalarga kirish (murojaat) va fizik tuzilmalar ustida turli xil amallarni bajarishni ta’minlab beradi, bajariladigan har bir amal mantiqiy yoki fizik tuzilmada qo’llanilayotganligiga bog’liq holda o’rganiladi.

Ma’lumotlar tuzilmasi oddiy (tayanch, sodda) va integrallashgan (tarkibli, murakkab) tuzilmalarga (turlarga) bo’linadi. Oddiy tuzilma deganda, bitdan boshqa qismlarga ajralmaydigan ma’lumotlar tuzilmasi tushiniladi. Fizik tuzilma nuqtai nazaridan olib qaralganda, komp’yuter arxitekturasi va dasturlash tizimlarida oddiy turning qanday o’lchamga ega bo’lishi va xotiraga joylashish tuzilishi qanday ko’rinishga ega ekanligini oldindan aytib bera olishimiz kerak. Mantiqiy nuqtai nazardan esa, oddiy ma’lumotlar bo’linmas birlik hisoblanadi.

Integrallashgan tuzilma deganda uni tashkil etuvchilar boshqa ma’lumotlar tuzilmasi – oddiy yoki o’z navbatida tarkibili tuzilmalar bo’lgan ma’lumotlar tuzilmasi tushiniladi. Integrallashgan ma’lumotlar tuzilmalari dasturchilar tomomnidan dasturlash tizimlari taqdim etadigan vositalardan foydalangan holda yaratiladi.

Tuzilma elementlari orasidagi bog’liqlikning mavjudligi yoki mavjud emasligiga qarab bog’lanmagan (vektor, massiv, satr, stek, navbat) va bog’langan (bog’langan ro’yxatlar) tuzilmalarga ajratiladi.

Ma’lumotlar tuzilmasining eng muhim belgilaridan biri – bu uning o’zgaruvchanligi, ya’ni elementlar sonining o’zgarishi yoki elementlar orasidagi bog’lanishning o’zgarishi hisoblanadi. Tuzilmaning o’zgaruvchanligi deganda elementlari qiymatining o’zgarishi tushinilmasligi kerak, ya’ni bunday holda barcha tuzilmagan o’zgaruvchan tuzilma hisoblanib qoladi.



Tuzilmalarning o’zgaruvchanlik xususiyatlariga qarab statik, yarimstatik va dinamik shakllari mavjud. Tayanch, statik, yarimstatik va dinamik tuzilmalar tezkor xotira uchun ahamiyatli hisoblanadi va ba’zan bu tuzilmalar tezkor tuzilmalar deb ham ataladi. Fayl tuzilmalari tashqi xotira uchun mos ma’lumotlar tuzilmasi hisoblanadi.


Ma’lumotlar tuzilmasining yana bir muhim belgisi uni tashkil etuvchi elementlarning tartiblanganlik xususiyati hisoblanadi. Ushbu belgisi bo’yicha chiziqli va nochiziqli tuzilmalarga ajratish mumkin.

Chiziqli tuzilma elementlarining xotirada o’zaro joylashish xususiyatlariga qarab xotirada elementlari ketma-ket taqsimlangan (vektor, satr, massiv, stek, navbat) va xotirada elementlari erkin bog’langan ko’rinishda taqsimlangan (bir bog’lamli, ikki bog’lamli ro’yxatlar) kabi turlarga ajratish mumkin.

Dasturlash tillarida “ma’lumotlar tuzilmasi” tushunchasi “ma’lumotlar turi” tushunchasi bilan chambarchas bog’liq. Ixtiyoriy ma’lumot, ya’ni konstanta, o’zgaruvchi, funktsiya yoki ifodaning qiymati o’zining turi bilan ajralib turadi.

Har bir tur bo’yicha axborot bir qiymatli aniqlanadi:

1) ko’rsatilgan turdagi ma’lumotni saqlash tuzilmasi, ya’ni birinchidan unga xotira ajratish va xotiradagi ma’lumotni taqdim etish, ikkinchidan ma’lumotning ikkilik kodda tasvirlanishi;

2) tavsiflangan turdagi u yoki bu ob’ektning qabul qilishi mumkin bo’lgan qiymatlari to’plami;

3) tavsiflangan turdagi ob’ekt ustida bajarish mumkin bo’lgan amallar to’plami.


Ma’lumotlar va algoritmlarni strukturalashtirish (tuzilmalashtirish)


Ma’lumotlar tuzilmalarini bilish, ularni saqlash va qayta ishlash xotirani tejash va protsessor vaqti sarfini kamaytirish nuqtai nazaridan eng samarali usullarni qo’llash imkonni beradi. Yana bir afzalligi, ma’lumotlarga tuzilmaviy yondoshuv murakkab dasturiy mahsulotlarni yaratish imkoniyati hisoblanadi. Zamonaviy dasturiy paketlar juda murakkab mahsulotlar hisoblanib, bunda minglab, millionlab satrli kodlarni hisoblashga to’g’ri keladi. Tabiiyki, bunday dasturiy mahsulotlarni “birdaniga (bir vaqtning o’zida)” ishlab chiqish imkoniyati yo’q, bular ba’zi bir tuzilmalar, ya’ni ularning tashkil etuvchi qismlari va ular orasidagi bog’liqliklar ko’rinishida ishlab chiqilishi mumkin. To’g’ri tuzilmaga keltirilgan mahsulotni ishlab chiqishning har bir bosqichida ishlab chiquvchining diqqatini mahsulotning alohida qismlariga qaratilishini talab etadi.

Katta dasturiy mahsulotlarni tuzilmalashtirishda mumkin bo’lgan yondoshuvlar mavjud. Bulardan biri algoritmlarni tuzilmalashtirishda “yuqoridan quyiga” loyihalash yoki “yuqoridan quyiga dasturlash” yondoshuvi bo’lsa, ikkinchisi, ma’lumotlarni tuzilmalashtirishda esa, “quyidan yuqoriga” loyihalash yoki “quyidan yuoriga dasturlash” yondoshuvlari hisoblanadi.

Birinchi holatda (yondoshuvda) dastur bajarishi kerak bo’lgan harakatlar tuzilmalashtiriladi. Ishlab chiqilishi ko’zda tutilgan katta va murakkab dasturni loyihalash kichik hajmdagi bir nechta qism masalalarning yechimlari ko’rinishida hal qilinadi. Shunday qilib, qo’yilgan masalaning to’liq yechimini taqdim etuvchi eng yuqorida turuvchi dasturiy modul, qismmasalalarni yechimini beruvchi modullarga murojaatni amalga oshiradigan yetarli darajada juda oddiy bo’lib chiqadi. Loyihalashning birinchi bosqichida qismmasalalarning dasturiy modullari “qopqoq” ko’rinishda amalga oshiriladi. Shundan so’ng har bir qismmasala o’z navbatida yuqoridagi qoida bo’yicha dekompozitsiya (qismlarga ajratish) qilinadi. Qism masalalarga ajratish jarayoni dekompoziyaning keyingi bosqichida aniq bir masalaning yechimini beradigan holatga kelgunga qadar davom ettiriladi. Dekompozitsiyaning eng quyi holati eng kichik instrumental vosita darajasigacha keltirilishi (masalan, tanlab olingan dasturlash tilidagi bitta operatorgacha dekompozitsiyalash) mumkin.

Ikkinchi yondoshuvda tuzilmalashtirish ma’lumotlarga asoslanadi. Har bir dasturiy mahsulot uchun hamma vaqt Buyurtmachi mavjud. Buyurtmachida esa kiruvchi ma’lumotlar bo’lib, ishlab chiqiladigan dasturiy mahsulot ushbu kiruvchi ma’lumotlarni chiquvchi ma’lumotlarga akslantirish xususiyatlarini o’z ichiga olgan bo’lishi kerak. Dasturlashning instrumental vositalari esa faqat tayanch (oddiy, sodda) ma’lumotlar turi va ular ustida bajariladigan amallarni taqdim etadi. Tayanch ma’lumotlar turini qayta ishlash uchun yoki buyurtmachining kiruvchi ma’lumotlariga moslashtirish uchun dasturchilar juda murakkab ma’lumotlar turlari va ular ustida bajariladigan yangi amallarni yaratishi kerak bo’ladi. Ma’lumotlar turini kompozitsiya (birlashtirish) qilishning oxirgi bosqichida masalaning to’liq yechimini beruvchi mos ravishda kiruvchi va chiquvchi ma’lumotlar va ular ustida bajariladigan amallarni tadbiq etishladi.



Ixtiyoriy loyihani amalga oshirishda qarama-qarshi amallar, ya’ni ma’lumotlar tuzilmalarini ishlab chiqish natijalari bo’yicha algoritmning tuzilishini doimiy ravishda tuzatib borish va aksincha, algoritmlarga mos ravishda ma’lumotlar tuzilmasida tuzatishlar kiritish ishlari bajarib boriladi.
Mustaqil ishlash uchun savollar:

  1. Ma’lumot nima?

  2. Tuzilma nima?

  3. Ma’lumotlar tuzilmasini ta’riflang?

  4. Ma’lumotlarni tasvirlash bosqichlari.

  5. Ma’lumotlar tuzilmasi klassifikatsiyasi?

  6. Ma’lumotlarning oddiy, integrallashgan va foydalanuvchi turlari.

  7. Ko’rsatkichli turlarning sintaksisi.


Adabiyotlar

  1. [RU] Алфред В. Ахо., Джон Э. Хопкрофт, Джефри Д. Ульман. Структура данных и алгоритмы. //Учеб.пос., М.: Изд.дом: "Вильямс", 2000, — 384 с.

  2. [EN] Adam Drozdek. Data structures and algorithms in C++. Fourth edition.Cengage Learning, 2013.

  3. [UZ] Narzullaev U.X., Qarshiev A.B., Boynazarov I.M. Ma’lumotlar tuzilmasi va algoritmlar. //O’quv qo’llanma. Toshkent: Tafakkur nashriyoti, 2013 y. – 192 b.

  4. [RU] Лойко В.И. Структуры и алгоритмы обработки данных. Учебное пособие для вузов. - Краснодар: КубГАУ. 2000. - 261 с., ил.



Download 333.5 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling