3-Mavzu: Assotsiativ va tartiblanmagan assotsiativ konteynerlar bo’yicha amaliyot ishi
Download 0.52 Mb. Pdf ko'rish
|
dasturlash 3-kredit
> s;
int n; 11. cout<< "Elementlar sonini: " ; cin>>n; 12. multiset < int > 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 < int > s2; 19. for ( int i = 0; i < n; i++) 20. { 21. s2.insert(*k2); k2++; 22. } 23. cout< "M to'plam elementlari:" < 24. for ( auto i=M.begin(); i!=M.end(); i++) 25. { 26. cout<<*i<< " " ; 27. } 28. cout< 29. cout< "M2 to'plam elementlari:" < 30. for ( auto i=M2.begin(); i!=M2.end(); i++) 31. { 32. cout<<*i<< " " ; 33. } 34. cout< "M1 ning elementlari M2 to'plamda qatnashganlari soni:" < 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<< " -" < " marta " < 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< "Saralangan to'plam elementlari:" < 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< w(5)< } 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); set < Telefon >st; 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 g‘oyasi: map konteyneri to’plami yaratiladi. map ning insert(pair 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 < string , int > M, M2; 11. for ( int i = 0; i < n; i++) 12. { string St; 13. int step; 14. cout< " - talaba ma'lumotlarini kiriting:" < 15. cout<< "Fam, ismi: " ; getline(cin,St); 16. cout<< "Stipendiyasi: " ; cin>>step; cin.ignore(); 17. M.insert( pair < string , int >(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( " " ) 27. M2.insert( pair < string , int >(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< " " < 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 3.1. 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. Amaliyot ishini bajarish bo’yicha variantlar Berilgan vazifalarni bajarishda kiruvchi qiymatlar matinli fayldan o’qib olinishi kerak. 1- jadval 1 Berilgan int turidagi to’plam qiymatlarining juftlari 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. 2 Berilgan int turidagi to’plam qiymatlarining toqlari 2- va 3- 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. 3 Berilgan int turidagi to’plam qiymatlarining tublari 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. 4 Berilgan float turidagi to’plam qiymatlarining butun(nuqtadan oldin) qismi 2- to’plamga, kasr(nuqtadan keyin) qismi 3- to’plamga joylashtiruvchi 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. 5 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. 6 Berilgan float turidagi to’plamning 2 ta juft 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. 7 Berilgan string turidagi to’plamning 2 ta elementidan 2- to’plamni, 3 ta elementidan 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. 8 Berilgan string turidagi to’plamning juft uzinlikka ega bo’lgan elementidan 2- to’plamni, toq uzinlikdagi elementidan 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. 9 Berilgan string turidagi to’plamning 2 ta so’zdan iborat elementidan 2- to’plamni, 1 ta so’zdan iborat elementidan 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. 10 Berilgan string turidagi to’plamning 1 ta so’zdan iborat elementlarini o’chiruvchi va 1 ta so’zdan iborat elementidan 2- to’plamni hosil qiluvchi hamda ularni ekranga chiqaruvchi dastur tuzing. 11 Berilgan string turidagi to’plamning katta harfdan iborat elementlarini o’chiruvchi va kichik harfdan iborat elementidan 2- to’plamni hosil qiluvchi hamda ularni ekranga chiqaruvchi dastur tuzing. 12 Berilgan string turidagi to’plamda katta harfdan va kichik harfdan boshlanuvchi elementlari soni aniqlovchi hamda ularni ekranga chiqaruvchi dastur tuzing. 13 Berilgan string turidagi to’plamning katta harfdan iborat elementlarini kichik harfga o’girib, 2- to’plamni va kichik harfdan iborat elementlarini katta harfga o’girib, 3- to’plamni hosil qiluvchi hamda ularni ekranga chiqaruvchi dastur tuzing. 14 Berilgan char turidagi to’plamning 2 ta elementidan 2- to’plamni, 3 ta elementidan 3- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing. 15 Berilgan char turidagi to’plamning juft uzinlikka ega bo’lgan elementidan 2- to’plamni, toq uzinlikdagi elementidan 3- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing. 16 Berilgan char turidagi to’plamning 2 ta so’zdan iborat elementidan 2- to’plamni, 1 ta so’zdan iborat elementidan 3- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing. 17 Berilgan char turidagi to’plamning 1 ta so’zdan iborat elementlarini o’chiruvchi va 1 ta so’zdan iborat elementidan 2- to’plamni hosil qiluvchi hamda ularni ekranga chiqaruvchi dastur tuzing. 18 Berilgan char turidagi to’plamning kata harfdan iborat elementlarini o’chiruvchi va kichik harfdan iborat elementidan 2- to’plamni hosil qiluvchi hamda ularni ekranga chiqaruvchi dastur tuzing. 19 Berilgan char turidagi to’plamda kata harfdan va kichik harfdan boshlanuvchi elementlari soni aniqlovchi hamda ularni ekranga chiqaruvchi dastur tuzing. 20 Berilgan char turidagi to’plamning katta harfdan iborat elementlarini kichik harfga o’girib, 2- to’plamni va kichik harfdan iborat elementlarini katta harfga o’girib, 3- to’plamni hosil qiluvchi hamda ularni ekranga chiqaruvchi dastur tuzing. 21 Berilgan float turidagi to’plam qiymatlarining juftlari 2-va 3- 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. Berilgan to’plam qiymatlarining juftlari yig’indisi hisoblansin. 22 Berilgan float turidagi to’plam qiymatlarining toqlari 2- va 3- 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. Berilgan to’plam qiymatlarining toqlari yig’indisi hisoblansin. 23 Berilgan floar turidagi to’plam qiymatlarining tublari 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. Berilgan to’plam qiymatlarining tublari yig’indisi hisoblansin. 24 Berilgan float turidagi to’plam qiymatlarining yaxlitlab(o’zidan katta yoki teng bo’lgan butun songacha yaxlitlab) 2- to’plamga, ikki to’plam ayirmasini(3=1-2) 3- to’plamga joylashtiruvchi va ularni ekranga chiqaruvchi dastur tuzing. 25 Berilgan float turidagi to’plamning 2 ta elementi o’zidan kichik yoki teng bo’lgan butun songacha yaxlitlab yig’indisidan 2- to’plamni, ayirmasidan 3- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing. 26 Berilgan float turidagi to’plamning 2 ta juft elementi ko’paytmasidan 2- to’plamni, bo’linmasidan 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. 27 Berilgan float turidagi ikkita to’plam qiymatlarining bo’linmasi butun(nuqtadan oldin) qismi 3- to’plamga, kasr(nuqtadan keyin) qismi 4- to’plamga joylashtiruvchi 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. 28 Berilgan string turidagi to’plamda katta harflar va kichik harflar soniga teng uzunlikdagi ikkita to’plam hosil qilinsin va tasodifiy sonlar bilan to’ldirilsin. Barcha to’plam elementlarini ekranga chiqaruvchi dastur tuzing. 29 Berilgan string turidagi to’plamning katta harfdan iborat elementlaridan, 2- to’plamni va kichik harfdan iborat elementlaridan, 3- to’plamni hosil qiluvchi hamda ularni ekranga chiqaruvchi dastur tuzing. 30 Berilgan char turidagi to’plamning kata harflaridan 2- to’plamni, kichik elementidan 3- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing. 31 Berilgan char turidagi to’plamning juft uzinlikka ega bo’lgan elementlarining oxirgi elementini 5 marotaba takrorlab, 2- to’plamni, toq uzinlikdagi to’plamning birinchi elementini 4 marotaba takrorlab, 3- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing. 32 Berilgan char turidagi to’plamning oxiriga ko’rsatkich qaytaruvchi to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing. 33 Berilgan char turidagi to’plamda berilgan kalitga mos keladigan to’plam elementlar sonini aniqlovchi dastur tuzing va to’plamni elementlarini ekranga chiqaruvchi dastur tuzing. 34 Berilgan char turidagi to’plam bo’sh bo’sa, 65-75 gacha qiymat bilan to’ldirilsin aks holda berilgan kalitlarga mos qiymat shu to’plamda borligi aniqlansin. To’plam elementlarini ekranga chiqarilsin. 35 Berilgan char turidagi to’plamning barcha elementlari katta harf bo’sa kichikka kichik harf bo’lsa katta hafrlargi o’tkazuvchi va to’plam elementlarini ekranga chiqaruvchi dastur tuzing. Download 0.52 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling