O’zbekiston respublikasi aloqa, axborotlashtirish va telekommunikatsiya texnologiyalari davlat qo’mitasi
Download 0.92 Mb.
|
malumotlar tuzilmasi va algoritmlar
- Bu sahifa navigatsiya:
- Strukturalar
VektorlarC++ dasturlash muhitida Ma’lumotlarni massivdan tashqari sal boshqacharoq usulda saqlashning yana bir turi mavjud, ya’ni vektorlar. Vektor elementlari ustida massiv elementlari ustida bajariladigan amallarni bajarish mumkin. Ma’lumotlarni massivda saqlashda elementlar soni oldindan ma’lum bo’lishi kerak. Ayrim paytlarda massivga nechta element kiritilishi ma’lum bo„lmaydi va o’shanda dinamik dasturlashdan foydalanish kerak bo’ladi, ya’ni massivga qo„shiladigan elementga xotira ajratishga to’g’ri keladi. Shunday hollarda vector klassidan foydalanish mumkin. Vector klassi o’zgaruvchan uzunlikdagi massiv yaratishga yordam beradi. Vektor bu elementlari soni oldindan ma’lum bo„lmagan bir xil toifadagi elementlar ketma-ketligidir. Vektorning massivdan farqi, vector uzunligi oldindan berilmaydi va u dastur bajarilishi mobaynida o’zgarib turadi. Vektor yaratish uchun vector Masalan, vector vector Bu holda vektorga element kiritish quyidagicha amalga oshiriladi: vek.push_back(7);//vector oxiriga yangi element 7 ni kiritish vek.push_front(17);//vector boshiga yangi element 17 ni kiritish vek.pop_back();// vektor oxirgi elementini o„chirish funksiyasi vek.pop_front();// vektor 1-elementini o„chirish funksiyasi Misol: #include vector< string > text; string word; while(word!="0"){ text.push_back( word ); cin>>word; } for(int i=0;i } Vektor yaratishning 2-usuli xuddi massivga o’xshash bo’lib, unda vektor uzunligi oldindan ko’rsatiladi va berilgan uzunlikka mos barcha elementlarga avtomatik tarzda 0 qiymat beriladi. Vektor elementlariga murojaat xuddi massiv elementlariga murojaat kabi indeks orqali amalga oshiriladi va qiymat berilishi mumkin. #include { vector< int > ivec(5); ivec[0]++; //bunda vektor 0-elementi qiymati bittaga oshirildi ivec[1]=11; //vektor 1-elementiga 11 qiymati berildi for(int i=0;i } Natija: 1 11 0 0 0 Agar bu usulda vektor yaratiladigan bo’lsa, push_back() va push_front() funksiyalari vektor uzunligini oshiradi. Misol uchun: #include { vector< int > ivec(5); ivec[0]++; ivec[1]=11; ivec.push_back(123); for(int i=0;i } Natija: 1 11 0 0 0 123 Vektor ustida quyidagi funksiyalar orqali amal bajarish mumkin:
test.at(i) - test[i] kabi vektor i-elementiga murojaat qilish; test.asign(n,m) – vektorga m qiymatli n ta element kiritish; test.front() – vektor Ko’rsatkichini 1-elementga o„rnatish; test.back() - vektor Ko’rsatkichini oxirgi elementga o„rnatish; test.size() – vektor elementlari sonini aniqlash; test.swap(test2) – test vektori tarkibi bilan test2 vektori tarkibini almashtirish test.empty() – vektor bo’shligini tekshirish; Vektorga oid misol ko„ramiz. Quyidagicha masala qo’yilgan bo„lsin: massivning juft qiymatli elementlaridan vektor hosil qiling. #include #include using namespace std; int main(){ vector< int > avec; int n;cout<<"n=";cin>>n; int a[n]; for(int i=0;i cout<<”avec=”; for(int i=0;i } Natija: n=5 1 2 3 4 5 avec= 2 4 StrukturalarStrukturalar turli toifadagi maydonlardan tashkil topgan yozuv hisoblanadi. Strukturalarni e’lon qilish uchun struct kalit so’zi ishlatiladi. Undan keyin toifaga nom beriladi va {} qavs ichida maydonlar toifalari va nomlari e’lon qilinadi. struct G{ char ch; } talaba, talabalar[10]; Yaratilgan toifa bilan e’lon qilingan o’zgaruvchi talaba - yozuv hisoblanadi, massiv esa talabalar[10] - jadvalni tashkil etadi. Yozuv va jadval yozuvi maydoniga qiymat berish quyidagicha: yozuv.maydon_nomi=qiymat; Masalan:
talaba.ch=’a’; Agar jadval yozuvi maydoniga qiymat beriladigan bo’lsa, bunda jadval yozuv massivi shaklida tashkil qilinadi va shu massiv elementiga indeks bilan murojaat orqali amalga oshiriladi: Jadval_elementi[indeks].maydon_nomi=qiymat; Ya’ni, talabalar[i].ch=’a’; Misol. Talabalar tartib raqami va ism-familiyasidan iborat jadval tuzib, Ma’lumotlarni kiritish va ekranga chiqarish dasturi.
Bu yerda Guruh nomli nostandart toifa yaratildi va uning 2 ta maydoni mavjud: talabaning tartib raqami n va familiyasi, ismi, otasining ismi uchun uzunligi 30 bo’lgan satrli maydon fio[30]. Download 0.92 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling