Sinf aniqlanishi sinf implementatsiyasidan qanday ajratiladi?



Download 50,36 Kb.
Sana08.06.2022
Hajmi50,36 Kb.
#645637
Bog'liq
news


  1. Sinf aniqlanishi sinf implementatsiyasidan qanday ajratiladi?

Sinf aniqlanishidan sinf implementatsiyasini bir biridan ajratish sinfga qo’shimchalar qo’shishni osonlashtiradi.
C++ da sinf implementatsiyasini sinf aniqlanishidan ajratish imkoniyati mavjud. Sinf aniqlanishi sinf shartnomasi bo’lsa, implementatsiyasi esa shu shartnoma shartlarini bajarishdir. Sinf aniqlanishida barcha ma’lumot maydonlari, konstruktor prototiplari va funksiyalar prototiplari ro’yxati bo’ladi. Sinf implementatsiyasida esa konstruktorlar va funksiyalar implementatsiya qilinadi. Sinf aniqlanishi va sinf implementatsiyasi ikkita alohida faylda yozilsishi mumkin. Ikki fayl ham bir xil nomda bo’lishi kerak, lekin kengaytmalari farqlanishi lozim. Sinf aniqlanishini o’zida saqlovchi fayl .h(h header fayl eknligini anglatadi) kengaytmada, implementatsiya saqlanuvchi fayl esa .cpp kengaytmali bo’ladi.


  1. Quyidagi dastur kodidan qanday natija chiqadi? Javoblaringizni batafsil, sharhlar bilan tushuntiring.



  1. Ushbu blokda Circle sinfida c1 va c2 obyekti yaratilib c2 obyektiga 6 qiymat ta’minlanmoqda. Keyin c1 obyektiga c2 obyekti ta’minlanmoqda. Bu holatda c1.getArea() funksiyasi radiusi 6 ga teng bo’lgan aylana yuzasini hisoblaydi.




  1. Bu blokda Circle sinfiga 8 qiymat ta’minlanib, yuzasi to’g’ridan-to’g’ri hisoblanmoqda



  1. Ma’lumot maydoni inkapsulyatsiyasining foydali jihatlarini tushuntiring.

Yopiq ma’lumot maydoniga sinfdan tashqarida ob’yektlar orqali murojaat qilishniing imkoni yo’q. Ammo tez-tez mijoz uchun ma’lumot maydonini o’zgartirib turishga to’g’ri keladi. Yopiq ma’lumot maydoniga murojaat qilish uchun get funksiyadan foydalanish maqsadga muvofiq. get funksiya maydon qiymatini qaytaradi. Maydonning qiymatini o’zgartirish uchun esa set funksiyadan foydalanish lozim. set funksiya maydonga yangi qiymat o’rnatib beradi.
Get funksiya aksessor(accessor), set funksiya esa mutetor(mutator) deyiladi.


  1. (Algebra:kvadrat tenglama) ax2+bx+x=0 kvadrat tenglamasi uchun KvTenglama nomli sinf yarating. Sinf quyidagilardan iborat bo’lsin:

  • Uchta koeffitsientni namoyon qiluvchi a, b va c maydonlari.

  • a, b va c argumentli konstruktor.

  • a, b va c uchun uchta get funksiya.

  • b2-4ac ni, ya’ni diskriminantni qaytaruvchi getDiskriminant funksiyasi.

  • getIldiz1() va getIldiz2() funksiyalari. Ular quyidagi ifodalarni hisoblab qaytaradi:


Agar discriminant manfiy bo’lmaydigan bo’lsa, u holda bu funksiyalar foydali hisoblanadi. Agar diskiriminant 0 dan kichik bo’lsa, bu funksiyalar 0 qiymat qaytarsin.
Sinfni implementatsiya qiling. Foydalanuvchidan a, b va c larga qiymat kiritish so’rovi va diskriminantga bog’liq holda, mos natijani ekranga chiqaruvchi test dastur yozing. Agar disikriminant musbat bo’lsa ikkita ildiz chiqsin. Agar discriminant 0 ga teng bo’lsa, bitta ildiz, aks holda “Haqiqiy ildizlari yo’q” xabari chiqsin.
Dastur kodi:
#include

using namespace std;


class KvTenglama


{
public:
float a, b, c;

KvTenglama()


{
a = 1, b = 1, c = 1;
}
KvTenglama(float newA, float newB, float newC)
{
a = newA;
b = newB;
c = newC;
}

float getDiskreminant()


{
return (b * b) - (4 * a * c);
}
float getIldiz1()
{
return (- b + sqrt(b * b - 4 * a * c))/2 * a;
}
float getIldiz2()
{
return (- b - sqrt(b * b - 4 * a * c))/2 * a;
}
};

int main()


{
float a, b, c;

cout << "Kvadrat tenglama hadlari kiritilsin : \n";


cout << "a = "; cin >> a;
cout << "b = "; cin >> b;
cout << "c = "; cin >> c;

KvTenglama had1(a, b, c);


if (had1.getDiskreminant() < 0)


{
cout << "Haqiqiy ildizlari yo'q" << endl;
}
else if (had1.getDiskreminant() == 0)
{
cout << "Tenglama bitta ildizga ega\n";
cout << "x = " << fabs(had1.getIldiz1()) << endl;
}
else
{
cout << "1 - ildiz = " << had1.getIldiz1() << endl;
cout << "2 - ildiz = " << had1.getIldiz2() << endl;

}
return 0;


}


Natija:



Download 50,36 Kb.

Do'stlaringiz bilan baham:




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish