931-21 guruh talabasi Karimboyev Sardor Tajriba ishi №4 Mavzu: Konteyner sinflar. Аssotsiativ konteynerlar (set, map). Tartiblanmagan assotsiativ konteynerlar (unordered_set, unordered_map, unordered_multiset, unordered_multimap)
1- jadval
Berilgan float turidagi to’plamning 2 ta elementi yig’indisidan 2- to’plamni, ayirmasidan 3- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing. Ikkala to’plamdan ham bir xil qiymatli elemetlar o’chirilib Saralangan to’plam hosil qilinsin hamda uning qiymatlari ekranga chiqarilsin.
Masalaning qo’yilishi: map va multimap asosida yaratilgan to’plam elementlarini map va mutimap ning maxsus funksiyalari yordamida qayta ishlash.
Laboratoriya mashg’ulotini bajarish bo’yicha variantlar Berilgan vazifalarni bajarishda kiruvchi qiymatlar matinli fayldan o’qib olinishi kerak.
Kompyuterlar haqida (nomi, firmasi, xotirasi, yadrosi, yili va yadrosi) to’plam berilgan. Kompyuterlarni yadrosi va firmasi bo’yicha qidiruvchi hamda topilgan natijani faylga saqlashni taklif qiladigan dastur tuzing.
1-topshiriq
5-misol
#include #include #include using namespace std;
int main (){
multiset mS;
int n;
cin>>n;
for(int i=1; i<=n; i++){
int t;
cin>>t;
mS.insert(t);
}
multiset :: iterator itr,itr2;
multiset m1,m2;
itr2 = mS.begin();
itr2++;
int k = 0;
for(itr=mS.begin();itr!= mS.end(); ++itr){
int d1 = *itr2+*itr;
m1.insert(d1);
int d2 = *itr2-*itr;
m2.insert(d2);
itr2++;
k++;
if(k==n-1) break;
}
//cout<cout<<"\nYigindi multiset:\n";
for(itr = m1.begin(); itr!=m1.end(); ++itr){
cout<<*itr<<" ";
}
cout<<"\nAyirma multiset:\n";
for(itr = m2.begin(); itr!=m2.end(); ++itr){
cout<<*itr<<" ";
}
}
2-topshiriq
5-misol
#include
#include #include #include using namespace std;
int main(){
int n; bool t=false;
cout<<"Kompyuterlar sonini kiriting: ";
cin>>n;
multimap M, M2;
cout<<"Kompyuter ma'lumotlarini kiriting:"<for (int i = 0; i < n; i++){
string FIO;
int stepindiya;
string nomi,firma,xotirasi,yili;
cout<<"Nomi: "; cin>>nomi;
cout<<"Firmasi: "; cin>>firma;
cout<<"Xotirasi: "; cin>>xotirasi;
cout<<"Yili: "; cin>>yili;
int yadro;
cout<<"yadrosi: ";
cin>>yadro;
string s = nomi+" "+firma+" "+xotirasi+" "+yili;
M.insert(pair(s,yadro));
}
multimap :: iterator it;
cout<<"Fayldagi ma'lumotlar:\n";
for ( it = M.begin(); it != M.end(); ++it){
cout<first<<" "<second<}
string S;
int N;
cout<<"Qanday yadroli kompyuter haqida ma'lumot kerak?:";
cin>>N;
int k=0;
for ( it = M.begin(); it != M.end(); ++it){
S = it->first;
if( it->second == N){
M2.insert(pair(S,N));t=true;
}
}
cout<<"So'rov Natijasi:"<if(t){ cout<<"bor"<cout<<"Natijalarni faylga chiqaramizmi? y/n\n";
char a;
cin>>a;
if(a=='y'){
cout<<"Malumotlar natija.txt fayliga uzatildi.\n";
}
else{
cout<<"Malumotlar consolga uzatildi.\n";
for ( it = M2.begin(); it != M2.end(); ++it){
cout<first<<" "<second<}
}
} else cout<<"yo'q";
}