3-Mavzu: Assotsiativ va tartiblanmagan assotsiativ konteynerlar bo’yicha laboratoriya ishi



Download 48,71 Kb.
bet2/2
Sana31.12.2021
Hajmi48,71 Kb.
#216528
1   2
Bog'liq
rQV4fjG-zfxASd6IFGCZY7YiNX0ZSd2w

Dastur matni:

  1. #include "stdafx.h"

  2. #include

  3. #include

  4. #include

  5. #include

  6. using namespace System;

  7. using namespace std;

  8. int main()

  9. { srand(time(NULL));

  10. set s; int n;

  11. cout<<"Elementlar sonini: "; cin>>n;

  12. multiset M, M2;

  13. for (int i = 0; i < n; i++)

  14. { int j = rand()%n+n; M.insert(j);

  15. j = rand()%n+n; M2.insert(j);

  16. }

  17. auto k2 = M.begin();

  18. set s2;

  19. for (int i = 0; i < n; i++)

  20. {

  21. s2.insert(*k2); k2++;

  22. }

  23. cout<

  24. for (auto i=M.begin(); i!=M.end(); i++)

  25. {

  26. cout<<*i<<" ";

  27. }

  28. cout<

  29. cout<

  30. for (auto i=M2.begin(); i!=M2.end(); i++)

  31. {

  32. cout<<*i<<" ";

  33. }

  34. cout<

  35. int soni=0;

  36. for (auto i=s2.begin(); i!=s2.end(); i++)

  37. {

  38. for (auto j=M2.begin(); j!=M2.end(); j++)

  39. {

  40. if(M2.count(*i)){

  41. if(*i==*j) {soni++; }

  42. }

  43. }

  44. if(soni>0)cout<<*i<<" -"<

  45. else {cout<<*i<<" - qatnashmagan "<

  46. soni = 0;

  47. }

  48. //cout<

  49. auto k = M.begin();

  50. auto l = M2.begin();

  51. for (int i = 0; i < n; i++)

  52. {

  53. s.insert(*k);k++;

  54. s.insert(*l); l++;

  55. }

  56. cout<

  57. cout<

  58. for (auto i=s.begin(); i!=s.end(); i++)

  59. {

  60. cout<<*i<<" ";

  61. }

  62. getchar();

  63. return 0;

  64. }

Dastur natijasi:

Elementlar sonini: 25

M to'plam elementlari:

25 27 27 27 27 28 29 30 31 31 31 32 33 33 35 35 37 37 40 42 42 43 43 47 48

M2 to'plam elementlari:

26 27 30 31 31 31 31 34 35 37 38 39 42 43 45 45 45 46 46 46 46 47 47 49 49

M1 ning elementlari M2 to'plamda qatnashganlari soni:

25 - qatnashmagan

27 -1 marta

28 - qatnashmagan

29 - qatnashmagan

30 -1 marta

31 -4 marta

32 - qatnashmagan

33 - qatnashmagan

35 -1 marta

37 -1 marta

40 - qatnashmagan

42 -1 marta

43 -1 marta

47 -2 marta

48 - qatnashmagan


Saralangan to'plam elementlari:

25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 42 43 45 46 47 48 49

__________________________________________________________________

2- Masala: Telefon classi yaratilsin va obyektlarni set konteyneriga joylashtiring. Tartiblash narxlarining o’sish tartibida bo’lsin. Telefonlar haqida to’liq ma’lumot chop etilsin.

Masalani yechish g’oyasi: Telefon classi yaratiladi. Set konteyneri qoidasiga ko’ra uning elementlari ma’lum qoida asosida tartiblanishi kerak. Shu sababli telefon classi da so’ralgan maydon bo’yicha tartiblash uchun munosabat operatorini qayta yuklashga to’g’ri keladi. So’ngra asosiy funksiyada set konteyneri yaratilib unga telefon obyektlarimizni joylashtiramiz.

Dastur matni:

#include

#include

#include

#include

#include

#include

using namespace std;

class Telefon{

public: string nomi, versiyasi, xotirasi;

int yili, narxi;



Telefon(string nomi, string versiyasi, string xotirasi, int yili, int narxi){

this->nomi=nomi; this->versiyasi=versiyasi; this->xotirasi=xotirasi;

this->yili=yili; this->narxi=narxi;

}

void chop_qil(){



cout<

}

bool operator<(const Telefon& right) const

{

if(narxi<=right.narxi) return true;

else return false;

}

};

void show(Telefon i){i.chop_qil();}
int main(){

Telefon t("Nokia","A12","16Gb",2019,800000);

Telefon t1("Iphone","9","64Gb",2020,12000000);

Telefon t2("Samsung","S9","32Gb",2017,2800000);

setst;

st.insert(t);

st.insert(t1);

st.insert(t2);

for_each(st.begin(),st.end(), show);

system("pause");

}

Dastur natijasi:



__________________________________________________________________

3.2. map va multimap sinflaridan foydalanib, amaliy dasturlar yaratish

Ishning maqsadi: C++ dasturlash tilida map va mulmap sinflari va uning metodlaridan foydalanish ko’nikmalarini egallsh.

Masalaning qo’yilishi: map va multimap asosida yaratilgan to’plam elementlarini map va mutimap ning maxsus funksiyalari yordamida qayta ishlash.

1-Masala: Talabalarning haqida (familiya, ismi va stipendiyasi) string va float turidagi to’plam berilgan. Familiyasi yoki ismi to’liq yozilganlar va stipendiyasi N ga teng bo’lganlaridan 2- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing.



Masalani yechish goyasi: map konteyneri to’plami yaratiladi. map ning insert(pair('a',10)) iteratoridan foydalanib, A to’plamga qiymatlar o’zlashtiriladi.

Dastur matni:

  1. #include "stdafx.h"

  2. #include

  3. #include

  4. #include

  5. using namespace System;

  6. using namespace std;

  7. int main()

  8. { int n; bool t=false;

  9. cout<<"Talabalar sonini kiriting: "; cin>>n; cin.ignore();

  10. multimap M, M2;

  11. for (int i = 0; i < n; i++)

  12. { string St;

  13. int step;

  14. cout<

  15. cout<<"Fam, ismi: "; getline(cin,St);

  16. cout<<"Stipendiyasi: "; cin>>step; cin.ignore();

  17. M.insert(pair(St,step));

  18. }

  19. string S;

  20. int N;

  21. cout<<"Qanday stipendiya oladigan talaba haqida ma'lumot kerak?:";

  22. cin>>N;

  23. int k=0;

  24. for (auto it = M.begin(); it != M.end(); ++it){

  25. S = it->first;

  26. if(S.find(" ")second == N){

  27. M2.insert(pair(S,N));t=true;}

  28. }

  29. cout<<"So'rov Natijasi:"<

  30. if(t){ cout<<"bor"<

  31. for (auto it = M2.begin(); it != M2.end(); ++it){

  32. cout<first<<" "<second<

  33. }

  34. }

  35. system("pause");

  36. return 0;

  37. }

Dastur natijasi:

Talabalar sonini kiriting: 3

1 - talaba ma'lumotlarini kiriting:

Fam, ismi: Sobirov Sardor

Stipendiyasi: 400000

2 - talaba ma'lumotlarini kiriting:

Fam, ismi: Botirov Xusan

Stipendiyasi: 500000

3 - talaba ma'lumotlarini kiriting:

Fam, ismi: Asadullayev

Stipendiyasi: 400000

Qanday stipendiya oladigan talaba haqida ma'lumot kerak?: 400000



bor

So'rov Natijasi:



Sobirov Sardor 400000
Download 48,71 Kb.

Do'stlaringiz bilan baham:
1   2




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish