Amaliy ko‘nikma va malakalarni aniqlash hamda rivojlantirish uchun assisment topshiriqlari


Download 79.28 Kb.
bet1/2
Sana19.06.2023
Hajmi79.28 Kb.
#1613655
  1   2
Bog'liq
8-amaliy ish Iteratorlar va xotirani ajratish OK


AMALIY KO‘NIKMA VA MALAKALARNI ANIQLASH HAMDA RIVOJLANTIRISH UCHUN ASSISMENT TOPSHIRIQLARI.

BIRINCHI ASSISMENT TOPSHIRIG‘I

Iteratorlar va ularning qo‘llanilishiga oid berilgan quyidagi dastur bo‘yicha berilgan topshiriqlar kerakli fragmentlari asosida bajaring.
Bunda dasturdagi baʻzi o‘zgartirishlarni topish orqali topshiriqlar bosqichma – bosqich amalgan oshriladi.

dastur

topshiriqlar

#include
#include
using namespace std;
int main() {
vector myvector;
for (int i = 0; i < 15; i++) {
myvector.push_back(rand() % 100);
}
int myints[] = { 16,2,77,29,28 };
const vector myvector_one(myints, myints + sizeof(myints) / sizeof(myints[0]));
auto iter = myvector.begin();
while (iter != myvector.end()) {
cout << *iter<< " | ";
++iter;
}
/* vector v (myints, myints+ sizeof(myints)/sizeof(m yints[0]));
for (auto i = v.begin(); i < v.end(); i++) {
cout << *i << "| ";
}
*/
cout << endl;
system("pause");
return 0;
}



1. Dasturda auto iter = myvector.begin(); uchuni terator yozing.
auto iter = myvector.begin(); - Bu qator myvector vektorining boshidan boshlab, o‘zgaruvchi iter ni avtomatik ravishda yaratadi va uni o‘zida saqlaydi.

2. Dasturda vector my vector; uchun o‘zgarmas iterator yarating.
const vector::iterator iter = myvector.begin(); - Bu qator myvector vektorining boshidan boshlab, o‘zgaruvchi iter ni o‘zgaruvchan iterator sifatida yaratadi va uni o‘zida saqlaydi.

3. Dasturdagi ortiqcha kutubxonalarni o‘chirib tashlang va sabablarini ayting. Orticha kutubxonalar system("pause"); komandasidan keyin yozilgan. Bu kod dastur ishga tushirilganida konsolni yopishni oldini oladi. Orticha kutubxonalar yozilmasa ham dastur to‘g‘ri ishga tushadi.



4. Ikkita vektorni o‘zaro solishtiring.
Ikkita vektorni o‘zaro solishtirish uchun, ularning hajmini solishtirish kerak. Misol uchun:
if(myvector.size() == myvector_one.size()) {
cout << "The size of both vectors is equal." << endl;
} else {
cout << "The size of both vectors is not equal." << endl;
}

5. Vektorlarni teskari chiqarish dastur fragmentlarini yozing.
Vektorlarni teskari chiqarish uchun, reverse() funksiyasidan foydalanish mumkin. Misol uchun:
reverse(myvector.begin(), myvector.end());
for(int i = 0; i < myvector.size(); i++) {
cout << myvector[i] << " | ";
}

6. Vector saralang va vektordagi 2,5,7 elementlarni pozitsiyasini aniqlang.
Vector saralash uchun, sort() funksiyasidan foydalanish mumkin. 2, 5, 7 elementlarini aniqlash uchun esa, find() funksiyasidan foydalanish mumkin. Misol uchun:
sort(myvector.begin(), myvector.end());
auto two = find(myvector.begin(), myvector.end(), 2);
auto five = find(myvector.begin(), myvector.end(), 5);
auto seven = find(myvector.begin(), myvector.end(), 7);
cout << "Position of 2: " << two - myvector.begin() << endl;
cout << "Position of 5: " << five - myvector.begin() << endl;
cout << "Position of 7: " << seven - myvector.begin() << endl;

7. Dasturdagi izohga olingan dastur fragmenti olib tashlansa,
Dasturda qanday o‘zgarishlar bo‘ladi va natijasichi.
Dasturdagi izohdan tushuntirilganidek, kod dasturining oxirgi qismida system("pause"); funksiyasi ishlatilgan. Shuningdek, kod fragmentida ikkita vector yaratilgan, biri random raqamlardan, ikkinchisi esa bir massivdan. Random raqamlardan yaratilgan vector sizning har safar dasturni ishga tushirganda turli raqamlar bilan to‘ldirilgan bo‘ladi. Massivdan yaratilgan vector esa o‘z ichiga berilgan massivni saqlaydi. Vectorlar ustida turli amallarni bajarish mumkin.

8. Dasturda jami bo‘lib, necha o‘zgartirish kiritildi. Dasturda jami 3 o‘zgartirish kiritilgan. Birinchi o‘zgartirish, const kalit so‘zi qo‘shilgan. Bu, myvector_one vektorni o‘zgartirishga imkon beradi. Ikkinchi o‘zgartirish, auto kalit so‘zi yozilgan. Bu, iteratorning avtomatik ravishda yaratilishiga imkon beradi. Uchinchi o‘zgartirish esa, kodning o‘zida yozilgan va uni dastur bajarilgandan keyin konsolni yopish uchun system("pause"); funksiyasidan foydalanishdir.
9. Shu dasturning analogini yaratish sizga mustaqil vazifadir.
#include
#include
using namespace std;
int main() {
vector myvector;
for (int i = 0; i < 15; i++) {
myvector.push_back(rand() % 100);
}
int myints[] = { 16,2,77,29,28 };
const vector myvector_one(myints, myints + sizeof(myints) / sizeof(myints[0]));
vector::iterator iter = myvector.begin();
while (iter != myvector.end()) {
cout << *iter<< " | ";
++iter;
}
/* vector v (myints, myints+ sizeof(myints)/sizeof(m yints[0]));
for (auto i = v.begin(); i < v.end(); i++) {
cout << *i << "| ";
}
*/
cout << endl;
return 0;
}
help







Download 79.28 Kb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling