«kif» fakulteti Laboratoriya ishi Bajardi: swd015-L3 Abdivaitova D. Tekshirdi: Raxmanov Asqar
Download 408.35 Kb.
|
«kif» fakulteti Laboratoriya ishi Bajardi swd015-L3 Abdivaitova
O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI «_____KIF____» fakulteti Laboratoriya ishi Bajardi: SWD015-L3 Abdivaitova D. Tekshirdi: Raxmanov Asqar Toshkent – 2019 4-labaratoriya ishi DINAMIK MA’LUMOTLAR TUZILMASINI TADQIQ QILISH. CHIZIQLI BOG’LANGAN RO’YHATLAR. Ishdan maqsad: Chiziqli, bir bog‘lamli ro‘yhatlar tuzilmasini o‘rganish va uni ustida amal bajarish algoritmlarini tadqiq qilish. Динамик дастурлаш – маълум тузилмада оптимал бошкариш масаласини ечишнинг хисоблаш усулидир. Динамик дастурлаш(ДД) куп улчамли масалани кичик этапларга декомпозиция килинади ва бир улчовли масалаларни ечиш оркали куп улчамли масалани ечилади. Бу усулда мураккаб масалани ечиш, бир нечта содда оптимизация масалаларни ечиш оркали бажарилади. Динамик дастурлаш методи кулланилиши: Бир-бирини тулдирувчи соддарок масалалар ёрдамида ифодалаш мумкин булган масалаларни ечиш; Бу холда хисоблаш вакти бошка усулларга нисбатан анча кам булади, хисоблашлар жуда осон йул билан амалга оширилади. 1-variant Elementni n pozitsiyaga siljitish dasturini tuzing. Dastur kodi #include using namespace std; struct Node { int number; Node* next; }; int k; struct Node* head = NULL; struct Node* lastPtr = NULL; void qushish() { Node* ptr = new Node; int numb = -1; cout<<"son kiriting: "; cin>>numb; ptr->number = numb; ptr->next = NULL; if (head == 0) { head = ptr; lastPtr = ptr; } lastPtr->next = ptr; lastPtr = ptr; } void qushish1(int a) { Node* ptr = new Node; int numb = -1; ptr->number = a; ptr->next = NULL; if (head == 0) { head = ptr; lastPtr = ptr; } lastPtr->next = ptr; lastPtr = ptr; } void chop_etish() { Node* ptr = NULL; if (head == 0) { cout<<"\t!!! ro'yhat bo'sh !!!\n\n"; } cout<<"* * * * * ro'yhat * * * * *\n\n"; ptr = head; while (1) { cout< number<<" "; if (ptr->next == 0) break; ptr = ptr->next;} cout<<"\n\n";} int boshidan_el_uchirish(){ Node* p = new Node; if (head == NULL) { cout<<"ro'yhat bo'sh"; } else { p = head; head = p->next ; return p->number; delete(p); } } int main() { int n; cout<<" Ro'yhat elementlari sonini kiriting:\n"; cin>>n; cout<<" Ro'yhat elementlarini kiriting:\n"; for(int i=0;i { qushish(); } chop_etish(); cout<<" n siljish pozitsiyasini kiriting: "; cin>>k; for(int i=0;i { int h=boshidan_el_uchirish(); qushish1(h); } cout<<" Ro'yhat "< chop_etish(); } Dastur natijasi: \ 16-variant O’quvchilar familiyalari va imtihon biletlari raqamlaridan tashkil topgan 2 ta halqasimon ro’yhat berilgan. O’quvchilar tomonidan olingan bilet raqamlari aniqlansin. Imtihon biletlari uchun qayta hisoblash soni - E, o’quvchilar uchun esa - K. Dastur kodi #include #include #include using namespace std; struct Node { int number; string ismi; Node* next; }; unsigned int n,k; struct Node* head = NULL; struct Node* lastPtr = NULL; void qushish() { Node* ptr = new Node; int numb = -1; string a; cout<<" ismini kiriting: "; cin>>a; cout<<"o'quvchiga tushgan variant: "; numb=rand()%k+1; ptr->number = numb; cout< number< ptr->ismi = a; ptr->next = NULL; if (head == 0) { head = ptr; lastPtr = ptr; } lastPtr->next = ptr; lastPtr = ptr; } void chop_etish() { Node* ptr = NULL; if (head == 0) { cout<<"\t!!! ro’yhat bo’sh !!!\n\n"; } cout<<"* * * * * ro’yhat * * * * *\n\n"; ptr = head; while (1) { cout< number<<" "; cout< ismi<<" \n"; if (ptr->next == 0) break; ptr = ptr->next;} cout<<"\n\n";} void aniqla(string i){ Node* ptr = NULL; if (head == 0) { cout<<"\t!!! ro’yhat bo’sh !!!\n\n"; } //cout<<"* * * * * ro’yhat * * * * *\n\n"; ptr = head; while (1) { if(i==ptr->ismi) { cout< ismi<<"ga tushgan variant: "; cout< number; break; } ptr = ptr->next;} cout<<"\n\n";} int main() { string a; cout<<" Ro'yhat o'quvchilari sonini kiriting:\n"; cin>>n; cout<<" Variantlar sonini kiriting:\n"; cin>>k; cout<<" O'quvchilar ma'lumotlarini kiriting:\n\n"; for(int i=0;i { cout< } //chop_etish(); cout<<" Kerakli varinatni o'quvchi familiyasini kiriting\n"; cin>>a; aniqla(a); } Dastur natijasi: \
Biz bu laborotoriya ishda dinamik ma’lumotlar tuzilmasini tadqiq qilish.Chiziqli bog’langan ro’yhatlar haqida dastur tuzdik har kim o’z varianti bo’yicha misollarni ishladik. Dinamik dasturlash ma'lum tuzilmada оptimal boshqarish masalasini yechishning hisoblash usulidir. Download 408.35 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling