5-laboratoriya ishi mavzu: Konteynerlar adapterlari. Konteynerlar bilan ishlash algoritmlari Ishning maqsadi


Download 1.49 Mb.
Sana04.04.2023
Hajmi1.49 Mb.
#1328909
Bog'liq
2 5359346769899555929


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 > class queue
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 () {
stackst;
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: "<cout< return 0; }

Download 1.49 Mb.

Do'stlaringiz bilan baham:




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