o’g’li (sirtqi) guruh Dasturlash II fanidan Yakuniy nazorat savollari:
12-variant. 1.Massiv va konteyner orasidagi farqni tushuntirib bering.
2.STL(Standart Template Library) qanday kutubxona hisoblanadi?
3.Berilgan string turidagi to’plamda katta harfdan va kichik harfdan boshlanuvchi elementlari soni aniqlovchi hamda ularni ekranga chiqaruvchi dastur tuzing.
Javoblar: 1. Konteynerlar — bu boshqa elementlarni saqlash uchun mo‘ljallangan sinflar
shablonlaridir. Konteynerlar asosiy xususiyati shundaki ular ixtiyoriy tipdagi
elementlarni o‘zida saqlash uchun mo‘ljallangan. To‘g‘rirog‘i, har bir tur uchun
shablon nusxasi kerak bo‘lganda, kompilyator tomonidan avtomatik tarzda
yaratiladi. Algoritmlar konteyner elementlari ustidan operasiyalar bajaradi.
Bibliotekada qidirish, saralash va almashtirish uchun algoritmlar mavjud.
Algoritmlar elementlar ketma_ketligi bilan ishlash uchun mo‘ljallangan.
Algoritmlar asosiy xususiyati shuki ular ixtiyoriy konteynerlar bilan ishlay
oladi.
Konteynerlar asosiy va hosila konteynerlarga ajratiladi. Asosiy
konteynerlarga quyidagilar kiradi:
• vector — dinamik massiv
• list — chiziqli ro‘yxat
• deque — ikki tarafli tartib
• set — to‘plam
• multiset — har bir elementi noyob bo‘lishi shart emas to‘plam
• map — kalit/ qiymat juftlikni saqlash uchun assosiativ ro‘yxat. Bunda har bir
kalit bitta qiymat bilan bog‘langan.
• multimap — har bir kalit bilan ikkita yoki ko‘proq qiymatlarbog‘langan
Hosila konteynerlarga quyidagilar kiradi:
• stack — stek
• queue — tartib
• priority_queue — prioritetli tartib
Dasturda ikki asosiy tur ma'lumot strukturalari mavjuddir. Birinchisi statik, ikkinchisi dinamikdir. Statik deganimizda hotirada egallagan joyi o'zgarmas, dastur boshida beriladigan strukturalarni nazarda tutamiz. Dinamik ma'lumot tiplari dastur davomida o'z hajmini, egallagan hotirasini
o'zgartirishi mumkin. Agar struktura bir hil kattalikdagi tiplardan tuzilgan bo'lsa, uning nomi massiv (array) deyiladi. Massivlar dasturlashda eng ko'p qo'laniladigan ma'lumot tiplaridir. Bundan tashqari strukturalar bir necha farqli tipdagi o'zgaruvchilardan tashkil topgan bo'lishi mumkin. Buni biz klas (Pascalda record) deymiz. Masalan bunday strukturamiz ichida odam ismi va yoshi bo'lishi mumkin. Bu bo'limda biz massivlar bilan yaqindan tanishib o'tamiz. Bu bo'limdagi massivlarimiz C uslubidagi, pointerlarga (ko'rsatkichlarga) asoslan strukturalardir. Massivlarning boshqa ko'rinishlarini keyingi qismlarda o'tamiz. Massivlar hotirada ketma-ket joylashgan, bir tipdagi o'zgaruvchilar guruhidir. Alohida bir o'zgaruvchini ko'rsatish uchun massiv nomi va kerakli o'zgaruvchi indeksini yozamiz. C++ dagi massivlardagi elementlar indeksi har doim noldan boshlanadi.
Massiv bir o`lchamli deyiladi, agar uning elementiga bir indeks orqali murojaat qilish mumkin bo`lsa.
Bir o`lchamli massivni e`lon qilish quyidagicha bo`ladi:
[ elementlar_soni ] = { boshlang'ich qiymatlar };
Quyida massivlarni e`lon qilishga bir necha misollar keltirilgan:
1) float a[5];
2) int m[6];
3) bool b[10];
2. STL (Standard Template Library)
Standart shablonlar kutubxonasi – C++ shablon sinfining to’plami bo’lib,
dasturlashning umuniy struktura va funksiyalarini o’z ichiga oladi. Masalan
ro’yxat, stack, massiv va boshqalar. Bu sinflar, algoritmlar va konteynerlar
iteratorlarining kutubxonasi hisoblanadi.
Algoritm sarlavhasi ma’lum oraliq elementlariga qo'llash uchun
mo'ljallangan maxsus funksiyalar to'plamiga ega. Bu funksiyalar konteynerga
ishlatiladi va konteyner tarkibi uchun turli xil operatsiyalarni bajarishi vositalarini
taqdim etadi.
Konteynerlar yoki sinf konteynerlari ma’lumot va obyektlarni saqlaydi.
Interatorlar kolleksiya obyektlarining elementlari orqali o’tish uchun ishlatiladi.
Bu kolleksiyalar konteynerlar yoki to’plam osti konteynerlar bo’lishi mumkin.
Ketma-ketlikni qiymatini qayta ishlash uchun foydalaniladi.
Interatorlar kolleksiya obyektlarining elementlari orqali o’tish uchun
ishlatiladi. Bu kolleksiyalar konteynerlar yoki to’plam osti konteynerlar bo’lishi
mumkin.
STL orqali foydalanuvchi vaqtini tejashi hamda dastur tuzish jarayonida ijodiy
fikrlash jarayonini yanada kengaytirishi mumkin.
3. Berilgan string turidagi to’plamda kata harfdan va kichik harfdan boshlanuvchi elementlari soni aniqlovchi hamda ularni ekranga chiqaruvchi dastur tuzing.
Dastur kodi: #include #include #include using namespace std;
int main()
{
int n, Up=0, Low=0;
set s1;
string line;
cout << "To`plam elementlar sonini kiriting: ";
cin >> n;
for (int i = 0; i < n; i++) {
cin >> line;
if (line[0] >= 65 && line[0] <= 90)
Up++;
if (line[0] >= 97 && line[0] <= 122)
Low++;
s1.insert(line);
}
set ::iterator it;
for (it = s1.begin(); it != s1.end(); it++) {
cout << " " << *it;
}
cout << endl;
cout << "Katta harfdan boshlanuvchi elementlar soni : " << Up << "\n";
cout << "Kichik harfdan boshlanuvchi elementlar soni : " << Low << "\n";