C++ tilida berilganlar tipiga qiymat o‘zlashtirilmaydi. Qiymat faqatgina o‘zgaruvchilarga beriladi


Download 105.34 Kb.
Sana03.02.2023
Hajmi105.34 Kb.
#1152663
Bog'liq
4 amaliy

O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA


KOMMUNIKATSIYALARNI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI


KOMPYUTER INJINIRINGI”
FAKULTETI


2 bosqich KI-17-21 guruh talabasining
Dasturlash 1
Fanidan tayyorlagan



4-AMALIY ISHI
Bajardi: Azimov Laziz


Qabul qildi: Zoxidov Jaxongir
QARSHI – 2023

C++ tilida berilganlar tipiga qiymat o‘zlashtirilmaydi. Qiymat faqatgina o‘zgaruvchilarga beriladi. Masalan, quyidagi yozuv noto‘g‘ridir:


Int=s // noto‘g‘ri
Kompilyator int tipiga qiymat o‘zlashtirilishi xatolik ekanligi haqida xabar beradi. Xuddi shu nuqtai – nazardan quyidagi yozuv ham noo‘rindir:
Cat.itsYosh= 5 // noto‘g‘ri
Agarda Mushuk obyekt bo‘lmasdan sinf bo‘lsa, yuqoridagi ifodani ham kompilyator xato deb hisoblaydi. O‘zlashtirish amalini bajarishda xatolikka yo‘l qo‘ymaslik uchun oldin Mushuk sinfiga tegishli Friskyobyektini hosil qilish va uning ItsYosh maydoniga 5qiymatini berish lozim.
Mushuk Frisky;
Frisky.itsYosh=5;
Sinf a’zolariga murojaat qilishimkonini chegaralash.
Sinfni e’lon qilishda bir nechta kalit so‘zlardan foydalaniladi. Ulardan eng muhimlari publis (ochiq) va private(yopiq) kalit so‘zlari bo‘lib, ular orqali obyektning a’zolariga murojaat qilish imkoniyati chegaralanadi.
Sinfning barcha metodlari va xossalari boshlang‘ich holda yopiq deb e’lon qilinadi. Yopiq a’zolarga faqatgina shu sinfning metodlari orqaligina murojaat qilish mumkin. Obyektning ochiq a’zolariga esa dasturdagi barcha funksiyalar murojaat qilishlari mumkin. Sinf a’zolariga murojaat qilish imkonini belgilash juda muhim xususiyat bo‘lib, bu masalani yechishda uncha katta tajribaga ega bo‘lmagan dasturlarchilar ko‘pincha qiyinchiliklarga duch keladilar. Bu holatni batafsilroq tushuntirish uchun mavzuning boshida keltirilgan masalamizga qaytamiz.
class Mushuk
{
unsigned int itsYosh;
unsigned int itsOgirlik;
void Miyovlash();
}
Bu tarzda sinfni e’lon qilishda itsYosh va itsOgirlik maydonlari ham, Miyovlash() metodi ham yopiq a’zo sifatida aniqlanadi. Dasturda yuqoridagi tartibda Mushuk sinfi e’lon qilingan bo‘lsa va bu sinf ekzemplyari bo‘lgan obyektning itsYosh a’zosiga main() funkstiyasi tanasidan turib murojaat qilsak kompilyator xatolik ro‘y berganligi haqida xabar beradi.
Mushuk Baroq;
Baroq.itsYosh = 5 // Xatolik!
// Yopik a’zoga murojaat kilish mumkin emas.
Mushuk sinfi a’zolariga dasturning boshqa obyektlari tomonidan murojaat qilish imkonini hosil qilmoqchi bo‘lsak, uni public kalitli so‘zi orqali amalga oshiramiz.
class Mushuk
{
public:
unsigned int itsYosh;
unsigned int itsOgirlik;
void Meow( );
}

Avtomobil (Car) sinfini yarating. Unda kamida 5 ta maydon va ularni ekranga chiqaruvchi, qayta ishlovchi usullarni yarating.




#include
using namespace std;
class Car{
public:
string model;
string color;
int price;
string company;
int year;
void kiritish(){
cout<<"Modelini kiriting: ";
cin>>model;
cout<<"Rangini kiriting: ";
cin>>color;
cout<<"Narxini kiriting: ";
cin>>price;
cout<<"Kompaniyasini kiriting: ";
cin>>company;
cout<<"Yilini kiriting: ";
cin>>year;
}
void chiqazish(){
cout<<"Modeli: "<
cout<<"Rangi: "<
cout<<"Narxi: "<

cout<<"Kompaniyasi: "<
}
};
int main(){
int n, yil;
cout<<"Mashinalar soni: ";
cin>>n;
Car a[n];
for(int i=0;i
cout<
a[i].kiritish();
}
cout<<"Qaysi yilda chiqazilgan mashinalar kerak? ";
cin>>yil;
cout<
for(int i=0;i
if(a[i].year==yil){
a[i].chiqazish();
}
}
}

Download 105.34 Kb.

Do'stlaringiz bilan baham:




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