1-Amaliy ishi Mavzu: Tiplarni dinamik tarzda aniqlash. Tiplarni almashtirish operatorlari. Yangi nomlar fazosi yaratish. Buferlashtirilgan kiritish va chiqarish Ishning maqsadi
Download 406.28 Kb.
|
1-amaliyot. Dasturlash II
- Bu sahifa navigatsiya:
- Umimiy nomlar sohasidan foydalanish
- Nomlar fazosida xatoliklar: Ichma – ich joylashgan nomlar fazosi Masalaning qo’yilishi
- Qidirish metodi - Saralash metodi - O’zgartirish metodi
1-Amaliy ishi Mavzu: Tiplarni dinamik tarzda aniqlash. Tiplarni almashtirish operatorlari. Yangi nomlar fazosi yaratish. Buferlashtirilgan kiritish va chiqarish Ishning maqsadi: C++ dasturlash tilida obyektga yo’naltirilgan dasturlash tamoyilaridan foydalanib noma’lum nomlar fazosini tashkil qilish ko’nikmalarini shakllantirish. Nazariy qism Namespace – bir-xil identifikatorlarni bitta dasturda ishlatish muammosini hal qiladi. Namespace ni umumiy strukturasi quyidagicha: namespace ……… } Umimiy nomlar sohasidan foydalanish #include #include using namespace std; namespace Mynamespace { int i,k; void myfunc(int j){ cout< } using namespace Mynamespace; int main(){ i = 23; k = 10; myfunc(i); myfunc(k); } Natija: 23 10 Nomlar fazosida xatoliklar: Ichma – ich joylashgan nomlar fazosi Masalaning qo’yilishi: Variantda berilgan class, konstruktor va class maydonlari yordamida noma’lum nomlar fazosini yarating. Class da obyektlar massivi ustida quyidagi funksiyalarni bajaruvchi 3 ta static metod yozing: - Qidirish metodi - Saralash metodi - O’zgartirish metodi Yuqoridagi metodlar uchun class maydonlaridan ixtiyoriysi tanlansin. Chelak va tog’ora class larini yarating va ularni bog’lovchi funksiyalar yarating Dastur: #include using namespace std; namespace yangi_nomlar_fazosi { //Yangi nomlar fazosi class Chelak { protected: int razmer, ishlab_chiqarilgan_yili; string materiali; public: Chelak() {} Chelak(int razmer, int yil, string materiali) { this->razmer = razmer; this->ishlab_chiqarilgan_yili = yil; this->materiali =materiali; } static void qidirish(Chelak* massiv, int n, string mat) { //qidirish materiali bo'yicha for (int i = 0; i } } static void saralash(Chelak* massiv, int n) { //saralash, razmeri bo'yicha for (int i = 0; i swap(massiv[i], massiv[j]); } } } void ozgartirish(int razmer, int yil, string materiali) {//o'zgartirish metodi this->razmer = razmer; this->ishlab_chiqarilgan_yili = yil; this->materiali =materiali; } void print() { cout <<"\nRazmeri: "<< razmer <<"\nIshlab chiqarilgan yili: "<< ishlab_chiqarilgan_yili <<"\nMateriali : "<< materiali << endl; } }; class Togora :public Chelak { public: Togora(){} Togora(int razmer, int yil, string materiali) { this->razmer = razmer; this->ishlab_chiqarilgan_yili = yil; this->materiali =materiali; } }; } int main() { using namespace yangi_nomlar_fazosi; // Yangi hosil qilingan nomlar fazosidan foydalanish int n, m; cout <<"Nechta chelak haqida ma'lumot kiritmoqchisiz?\nn = "; cin >> n; Chelak* chelaklar; chelaklar = new Chelak[n]; if (n) cout <<"\nChelaklar haqida ma'lumotlarni kiritish:\n\n"; for (int i = 0; i < n; i++) { int razmer, yili; string materiali; cout <<"Chelakning razmeri: "; cin >> razmer; cout <<"Chelakning ishlab chiqarilgan yili: "; cin >> yili; cout <<"Chelakning materiali: "; cin >> materiali; chelaklar[i] =Chelak(razmer, yili, materiali); } cout <<"\nChelaklarni saralash, razmeri bo'yicha:\n"; chelaklar[0].saralash(chelaklar, n); //Ekranga chiqarish: for (int i = 0; i < n; i++) { chelaklar[i].print(); } cout <<"\nQidirish: \nMaterialni kiriting: "; string man; cin >> man; chelaklar[0].qidirish(chelaklar, n, man); cout <<"Nechta tog'ora haqida ma'lumot kiritmoqchisiz?\nn = "; cin >> m; Togora* togoralar; togoralar = new Togora[m]; if (m) cout <<"\nTog'oralar haqida ma'lumotlarni kiritish:\n\n"; for (int i = 0; i < m; i++) { int razmer, yili; string material; cout <<"Tog'oraning razmeri: "; cin >> razmer; cout <<"Tog'oraning ishlab chiqarilgan yili: "; cin >> yili; cout <<"Tog'oraning materiali: "; cin >> material; togoralar[i] =Togora(razmer, yili, material); } cout <<"\nTog'oralarni saralash, razmeri bo'yicha:\n"; togoralar[0].saralash(togoralar, m); //Ekranga chiqarish: for (int i = 0; i < m; i++) { togoralar[i].print(); } cout <<"\nQidirish: Materialni kiriting: "; cin >> man; togoralar[0].qidirish(togoralar, m, man); }
Download 406.28 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling