Ma'lumotlar tuzilmalari ma’lumotlarning abstract turlarini ko'rsatish usullari sifatida chiziqli ma'lumotlar tuzilmalari
Mavzu: Ma'lumotlar tuzilmalari ma’lumotlarning abstract turlarini ko'rsatish usullari sifatida: chiziqli ma'lumotlar tuzilmalari (qator, navbat, ro'yxat, stek) Reja: 1)Ma’lumot. Ma'lumotlar tuzilmalari 2)Malumotlarning abstact turlari. 3) chiziqli ma'lumotlar tuzilmalari (qator, navbat, ro'yxat, stek)
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