• Mavzu: Microsoft visual c++ da sinflar va obyektlar yaratishni o’rganish Ishdan maqsad
  • Texnologiyalari va kommunikatsiyalarni rivojlantirish vazirligi toshkent axborot texnologiyalari universiteti




    Download 5,48 Mb.
    Pdf ko'rish
    bet11/53
    Sana21.11.2023
    Hajmi5,48 Mb.
    #102807
    1   ...   7   8   9   10   11   12   13   14   ...   53
    Bog'liq
    Texnologiyalari va kommunikatsiyalarni rivojlantirish vazirligi

    Nazorat savollari: 
    1. Struktura deganda nimani tushinasiz? 
    2. Struktura qanday e’lon qilinadi? 
    3. Strukturaning massiv hamda to’plamdan farqi nimada? 
    4. Struktura elementiga qiymat qanday o’zlashtiriladi? 
     
     
     
     


    18 
    Tajriba ishi №3 
    Mavzu: Microsoft visual c++ da sinflar va obyektlar yaratishni o’rganish 
    Ishdan maqsad: Microsoft Visual 2012 muhitida C++ dasturlash tili vositasida 
    sinflar va obyektlar yaratishni o’rganish. 
    Nazariy qism: 
    Sinflar va sinf a’zolari 
    Yangi tip sinfni e’lon qilish bilan tuziladi. Sinf - bu bir – biri bilan funktsional 
    orqali bog’langan o’zgaruvchilar va usullar to’plamidir. Sinflarga amaliyotdan 
    ko’pgina misollar keltirish mumkin. Masalan, avtomabilni g’ildirak, eshik, o’rindiq, 
    oyna va boshqa qismlardan tashkil topgan kolleksiya yoki haydash tezligini oshirish, 
    to’xtatish, burish imkoniyatlariga ega bo’lgan obyekt deb tasavvur qilish mumkin. 
    Avtomobil o’zida turli ehtiyot qismlarni va ularni funksiyalarini inkapsulyatsiya 
    qiladi. Avtomobil kabi sinfda ham inkapsulyatsiya qator imkoniyatlarni beradi. 
    Barcha ma’lumotlar bitta obyektda yig’ilgan va ularga osongina murojaat qilish, 
    ularni o’zgartirish va ko’chirish mumkin. Sizning sinfingiz bilan ishlovchi dasturiy 
    qismlar, ya’ni mijozlar sizning obyektingizdan, uning qanday ishlashidan 
    tashvishlanmasdan, bemalol foydalanishlari mumkin. 
    Sinf o’zgaruvchilarning ixtiyoriy kombinatsiyasidan, shuningdek boshqa sinflar 
    tiplaridan iborat bo’lishi mumkin. Sinfdagi o’zgaruvchilar o’zgaruvchi – a’zolar yoki 
    xossalar deyiladi. Car sinfi o’rindiq, radiopriyomnik, shina va boshqa o’zgaruvchi - 
    a’zolardan iborat. O’zgaruvchi – a’zolar faqatgina o’zlarining sinflarida yotadilar. 
    G’ildirak va motor avtomobilning qanday tarkibiy qismi bo’lsa, o’zgaruvchi – a’zolar 
    ham sinfning shunday tarkibiy qismidir. 
    Sinfdagi funksiyalar odatda o’zgaruvchi a’zolar ustida biror bir amal bajaradilar. 
    Ular funksiya – a’zolar yoki sinf usullari deb aytiladi. Mashina sinfi usullari qatoriga 
    Haydash() va Tuxtatish() usullari kiradi. Mushuk sinfi hayvonni yoshi va og’irligini 
    ifodalovchi o’zgaruvchi – a’zolarga ega bo’lishi mumkin. Shuningdek, bu sinfning 
    funksional qismi Uxlash(), Miyovlash(), SichqonTutish() usullaridan iborat bo’ladi. 
    Funksiya – a’zolar ham o’zgaruvchi a’zolar singari sinfda yotadi. Ular 
    o’zgaruvchi a’zolar ustida amallar bajaradi va sinfni funksional imkoniyatlarini 
    aniqlaydi. 


    19 
    Sinfni e’lon qilish. 
    Sinfni e’lon qilish uchun class kalitli so’zi, undan so’ng ochiluvchi figurali qavs, 
    co’ng xossalar va usullari ro’yxati ishlatiladi. Sinfni e’lon qilish yopiluvchi figurali 
    qavs va nuqtali vergul orqali yakunlanadi. Masalan, Mushuk sinfini quyidagicha 
    e’lon qilish mumkin.
    Class Mushuk 

    unsigned int itsYosh ; 
    unsigned int itsOgirlik ; 
    void Miyovlash() 

    Mushuk sinfini e’lon qilishda xotira zahiralanmaydi. E’lon qilish, kompilyatorga 
    Mushuk sinfini mavjudligini, hamda unda qanday qiymatlar saqlashi mumkinligi 
    (itsYoshitsOgirlikva u qanday amallarni bajarishi mumkinligi (Miyovlash() usuli) 
    haqida xabar beradi. Bundan tashqari, bu e’lon qilish orqali kompilyatorga Mushuk 
    sinfining o’lchami, ya’ni har bir Mushuk sinfi obyekti uchun kompilyator qancha joy 
    ajratishi lozimligi haqida ham ma’lumot beradi. Masalan, joriy misolda butun qiymat 
    uchun to’rt bayt talab qilinsa, Mushuk sinfi obyekti o’lchovi sakkiz bayt bo’ladi. 
    (itsYosh o’zgaruvchisi uchun to’rt bayt, itsOgirlik o’zgaruvchisi uchun to’rt bayt). 
    Miyovlash() usuli xotiradan joy ajratishni talab qilmaydi. 
    Obyektni e’lon qilish 
    Yangi turdagi obyekt xuddi oddiy butun sonli o’zgaruvchidek aniqlanadi. 
    Haqiqatan ham ixtiyoriy butun sonli o’zgaruvchi quyidagicha aniqlanadi: 
    unsigned int MyVariable
    //ishorasiz butun sonni aniqlaymiz
    Cat sinfidagi obyekt esa quyidagicha aniqlanadi: 
    Mushuk Frisky //Mushuk obyektini aniqlaymiz. 
    Bu dasturiy kodlarda unsigned int tipidagi MyVariable nomli o’zgaruvchi va 
    Mushuk sinfining Frisky nomli obyekti aniqlandi. 


    20 
    Ko’pgina hollarda sinf va obyekt tushunchalarini ishlatishda chalkashlikka yo’l 
    qo’yiladi. Shuning uchun, obyekt sinfning biror bir ekzemplyari (nusxasi) ekanligini 
    yana bir bor ta’kidlash joiz. 
    Sinf a’zolariga murojaat qilish imkoni 
    Mushuk sinfining real obyektini aniqlaganimizdan so’ng bu obyektning 
    a’zolariga murojaat qilish zaruriyati tug’ilishi mumkin. Buning uchun bevosita 
    murojaat (.) operatori qo’llaniladi. Masalan, Frisky obyektining Weight o’zgaruvchi - 
    a’zosiga 50 sonini o’zlashtirmoqchi bo’lsak quyidagi jumlani yozishimiz lozim.
    Fresky.Weight=50; 
    Meow() usulini chaqirish uchun esa 
    Frisky.Meow(); 
    jumlasini yozish lozim.
    Qiymat sinfga emas obyektga o’zlashtiriladi
    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’gri 
    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 Frisky obyektini hosil qilish va uning 
    ItsYosh maydoniga 5 qiymatini berish lozim. 
    Mushuk Frisky; 
    Frisky.itsYosh=5; 

    Download 5,48 Mb.
    1   ...   7   8   9   10   11   12   13   14   ...   53




    Download 5,48 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Texnologiyalari va kommunikatsiyalarni rivojlantirish vazirligi toshkent axborot texnologiyalari universiteti

    Download 5,48 Mb.
    Pdf ko'rish