|
Savol : Dasturda dasturchining yana bir oddiy xatosini toping.
Javob
|
bet | 3/12 | Sana | 15.05.2024 | Hajmi | 122,84 Kb. | | #234504 |
Bog'liq 3-mustaqil ish dasturlash AbduganiyevBu sahifa navigatsiya:
- Savol
Savol : Dasturda dasturchining yana bir oddiy xatosini toping.
Javob : Taqdim etilgan dasturda yana bir oddiy xato quyidagi qatorda mavjud:
mySet.insert(01);
Ushbu qatorda 01 son kiritilmoqda. Bu yerda 01 soni o'n olti asosida yozilgan son bo'lib, uning o'n o'nlik qiymati 1 ga teng.
To'g'ri yozilishi quyidagicha bo'lishi kerak:
mySet.insert(1);
Yoki agar dasturchi 1 ni o'n olti asosida yozmoqchi bo'lsa, u holda quyidagicha bo'lishi kerak:
mySet.insert(0x01);
Bu xato dastur ishlashiga hech qanday ta'sir qilmaydi, ammo agar dasturchi 01 ni o'n o'nlik son sifatida qabul qilmoqchi bo'lsa, u holda bu xato xavfli bo'lishi mumkin.
Shuning uchun, dastur yozishda raqamli konstantalarni to'g'ri yozish muhim ahamiyatga ega.
Savol : Dasturdagi barcha konteynerlarni yarim elementlarini chiqarish dastur fragmentlarini tuzing ?
Javob : Dasturdagi barcha konteynerlardan (myVector, myList, mySet) yarim elementlarini chiqarish uchun quyidagi kodni yozish mumkin:
// myVector yarim elementlarini chiqarish
cout << "myVector yarim elementlari: ";
vector::const_iterator itV = myVector.begin();
for (int i = 0; i < myVector.size() / 2; i++) {
cout << *itV << " ";
++itV;
}
cout << std::endl;
// myList yarim elementlarini chiqarish
cout << "myList yarim elementlari: ";
list::const_iterator itL = myList.begin();
for (int i = 0; i < myList.size() / 2; i++) {
cout << *itL << " ";
++itL;
}
cout << std::endl;
// mySet yarim elementlarini chiqarish
cout << "mySet yarim elementlari: ";
sset::const_iterator itS = mySet.begin();
for (int i = 0; i < mySet.size() / 2; i++) {
cout << *itS << " ";
++itS;
}
cout << endl;
Ushbu kod fragmentida quyidagi amallar amalga oshiriladi:
1. myVector konteynerining yarim elementlarini chiqarish uchun, myVector.begin() iteratori itV ga o'zlashtirilib, for tsiklida myVector.size() / 2 marta iteratsiya qilinadi. Har bir iteratsiyada *itV chiqariladi va itV o'zgartiruvchisi keyingi elementga ko'chiriladi.
2. myList konteynerining yarim elementlarini chiqarish uchun, myList.begin() iteratori itL ga o'zlashtirilib, for tsiklida myList.size() / 2 marta iteratsiya qilinadi. Har bir iteratsiyada *itL chiqariladi va itL o'zgartiruvchisi keyingi elementga ko'chiriladi.
3. mySet konteynerining yarim elementlarini chiqarish uchun, mySet.begin() iteratori itS ga o'zlashtirilib, for tsiklida mySet.size() / 2 marta iteratsiya qilinadi. Har bir iteratsiyada *itS chiqariladi va itS o'zgartiruvchisi keyingi elementga ko'chiriladi.
Ushbu kod fragmenti har uchta konteynerning yarim elementlarini chop etadi.
|
| |