1- laboratoriya ishi konteynerlar (collections)



Download 89,18 Kb.
bet17/20
Sana20.03.2022
Hajmi89,18 Kb.
#502935
1   ...   12   13   14   15   16   17   18   19   20
A.push_front(m);}}

  • int main(){

  • cout<<"Forward_list"<

  • int n; cin>>n; cin.ignore();

  • std::forward_list A;

  • std::forward_list Z;

  • Set_value(A,n);

  • auto s = A.begin();

  • int d, k=0;

  • cout<<"A to'plam qiymatlari"<

  • while(s != A.end()){

  • cout<<*s<

  • d=*s;

  • Z.push_front(func(d));

  • s++;

  • }

  • cout<<"Z to'plam qiymatlari"<

  • for (auto i=Z.begin(); i!=Z.end(); i++){

  • cout<<*i<

  • getchar();

  • }

    Dastur natijasi:

    Forward_list
    2
    1 son: 23
    2 son: 45
    A to'plam qiymatlari
    45
    23
    Z to'plam qiymatlari
    5
    9


    2.5. list konteyneridan foydalanib, amaliy dasturlar yaratish


    Ishning maqsadi: C++ dasturlash tilida list konteyneri va uning metodlaridan foydalanish ko’nikmalarini egallsh.
    Masalaning qo’yilishi:
    Worward_list asosida yaratilgan to’plam elementlarini list ning maxsus funksiyalari yordamida qayta ishlash.
    Masala: Berilgan int turidagi to’plam qiymatlarini juftlarini Z to’plamga joylashtiruvchi va ularni ekranga chiqaruvchi dastur tuzing.
    Masalani yechish goyasi: list konteyneri to’plami yaratiladi. list ning push_back() iteratoridan foydalanib, A to’plamga qiymatlar o’zlashtiriladi. Z to’plamga esa A to’plam qiymatlarini juftlari yoziladi.
    Dastur matni:

    1. #include "stdafx.h"

    2. #include

    3. #include

    4. #include "string";

    5. #include

    6. using namespace System;

    7. using namespace std;




    1. void Set_value(list &A, int n){

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

    3. { float m; cout<>m;

    4. A.push_back(m);

    5. }

    6. }

    7. int main()

    8. {

    9. cout<<"List konteyneri"<

    10. int n; cin>>n; cin.ignore();




    1. std::list A;

    2. std::list Z;

    3. Set_value(A,n);




    1. auto s = A.begin();

    2. int d, k=0;

    3. cout<<"A to'plam qiymatlari"<

    4. while(s != A.end()){

    5. cout<<*s<

    6. d=*s; if(d%2==0)

    7. Z.push_back(d);

    8. s++;

    9. }

    10. cout<<"Z to'plam qiymatlari"<

    11. for (auto i=Z.begin(); i!=Z.end(); i++)

    12. {

    13. cout<<*i<

    14. }

    15. getchar();

    16. getchar();

    17. }

    Dastur natijasi:

    List konteyneri
    5
    1 son: 56
    2 son: 4
    3 son: 71
    4 son: 13
    5 son: 26
    A to'plam qiymatlari
    56
    4
    71
    13
    26
    Z to'plam qiymatlari
    56
    4
    26

    2.6. set va multiset sinflaridan foydalanib, amaliy dasturlar yaratish


    Ishning maqsadi: C++ dasturlash tilida set va multiset sinflari va uning metodlaridan foydalanish ko’nikmalarini egallsh.
    Masalaning qo’yilishi:
    set va multiset asosida yaratilgan to’plam elementlarini set va mutiset ning maxsus funksiyalari yordamida qayta ishlash.
    Masala:
    Berilgan int turidagi to’plam qiymatlari 2- to’plamda nechta marta qatnashganligini aniqlovchi 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.
    Masalani yechish goyasi: set konteyneri to’plami yaratiladi. list ning insert() iteratoridan foydalanib, A to’plamga qiymatlar o’zlashtiriladi. Z to’plamga esa A to’plam qiymatlarini juftlari yoziladi.
    Dastur matni:

    1. #include "stdafx.h"

    2. #include

    3. #include

    4. #include

    5. #include

    6. using namespace System;

    7. using namespace std;




    1. int main()

    2. { srand(time(NULL));

    3. set s; int n;

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

    5. multiset M, M2;

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

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

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

    9. }

    10. auto k2 = M.begin();

    11. set s2;

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

    13. {

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

    15. }




    1. cout<

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

    3. {

    4. cout<<*i<<" ";

    5. }

    6. cout<

    7. cout<

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

    9. {

    10. cout<<*i<<" ";

    11. }




    1. cout<

    2. int soni=0;

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

    4. {

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

    6. {

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

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

    9. }

    10. }

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

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

    13. soni = 0;

    14. }

    15. //cout<

    16. auto k = M.begin();

    17. auto l = M2.begin();

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

    19. {

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

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

    22. }




    1. cout<

    2. cout<

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

    4. {

    5. cout<<*i<<" ";

    6. }

    7. getchar(); getchar();

    8. return 0;

    9. }

    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.7. 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.
    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




    1. using namespace System;

    2. using namespace std;




    1. int main()

    2. { map s; int n;

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

    4. multimap M, M2;

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

    6. { string St;

    7. int step;

    8. cout<

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

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

    11. s.insert(pair(St,step));

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

    13. }

    14. string S;

    15. int N;

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

    17. cin>>N;

    18. int k=0;

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

    20. S = it->first;

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

    22. M2.insert(pair(S,N)); cout<<"bor"<

    23. }

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

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

    26. cout<first<<" "<second<

    27. }

    28. getchar(); getchar();

    29. return 0;

    30. }


    Dastur natijasi:

    Talabalar sonini kiriting: 3
    1 - talaba ma'lumotlarini kiriting:
    Fam, ismi: Mallayev Oybek
    Stipendiyasi: 400000
    2 - talaba ma'lumotlarini kiriting:
    Fam, ismi: Ishniyazov Odil
    Stipendiyasi: 500000
    3 - talaba ma'lumotlarini kiriting:
    Fam, ismi: ABdurahmonov
    Stipendiyasi: 300000
    Qanday stipendiya oladigan talaba haqida ma'lumot kerak?: 400000
    bor
    So'rov Natijasi:
    Mallayev Oybek 400000


    2.8. stack sinflaridan foydalanib, amaliy dasturlar yaratish


    Ishning maqsadi: C++ dasturlash tilida satck sinflari va uning metodlaridan foydalanish ko’nikmalarini egallsh.
    Masalaning qo’yilishi:
    stack asosida yaratilgan to’plam elementlarini push(), top(), pop() va empty() iteratorlar yordamida qayta ishlash.
    Masala:
    Savatga hajmi har xil (bir xillari ham bor) tuxumlar solingan. Ushbu tuxumlardan bir xil hajimli tuxumlar sonini aniqlovchi va ulardan bittasini qoldirish va qolganlarini o’chirish dasturini tuzing.
    Masalani yechish goyasi:
    stack konteyneri to’plami yaratiladi. Stack ning push() iteratoridan va set ning insert((a)) iteratoridan foydalanib, Stak to’plamga qiymatlar o’zlashtiriladi. Ichma ich sikl jarayonidan bir xil hajmli tuhumlar soni aniqlanadi.


    Dastur matni:

    1. #include "stdafx.h"

    2. #include

    3. #include

    4. #include

    5. #include

    6. #include

    7. #include

    8. using namespace System;

    9. using namespace std;

    10. int main()

    11. { srand(time(NULL));

    12. int n; cout<<"Tuxumlar sonini kiriting:= "; cin>>n;

    13. stack Stak[100];

    14. stack Stak2[100];

    15. set M;

    16. for (int j = 0; j < n; j++) {

    17. int a; a=rand()%n+n;;

    18. Stak[j].push(a); Stak2[j].push(a);

    19. M.insert(a);

    20. }

    21. cout<




    1. int w=0, sum=0;

    2. while (!Stak2[w].empty()){ int r=0;

    3. while (!Stak2[r].empty()){

    4. if(Stak2[w].top() == Stak2[r].top() && w!=r){

    5. sum+=1; Stak2[r].pop();

    6. } else r++;

    7. } w++;

    8. }

    9. int k=0;

    10. cout<<" Joriy qiymatlar"<


    Download 89,18 Kb.

    Do'stlaringiz bilan baham:
  • 1   ...   12   13   14   15   16   17   18   19   20




    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