O‘zbekiston respublikasiaxborot texnologiyalari va
Download 0.55 Mb. Pdf ko'rish
|
3-amaliy-ish MTA Nafisa
O‘ZBEKISTON RESPUBLIKASIAXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQAND FILIALI "Axborot texnologiyalari" kafedrasi Amaliy ish Fan: “Ma’lumotlar tuzilmasi va algoritmlar (A)” Guruh: KI 21-15 Talaba: Xudoynazarova Nafisa Rahbar: Xolmatov O. A. Samarqand-2022 3-Amaliy mashg’ulot bo’yicha 1. Ishdan maqsad 2. Mavzu bo’yicha qisqacha tushunchalar 3. Masalani yechish (algoritm, dastur kodi, natija) 4. Xulosa 5. Foydalanilgan adabiyotlar Nazariy qismi Stack bu yana bir chiziqli ma’lumot tuzilmasi bo’lib, u ham Linked listning maxsus bir ko’rinishi hisoblanadi. Stackda har bir tugunda ma’lumot va o’zidan oldingi tugun adresi saqlanadi. Shuning uchun unda faqat oxirgi qo’shilgan ma’lumot ustidagina qandaydir amal bajarish mumkin. Ko’pchilikni “hayotini saqlab qolgan” CTRL+Z operatsiyasini ko’z oldingizga keltiring. Har safar bu tugmalarni bosganda oxirgi qilgan ishlaringiz orqadan oldinga qarab chiqib keladi (bekor qilinadi). Huddi shu yerda stack tuzilmasi ishlatilganini ko’rishimiz mumkin. Stackga hayotiy misol sifatida bir uchi yopiq bo’lgan trubani keltirish mumkin. Trubaga do’stingiz bir nechta turli rangdagi sharlar tashladi. Endi siz sharlar rangini bilish uchun faqatgina do’stingiz oxirgi bo’lib truba ichiga tashlagan sharning ranginigina ko’ra olasiz. Qolgan sharlarni ko’rish uchun do’stingiz tashlagan tartibdan teskari tartibda ularni olib chiqishingiz kerak bo’ladi. Rekursiv funksiyalar ham huddi shunday ishlaydi. Oxiriga yetmagan funksiyalar (return bo’lmagan) kelgan joyidan rekursiya stekiga tashlab ketilaveradi va keyin ular orqadan oldinga qarab bajariladi. Operatsiyalarning bunday ko’rinishda bajarilish jarayoni LIFO (Last In First Out) deb ataladi. Stacklar bilan ishlashda doim eng oxirgi element adresi “esda saqlanadi” va bu element ko’pincha top deb ataladi. Massiv so’zining ma’nosi o’lcham, o’lchov demakdir. Massivning barcha elementlari bitta turga mansub bo’lib, ular bitta nom bilan nomlanadi va bir-birlaridan nomerlari (indekslari) bilan farq qiladi. Endi dasturdagi ma’lumot strukturalari bilan tanishishni boshlaymiz. Dasturda ikki asosiy tur ma’lumot strukturalari mavjuddir. Birinchisi statik, ikkinchisi dinamikdir. Statik deganimizda xotirada egallagan joyi o’zgarmas, dastur boshida beriladigan strukturalarni nazarda tutamiz. Mavz : Dekning toq elementlaridan navbat, juft elementlaridan stek hosil qiling. Statik massivlar elementlar soni oldindan ma’lum bo’lgan va initsializatsiyalangan (qiymat belgilangan) massivlar hisoblanadi. Dinamik ma’lumot tiplari dastur davomida o’z hajmini, egallagan xotirasini o’zgartirishi mumkin. Dinamik massivlar esa elementlari soni oldindan ma’lum bo’lishi va uni initsializatsiyalash (qiymat belgilash) shart emas. Statik massivlarning kamchiliki shundaki, agar ularning o’lchamini oldindan juda katta olinsa-yu, uning ko’p qismi keraksiz qolib ketsa, u holda xotira behuda sarflanishiga olib keladi. Shu muammoni hal qilish maqsadida massivlar C# tilida asosan dinamik tarzda e’lon qilinadi. Massivlar dasturlashda eng ko’p qo’laniladigan ma’lumot tiplaridir. Massivlar hotirada ketma-ket joylashgan, bir tipdagi o’zgaruvchilar guruhidir. Alohida bir o’zgaruvchini ko’rsatish uchun massiv nomi va kerakli o’zgaruvchi indeksini yoziladi. M1 va M2 nomli massivlarning elementlari uchun 10 va 100 ta joy ajratilgan. Ular ham dinamik massiv hisoblanadi. M3 massiv uchun xotiradan qancha joy ajratish foydalanuvchining o’ziga havola qilingan, ya’ni n o’zgaruvchisi klaviaturadan kiritiladi, bu o’zgaruvchi qiymati esa M3 massiv o’lchami sifatida qabul qilinadi. M3 massiv dinamik massivga yorqin misoldir. Dinamik massiv o’lchami ham statik massiv kabi aniqlanishi lozim, faqat bunda u dastur ishlashi davomida anqlanishi bilan static massivdan farq qiladi. Indekslar massiv elementlariga murojat qilish uchun ishlatiladi. Indeks massivdagi element sonini bildiradi .Massivdagi to’rtinchi elementga murojat qilish uchun biz 3 indeksidan foydalanishimiz kerak. Misol uchun :num[3]. Massiv elementlarining qiymatlarini olish va o’rnatish uchun indekslardan foydalanamiz. Va bizda faqat 4 ta element uchun belgilangan massiv mavjud bo’lgani uchun , masalan oltinchi elementni qo’llay olmaymiz nums[5]=5;. Agar biz buni qilishga harakat qilsak biz IndexOutOfRangeException-ni olamiz. Statik massivlar elementlar oldindan aniqlanadi. Buning uchun sikl operatorlariga murojaat qilamiz. Masalan, quyidagi misolda dinamik massivga qiymat berish hamda uning elementlarini chop etish amallar ko’rsatilgan. Biz massiv elementlari bilan ishlashimiz uchun for sikl operatori kerak buladi. Bu haqida yetarlicha bilimga ega bo’lmasayiz quyidagi link orqali o’tsangiz Starter bulimida Suxrob Xayitmurodov yetarlicha malumot bergan. Agar for sikl operatori haqida malumotga ega bulsayiz davom etamiz. Bu dasturda A massivning elementlari sifatida i ning qiymatlari kelmoqda. Xuddi shunday massiv elementlarini klaviatura orqali ham kiritish mumkin. Buning uchun quyidagi kodni ko’raylik. Amaliy ish jarayoni Tartib raqam: 28 Dekning toq elementlaridan navbat, juft elementlaridan stek hosil qiling. Dastur kodi #include #include using namespace std; int a[10],n,R=0; bool isEmpty(){ if(R==0) return true; else return false; } bool isFull(){ if(R>=10) return true; else return false; } int kirit_left(int s){ if(isFull()){cout<<"\ndek to'ldi";n=R;return EXIT_SUCCESS;} for(int i=R;i>0;i--) a[i]=a[i-1]; a[0]=s;R++; } int olish_left(){ if(isEmpty()){cout<<"\ndek bo'sh";return EXIT_SUCCESS;} int t=a[0]; for(int i=0;i a[i]=a[i+1]; R--; return t; } int kirit_right(int s){ if(isFull()){cout<<"\ndek to'ldi";n=R;return EXIT_SUCCESS;} a[R]=s;R++; } int olish_right(){ if(isEmpty()){cout<<"\ndek bo'sh";return EXIT_SUCCESS;} R--; return a[R]; } int print(){ cout< cout< } int main(int argc, char *argv[]) { int n,s;cout<<"n="; cin>>n; for(int i=0;i if(!isFull()){ cout<<"kirit=";cin>>s; if(i>=n/2) kirit_right(s); else kirit_left(s);} else {cout<<"dek to'ldi\n";break;} } print(); int b[n/2],k=0,c[n/2],p=0; while(!isEmpty()){ int q=olish_left(); if(q%2==0) b[k++]=q; if(isEmpty()) break; int p=olish_right(); if(p%2==0) b[k++]=p; } int i=0; while(i kirit_right(b[i]); i++; } print(); system("PAUSE"); return EXIT_SUCCESS; } Dastur natijasi n=8 kirit=1 kirit=2 kirit=3 kirit=4 kirit=5 kirit=6 kirit=7 kirit=8 dek ele-tlari=4 3 2 1 5 6 7 8 dek ele-tlari=4 8 2 6 Xullosa Men Xudoynazarova Nafisa hozirgi kunda men o’zim qiziqgan fanim Malumotlar tuzulmasi va Algoritm amaliy fani menga juda qiziqarli bo’lib o’tilmoqda ayniqsa bizga hayotimizda kerak bo’ladigan amaliy mashg’lotlarga judaham qiziqishim ortib bormoqda bu fanga bundan keyingi ishlarimda yanada o’zimni ustumda ishlagan holda mukammal tarzda o’rganmoqchiman. Kompyuterda har qanday dastur ustuda ishlamoqchiman va yaxshilab o’rganmoqchiman. C++ dasturlash tilini judaham chuqur tarzda o’rganmoqchiman. Foydalanish uchun adabiyotlar ro‘yxati 1. «Axborotlashtirish to‘g‘risida».O‘zbekiston Respublikasining qonuni. Toshkent shahri, 2003 yil 11 dekabr. 2. Zamonaviy axborot-kommunikatsiya texnologiyalarini yanada joriy etish va rivojlantirish chora-tadbirlari to‘g‘risida. O‘zbekiston Respublikasi Prezidentining Qarori, 2012-yil 21-mart, PP-1730. 3. O‘zbekiston Respublikasi Prezidentining «Oliy ta’lim tizimini yanada rivojlantirish chora-tadbirlari to‘g‘risida»gi PQ -2909-sonli Qarori, 2017 yil 20 aprel//O‘zbekiston Respublikasi qonun hujjatlari to‘plami, 2017 y. 4. Talaba mustaqil ishini tashkil etish to‘g‘risida. O‘zR OO‘MTVning 2009 yil 21- fevraldagi 286 - sonli buyrug‘i. 5.Muhammad al-Xorazmiy nomidagi Toshkent axborot texnologiyalari universitetida kadrlar tayyorlash tizimini tubdan takomillashtirish va samaradorligini oshirish chora tadbirlari to‘g‘risida. O‘zbekiston Respublikasi Vazirlar Mahkamasining qarori. Toshkent sh., 2018 yil 24 iyul, 569-son. Download 0.55 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling