1-laboratoriya mashguloti
Download 82.13 Kb.
|
1-laboratoriya mashg’uloti Statik ma\'lumotlar tuzilmalarini o\'rg-fayllar.org
- Bu sahifa navigatsiya:
- Nazariy qism.
xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"> 1-laboratoriya mashguloti Statik ma'lumotlar tuzilmalarini o'rganish Ishdan maqsad: Statik marganish va ularni tadqiq qilish. Qolumotlar tuzilmalarini yaratish va ularga doir misollarning dasturini ishlab chiqish. Ish tartibi: Tajriba ishi nazariy marganish; Berilgan topshiriqning algoritmini ishlab chiqish; C++ dasturlash muhitida dasturni yaratish; Natijalarni tekshirish; Hisobotni tayyorlash va topshirish. Nazariy qism. Maliqliklari olgan tuzilmaga aytiladi.Statik tuzilmalarni kolchovli bolchovli massivlar C++ da quyidagicha elchovli massivlar esa quyidagicha ifodalanadi: Masalan, int a[2][3]; 1-misol. Massivni elyemyentlarini yiglchamli n ta elyemyentdan iborat massiv byerilgan. Quyidagilarni bajaring: a) manfiy elyemyentlarning yigsish tartibida joylashtiring. Misolni dasturi: #include using namespace std; int main() { int x,y,n,h,a[1000],min,max; cin >> n; for(int i=0;i cin >> a[i]; int s=0; for(int i=0;i if(s!=0){ cout << "Manfiy elementlar yigindisi:"; cout << endl; cout << s; cout << endl; } else { cout << "Manfiy elementlari yoq;";cout << endl; } min=a[0];x=0; for(int i=0;i if(a[i] x=i; } max=a[0];y=0; for(int i=0;i if(a[i]>max) y=i; } cout << "maksimal va minimal elementlar orasidagi sonlar:"; if(y>x){ for(int i=x+1;i cout << endl; cout << a[i]; } } else { for(int i=y+1;i cout << endl; cout << a[i];} } cout << endl; min=a[0];int m=1; for(int j=0;j { for(int i=m;i if(min>=a[i]){ h=min; min=a[i];a[i]=h; } } a[j]=min; min=a[j+1]; m++;cout < } return 0; } Vektorlar. Vektor bu bir xil toifadagi elementlarning tartibli ketma ketligi bolchami dastur bajarilishi davomida osh vektor const int size = 8; const int value = 1024; vector vector inta[4] = { 0, 1, 1, 2 }; vector vector Vektorlarning massivga nisbatan qulayligi haqida quyidagilarni bayon qilmoqchimiz: Vektorlar bilan ishlash uchun test.at(i) - test[i] kabi yozuv bilan bir xil, faqat bunda agar i-element mavjud borsatmaydi; test.asign(n,m)boshqa vektorning boshi va oxirini kolgan elementlarni ushbu vektorga kiritadi; test.front()oxirgi elementga murojaat; test.begin()vektor oxiri iteratori(oxirgi elementidan keying adresni kovektorni tozalash; test.erase(i)yokitest.erase(start,end)idagi elementlarni ovektordagi elementlar sonini aniqlaydi; test.swap(test2) - test va test2 vektorlar elementlarini almashtiradi; test.insert(a,b) - test vektoriga iterator korsatadi; test.insert(a,n,b)idagi elementlarni a dan oldin kiritadi. begin() va end() iteratorlari mos ravishdaxotirada vektorning birinchi elementini va oxirgi elementidan keyingi adresni korinda iterator nimaligiga aniqlik kiritsak. Iterator bi birorta orsatkich hisoblanadi. Iterator bizga kerak qiymatlarni qayerdaligini biladi va uning qiymatini bizga chiqarib beradi. Itaratorlar asosan konteynerlar bilan ishlashda qorsatayotgan element quyidagicha olinadi. cout<<*cur< Bu erda tushunarliki, * belgisi cur iteratorni emas, u korsatadi. cur++; // keying elementga otish Vektor elementlarinni iterator bilan ekranga chiqarishni kolgan vektorni siklsiz solishtirish mumkin. Bunda ularning mos elementlari qiymatlari solishtiriladi. Masalan: #include #include using namespace std; int main() { vector array1[0] = 4; array1[1] = 2; array1[2] = 1; vector array2[0] = 4; array2[1] = 2; array2[2] = 1; // vektorlarni solishtirish if (array1 == array2) { cout << "array1 == array2" << endl; } return 0; } Vektor elementlarini siklsiz ekranga chiqarish mumkin: #include #include #include using namespace std; int main() { vector array1.insert(array1.end(), 4); array1.insert(array1.end(), 3); array1.insert(array1.end(), 1); copy( array1.begin(), // vektor boshi iteratori array1.end(), // vektor oxiri iteratori ostream_iterator ); return 0; } Vectorlar yordamida ikki orsatyapti // 4-el.dan oldin 3 marta -1ni kiritamiz: v.insert(it, 3, -1); // v vektor el.lari 0 10 11 -1 -1 -1 12 33 1 2 3 4 // v vektorning 5 chiramiz it = v.begin() + 4; v.erase(it); // v vektor el.lari 0 10 11 -1 -1 12 33 1 2 3 4 v.clear();//v vektorni oplamlar. Toladi. Tochirish, elementlar sonini aniqlash, boplamni C++ da quyidagicha eplamga element kiritish } s.insert(42); // 42 tochiramiz } // set::size() funksiyasi unsigned int toifasida qiymat qaytargani uchun uni int toifasiga oplamda push_back() funksiyasi yoq. Shu sababli toplam elementlari yigplam bilan ishlashning afzalligi tezlikdir.Ayniqsa, qidiruvda.Set::find() funksiyasi 1 ta argumentga ega va uning qaytaradigan qiymati yoki topilgan elementni koladi. set ... if(s.find(42) != s.end()) { // 42 mavjud } else { // 42 mavjud emas } Tochirish uchun erase() funksiyasidan foydalaniladi. set ... s.insert(54); ... s.erase(29); s.erase(s.find(57)); Bu funksiyaning oraliqli kolgan elementlar //ochirilmaydi) } else { // it2 iteratorni bitta element keying suramiz // set::iterator uchun += operatori qo //ishlatilishi mumkin it2++; s.erase(it1, it2); } Tolon qilishning huddi vektordagi kabi oraliqli konstruktori ham mavjud: int data[5] = { 5, 1, 4, 2, 3 }; set Misol.Matn faylida berilgan soplam xosil qiling.Toq"; system("pause"); } Misol.Satrdagi belgilarning toqligini aniqlash dasturi. #include #include #include using namespace std; int main() { set for(int i='A';i<='Z';i++) cs.insert(i); string str="A1bZzh2;"; for(int i=0;i if(cs.find(str[i])!=cs.end()) cout< system("pause"); return 0; } Download 82.13 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling