5-laboratoriya ishi mavzu: Konteynerlar adapterlari. Konteynerlar bilan ishlash algoritmlari Ishning maqsadi
Download 1.49 Mb.
|
2 5359346769899555929
- Bu sahifa navigatsiya:
- NAZARIY QISM
- Que - navbat
- Navbat
Dasturlash 2 fanidan 911-20 guruhi talabasi Bazarbayev Jamshidning 5-LABORATORIYA ISHI Mavzu:Konteynerlar adapterlari.Konteynerlar bilan ishlash algoritmlari Ishning maqsadi: Ushbu laboratoriyada konteyner adapterlarini o’ranish uchun misoillar beilgan. Misollarni konteyner adapterlarning elementlari bo’lgan setek, queue va priority_queue tuzilmalaridan foydalangan holda echish kerak. NAZARIY QISM C++ standart kutubxonasida konteyner adapterlarining uch turi aniqlangan: stack, navbat(queue); priority_queue. Har biri standart ma'lumotlar tuzilishi uchun aniq boshqariladigan interfeysni ta'minlash uchun ba'zi bazaviy konteynerlar sinfining funktsional imkoniyatlarini cheklaydi. Stek deb shunday strukturaga aytiladiki, stekka kelib tushgan oxirgi elementga birinchi bo’lib xizmat ko’rsatiladi va stekdan chiqariladi. Mazkur ko’rinishdagi xizmat ko’rsatishni LIFO (Last input-First output, ya’ni oxirgi kelgan – birinchi ketadi) nomlash qabul qilingan. Stek bir tomondan ochiq bo’ladi. stack uchun aniqlangan funksiyalar que sinfi Old va orqa elementlarga kirishni cheklab qo'yadigan ba'zi bir konteyner turi uchun ishlashni cheklashni ta'minlaydigan shablon konteyner adapteri sinfidir. Elementlar orqa tomondan qo'shilishi yoki old tomondan olib tashlanishi mumkin va elementlarni navbatning oxirida tekshirish mumkin. Sintaksisi: template Que - navbat Biz navbat bilan ko’p joylarda duch kelamiz: magazinda, o’qishda, ishda va hokazo. Odatda biz unga e’tibor bermaymiz. Dasturiy tizimlarda ham bu navbat tushunchasi ishlatiladi. Masalan, hujjatni chop etish uchun printerga jo’natsak, u navbatga turadi. Navbat – chiziqli ma’lumotlar strukturasi bo’lib, elementni faqat navbat oxiridan kiritish (navbat oxiri), elementni o’chirish esa faqat navbat boshqa oxiridan amalga oshiriladi (navbat boshi). FIFO = First In – First Out «Birinchi kelgan, birinchi ketadi». que uchun aniqlangan funksiyalar Navbat (asosiy funksiyalar) void pop(struct que*p) – navbat oxiridagi elementni o’chirish. void push(struct que*p, void* val) –navbat boshiga element qo’shish. Bu yerda val kiritilayotgan ma’lumotga ko’rsatkich. char* top(struct que p) – navbat boshidagi tugun axborot qismiga ko’rsatkich qaytarish. int empty(struct que p) – navbat bo’shligini tekshirish. int size (struct que p) – navbat elementlari soni. Bundan tashqari navbatni inisiallash uchun quyidagi sarlavhali funksiya kiritilgan. void ini_que(struct que* p,int n) – Bu yerda n kiritilayotgan ma’lumotlar hajmi. 10. Berilgan sonlar ketma-ketligida toq qiymatli elementlarining yig’indisi juft qitmatli elementlari yigindisiga bo’lib chiqilsin. #include #include using namespace std; int main () { stack int n; double S=0, M=0, k; cout<<"Nechta son kiritasiz: " ; cin>>n ; int a[n]; cout<<"Sonlarni kiriting: " ; for(int i=1; i<=n; i++){ cin>>a[i]; st.push(a[i]);} for(int i=1; i<=n; i++) { if (a[i]% 2==1) { S=S+a[i]; } if (a[i]% 2==0) { M=M+a[i]; }} k=S/M; cout<<"Javob: "< Download 1.49 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling