Texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborat
Download 400.55 Kb. Pdf ko'rish
|
O`ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBORAT TEXNOLOGIYALARI UNIVERSITETI
Mavzu:Malumotlar tuzilimasi va alagaritimlar Mustaqil ish:
Guruh_017-18 O`quvichisi :Karimova M.E Tekshirdi:Muxsinov.S
TOSHKENT- 2020
Reja:
Kirish: 1. C++ tilda Classlar. 2. Ularning qo`llanilishi. 3.Misollar. Foydalanilgan adabiyotlar.
Kirish Dasturlash tillari asosan maxsus so'z va gaplarning mantiqiy konstruktsiyasidan foydalanib dasturlar yaratish imkoniyatini beradi. Ob'ektga yo'naltirilgan yondashuvlar (OMYo) bir kunda o'ylab topilgan emas. Uning paydo bo'lishi dasturiy ta'minotning tabiiy rivojidagi navbatdagi pog’ona, xolos. Vaqt o'tishi bilan qanday uslublar ishlash uchun qulay, qaysinisi noqulay ekanini aniqlash oson bo'lib bordi. OMYo eng muvaffaqiyatli, vaqt sinovidan o'tgan uslublarni o'zida mujassam etadi.
Dastlab dasturlash anchayin boshqotirma ixtiro bo'lib, u dasturchilarga dasturlarni kommutatsiya bloki orqali kompyuterning asosiy xotirasiga to'g’ridan-to'g’ri kiritish imkonini berdi. Dasturlar mashina tillarida ikkilik tasavvurda yozilar edi. Dasturlarni mashina tilida yozishda tez-tez xatolarga yo'l qo'yilar, kodni kuzatib borish amalda deyarli mumkin emas edi. Bundan tashqari, mashina kodlaridagi dastur tushunish uchun g’oyat murakkab edi. Vaqt o'tishi bilan kompyuterlar tobora kengroq qo'llana boshlandi hamda yuqoriroq darajadagi protsedura tillari paydo bo'ldi. Bularning dastlabkisi FORTRAN tili edi. Biroq ob'ektga mo'ljallangan yondashuv rivojiga asosiy ta'sir keyinroq paydo bo'lgan. Protsedura tillari dasturchiga axborotga ishlov berish dasturini pastroq darajadagi bir nechta protseduraga bo'lib tashlash imkonini beradi. Keyinchalik ob'ektga yo'naltirilgan dasturlash yo'nalishiga asos solindi. Ushbu kurs ishi mavzusi “Sinflar orasidagi munosabatlar” bo'lib, unda nazariy ma'lumotlar va Jawa muhitida dasturiy vosita yaratiladi. Yaratilgan dastur “Kutubxona” va “Kitob” asosida sinflar ishlab chiqish va ular orasidagi munosabatlarni o'rnatishdan iborat. “Kitob” sinfi yordamida har bir Kitob ob'ektlari tashkil etiladi va ularning qiymatlari kiritilib natijalari olinadi.
C++ dasturlash tili C tiliga asoslangan. C esa o'z navbatida B va BCPL tillaridan kelib chiqqan. BCPL 1967 yilda Martin Richards tomonidan tuzilgan va operatsion sistemalarni yozish uchun mo'ljallangan edi. Ken Thompson o'zining B tilida BCPL ning ko'p hossalarini kiritgan va B da UNIX operatsion sistemasining birinchi versiyalarini yozgan. BCPL ham
, B ham tipsiz til bo'lgan. Yani o'garuvchilarning ma'lum bir tipi bo'lmagan - har bir o'zgaruvchi kompyuter hotirasida faqat bir bayt yer egallagan. O'zgaruvchini qanday sifatda ishlatish esa, yani butun sonmi, kasrli sonmi yoki harfdekmi, dasturchi vazifasi bo'lgan.
C tilini Dennis Ritchie B dan keltirib chiqardi va uni 1972 yili ilk bor Bell Laboratoriyasida, DEC PDP-11 kompyuterida qo'lladi. C o'zidan oldingi B va BCPL tillarining juda ko'p muhim tomonlarini o'z ichiga olish bilan bir qatorda o'zgaruvchilarni tiplashtirdi va bir qator boshqa yangiliklarni kiritdi. Boshlanishda C asosan UNIX sistemalarida keng tarqaldi. Hozirda operatsion sistemalarning asosiy qismi C/C++ da yozilmoqda. C mashina arhitekturasiga bog'langan tildir. Lekin yahshi rejalashtirish orqali dasturlarni turli kompyuter platformalarida ishlaydigan qilsa bo'ladi.
1983 yilda, C tili keng tarqalganligi sababli, uni standartlash harakati boshlandi. Buning uchun Amerika Milliy Standartlar Komiteti (ANSI) qoshida X3J11 tehnik komitet tuzildi. Va 1989 yilda ushbu standart qabul qilindi. Standartni dunyo bo'yicha keng tarqatish maqsadida 1990 yilda ANSI va Dunyo Standartlar Tashkiloti (ISO) hamkorlikda C ning ANSI/ISO 9899:1990 standartini qabul qilishdi. Shu sababli C da yozilgan dasturlar kam miqdordagi o'zgarishlar yoki umuman o'zgarishlarsiz juda ko'p kompyuter platformalarida ishlaydi. C++ 1980 yillar boshida Bjarne Stroustrup tomonidan C ga asoslangan tarzda tuzildi. C++ juda ko'p qo'shimchalarni o'z ichiga olgan, lekin eng asosiysi u ob'ektlar bilan dasturlashga imkon beradi. Dasturlarni tez va sifatli yozish hozirgi kunda katta ahamiyat kasb etmoda. Buni ta'minlash uchun ob'ektli dasturlash g'oyasi ilgari surildi. Huddi 70-chi yillar boshida strukturali dasturlash kabi, programmalarni hayotdagi jismlarni modellashtiruvchi ob'ektlat orqali tuzish dasturlash sohasida inqilob qildi. C++ dan tashqari boshqa ko'p ob'ektli dasturlshga yo'naltirilgan tillar paydo bo'ldi. Shulardan eng ko'zga tashlanadigani Xerox ning Palo Altoda joylashgan ilmiy-qidiruv markazida (PARC) tuzilgan Smalltalk dasturlash tilidir. Smalltalk da hamma narsa ob'ektlarga asoslangan. C++ esa gibrid tildir. Unda C ga o'hshab strukturali dasturlash yoki yangicha, ob'ektlar bilan dasturlash mumkin. Yangicha deyishimiz ham nisbiydir. Ob'ektli dasturlash falsafasi paydo bo'lganiga ham yigirma yildan oshayapti. C++ funksiya va ob'ektlarning juda boy kutubhonasiga ega. Yani C++ da dasturlashni o'rganish ikki qismga bo'linadi. Birinchisi bu C++ ni o'zini o'rganish, ikkinchisi esa C++ ning standart kutubhonasidagi tayyor ob'ekt/funksiyalarni qo'llashni o'rganishdir.
1.C++tilida Classilar
Sinf sifatida ma'lumotlar to'plami va ularga boqlangan funktsiyalarni qarash mumkin. Sinflar C++ tili ichki imkoniyatlarini kengaytirib dasturchi oldida amaliyotning murakkab masalalarini echishda ancha qulaylik yaratadi.
C++ tilida inkapsulyatsiya printsipi sinf deb ataluvchi nostandart tiplarni(foydalanuvchi tiplarini) qosil qilish orqali qimoya qilinadi. To'qri aniqlangan sinf ob'ektini butun dasturiy modul sifatida ishlatish mumkin. qaqiqiy sinfning barcha ichki ishlari yashirin bo'lishi lozim. To'qri aniqlangan sinfning foydalanuvchilari uning qanday ishlashini bilishi shart emas, ular sinf qanday vazifani bajarishini bilsalar etarlidir. C++ tili ob'ektga mo'ljallangan dasturlash printsiplarini qo'llab quvvatlaydi. Bu printsiplar quyidagilardir: inkapsulyatsiya, merosxo'rlik, polimorfizm Inkapsulyatsiya. Agarda muqandis ishlab chiqarish jarayonida rezistorni qo'llasa, u buni yangidan ixtiro qilmaydi , omborga (magazinga) borib mos parametrlarga muvofiq kerakli detalni tanlaydi. Bu qolda muqandis joriy rezistor qanday tuzilganligiga e'tiborini qaratmaydi, rezistor faqatgina zavod xarakteristikalariga muvofiq ishlasa etarlidir. Aynan shu tashqi konstruktsiyada qo'llaniladigan yashirinlik yoki ob'ektni yashirinligi yoki avtonomligi xossasi inkapsulyatsiya deyiladi. Inkapsulyatsiya yordamida berilganlarni yashirish ta'minlanadi. Bu juda yaxshi xarakteristika bo'lib foydalanuvchi o'zi ishlatayotgan ob'ektning ichki ishlari qaqida umuman o'ylamaydi. qaqiqatan qam, xolodilnikni ishlatishda refrijektorni ishlash printsipini bilish shart emas. Yaxshi ishlab chiqilgan dastur ob'ektini qo'llashda uning ichki o'zgaruvchilarining o'zaro munosabati qaqida qayqurish zarur emas. Yana bir marta takrorlash joizki, rezistorni samarali qo'llash uchun uning ishlash printsipi va ichki qurilmalari qaqidagi ma'lumotlarni bilish umuman shart emas. Rezistorning barcha xususiyatlari inkapsulyatsiya qilingan, ya'ni yashirilgan. Rezistor faqatgina o'z funktsiyasini bajarishi etarlidir. C++ tilida inkapsulyatsiya printsipi sinf deb ataluvchi nostandart tiplarni(foydalanuvchi tiplarini) qosil qilish orqali qimoya qilinadi. Sinflar qanday tuzilishga ega ekanligi bilan keyinroq tanishib chiqamiz. To'qri aniqlangan sinf ob'ektini butun dasturiy modul sifatida ishlatish mumkin. qaqiqiy sinfning barcha ichki ishlari yashirin bo'lishi lozim. To'qri aniqlangan sinfning foydalanuvchilari uning qanday ishlashini bilishi shart emas, ular sinf qanday vazifani bajarishini bilsalar etarlidir. Merosxo'rlik. Acme Motors kompaniyasi injenerlari yangi avtomobil konstruktsiyasini yaratishga aqd qilishsa, ular ikkita variantdan birini tanlashlari lozim. Birinchisi, avtomobilning konstruktsiyasini boshidan boshlab yangidan ixtiro qilish , ikkinchisi esa mavjud Star modelini o'zgartirishdir. Star modeli qariyb ideal, faqatgina unga turbokompressor va olti tezlanishli uzatma qo'shish lozim. Bosh muqandisikkinchi variantni tanladi. Ya'ni noldan boshlab qurishni emas, balki Star avtomobiliga ozgina o'zgartirish qilish orqali yaratishni tanladi. Uni yangi imkoniyatlar bilan rivojlantirmoqchi bo'ldi. Shuning uchun , yangi modelni Quasar deb nomlashni taklif qildi. Quasar-Star modeliga yangi detallarni qo'shish orqali yaratilgan. C++ tili qam shunday merosxo'rlikni qimoya qiladi. Bu yangi berilganlar tipi (sinf), oldindan mavjud bo'lgan sinfni kengaytirishdan qosil bo'ladi. Bunda yangi sinf oldingi sinfning merosxo'ri deb ataladi. Polimorfizm. Akselatorni bosilishida Star modeliga nisbatan yangi yaratilgan Quasar modelida boshqacharoq amallar bajarilishi mumkin. Quasar modelida dvigatelga yoqilqini sepuvchi injektor sistemasi va Star modelidagi korbyurator o'rniga turbokompressor o'rnatilgan bo'lishi mumkin. Lekin foydalanuvchi bu farqlarni bilishi shart emas. U rulga o'tirgach oddiygina akselatorni bosadi va avtomobilning mos reaktsiyasini kutadi. C++ tili bir xil nomdagi funktsiya turli ob'ekt tomonidan ishlatilganda turli amallarni bajarishi imkoniyatini ta'minlaydi. Bu funktsiya va sinfning polimorfligi deb nomlanadi. Poli – ko'p, morfe – shakl degan ma'noni anglatadi. Polimorfizm – bu shaklning ko'p xilligidir. Bu tushunchalar bilan keyinchalik batafsil tanishamiz. Sinflar va sinf a'zolari. Yangi tip sinfni e'lon qilish bilan tuziladi. Sinf - bu bir – biri bilan funktsional orqali boqlangan o'zgaruvchilar va metodlar to'plamidir. Sinflarga amaliyotdan ko'pgina misollar keltirish mumkin. Masalan, avtomabilni qildirak, eshik, o'rindiq, oyna va boshqa qismlardan tashkil topgan kollektsiya yoki qaydash tezligini oshirish, to'xtatish, burish imkoniyatlariga ega bo'lgan ob'ekt deb tasavvur qilish mumkin. Avtomobil o'zida turli eqtiyot qismlarni va ularni funktsiyalarini inkapsulyatsiya qiladi. Avtomobil kabi sinfda qam inkapsulyatsiya qator imkoniyatlarni beradi. Barcha ma'lumotlar bitta ob'ektda yiqilgan va ularga osongina murojaat qilish, ularni o'zgartirish va ko'chirish mumkin. Sizning sinfingiz bilan ishlovchi dasturiy qismlar, ya'ni mijozlar sizning ob'ektingizdan, 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. Sar sinfi o'rindiq, radiopriyomnik, shina va boshqa o'zgaruvchi - a'zolardan iborat. O'zgaruvchi – a'zolar faqatgina o'zlarining sinflarida yotadilar. qildirak va motor avtomobilning qanday tarkibiy qismi bo'lsa, o'zgaruvchi – a'zolar qam sinfning shunday tarkibiy qismidir. Sinfdagi funktsiyalar odatda o'zgaruvchi a'zolar ustida biror bir amal bajaradilar. Ular funktsiya – a'zolar yoki sinf metodlari deb aytiladi. Mashina sinfi metodlari qatoriga Haydash() va Tuxtatish() metodlari kiradi. Mushuk sinfi qayvonni yoshi va oqirligini ifodalovchi o'zgaruvchi
– a'zolarga ega bo'lishi mumkin. Shuningdek, bu sinfning funktsional qismi Uxlash(), Miyovlash(), SichqonTutish() metodlaridan iborat bo'ladi.
Funktsiya – a'zolar qam o'zgaruvchi a'zolar singari sinfda yotadi. Ular o'zgaruvchi a'zolar ustida amallar bajaradi va sinfni funktsional imkoniyatlarini aniqlaydi.
Sinflar orasidagi munosabatlar. Murakkab sinflarni qosil qilishda oldin uni tashkil etuvchi oddiyroq sinflarni e'lon qilib, keyin esa ularni birlashtirish orqali sinfni qosil qilish maqsadga muvofiqdir. Masalan, qildirak sinfi, motor sinfi, uzatish korobkasi sinfi va boshqa sinflarni qosil qilib, keyin esa ularni birlashtirish orqali avtomobil sinfini qurish oldimizga turgan masalani echishni ancha osonlashtiradi.
tashkil topgan. Chiziq esa ikki nuqta orqali aniqlanadi. qar bir nuqta x va u koordinatalar yordamida aniqlanadi. To'qri to'rtburchak to'rtta nuqtani birlashtiruvchi to'rtta chiziq yordamida aniqlanadi. Bunda qar bir nuqta grafikda koordinatalarga ega bo'ladi. Shuning uchun bir nuqtaning x, u koordinatalarini saqlash uchun Nuqta sinfi e'lon qilingan.
C++ da dasturlashning asosiy bloklaridan biri funksiya-lardir. Funksiyalarning foydasi shundaki, katta masala bir necha kichik bo'laklarga bo'linib, har biriga alohida funksiya yozilganda, masala yechish algoritmi ancha soddalashadi.
yozgan kutub-honalar ichidagi funksiyalar bilan birlashtiriladi. Bu esa ishni osonlashtiradi. Ko'p holda dasturda takroran bejariladigan amalni funksiya sifatida yozish va kerakli joyda ushbu funksiyani chaqirish mumkin. Funksiyani programma tanasida ishlatish uchun u chaqiriladi, yani uning ismi yoziladi va unga kerakli argumentlar beriladi. () qavslar ushbu funksiya chaqirig'ini ifodalaydi. Masalan: foo();
k = square(l); Demak, agar funksiya argumentlar olsa, ular () qavs ichida yoziladi. Argumentsiz funksiyadan keyin esa () qavslarning o'zi qo'yiladi.
Download 400.55 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling