Mavzu: Turlarni dinamik ta’rifi Reja: Kirish Nazariy qism



Yüklə 180,68 Kb.
səhifə3/6
tarix19.12.2023
ölçüsü180,68 Kb.
#185770
1   2   3   4   5   6
Mirzayeva Oygul

Turlarni almashtirish

Quyidagi kodda std::map va std::pair kutubxonalaridan foydalanilgan: Bu kod yordamida, std::map kutubxonasi yordamida, ismi va yoshi berilgan insonlarning ma'lumotlari tuzilgan. std::pair kutubxonasi yordamida, insonning ismi va yoshi bir xil juftlikda saqlanadi. ages.insert yordamida, ma'lumotlar mapga saqlanadi. for sikli yordamida, mapdagi ma'lumotlar chiqariladi.
STL kutubxonalarini o'rganish, dasturlashda ishlatishda va yuqori darajadagi dasturlar yaratishda juda muhimdir.
Dasturlash jarayonini tushunish uchun kompyuterni tashkil etgan qurilma bloklarini tushunishingiz kerak. Shaxsiy kompyuterni ko’rib chiqsak. Katta kompyuterlarni boshqa kompyuterlarnikidek dizayndagi ammo tezroq, kattaroq, yoki kuchliroq qislmari mavjud. Kompyuterning yuragi Markaziy Protsessor(CPU) Markaziy Protsessor yagona chipdan yoki kichik birlikdagi chiplardan iborat. Kompyuter chipi metal yoki plastik komponentli korpusdan,metal ulagichlardan iborat, uzatkichlar ichki qismi esa kremniydan iborat. Protsessor ichki qismi juda murakkab tuzilgan. MISOl uchun, Pentium chipi (qo’llanma yozilayotgan vaqtda shaxsiy kompyuterlar uchun mashxur protsessor sanalgan) bir qancha millionli tranzistor deb nomlanadigan tuzilma elementlaridan tashkil topgan. Markaziy Protsessor dastur nazorat qilinadi va ma’lumot qayta ishlanadi. Bunda kompyuter dastur nazoratini amalga oshiradi va turgan o’rnini aniqlaydi; u yana qoshish, ayirish, ko’paytirish va bo’lish kabi arifmetik amallar ham bajaradi; tashqi xotira yoki qurilmadagi ma’lumotlarni orqaga qaytarib yozib saqlay oladi. Kompyuter ma’lumot va dasturlarni saqlaydi. Ikki xil turdagi xotira mavjud. Xotira chiplaridan iborat, elektr quvvati bilan ta’minlangan o’zida ma’lumot saqlay oladigan elekr zanjirdan iborat xotira Birlamchi xotira deyiladi. Qoshimcha xotira esa, kamroq qiymatga ega elekts sarflamaydigan Qattiq diskdir. Qatti disk aylanuvchi plastinkaan iborat, magnit material bilan qoplangan, plastinka oqimini aniqlab va o’zgartira oladigan o’quvchi/yozuvchi muhim qismlardan iborat (1.02 rasmga qarang). 1.01-rasm. Markaziy prosessor. 1.02-rasm. Qattiq disk. Dasturlar va ma’lumotlar odatda qattiq diskda saqlanadi va dastur ishga tushganda xotiradan olinadi. Dastur xotiraagi ma’lumotlarni yangilangandan so’ng o’zgartirilgan ma’lumotlar qayta qattiq diskka yoziladi. Insonlar bilan muloqotga kirihganda kompyuter qo’shimcha qurilmalarni talab qiladi.Kompyuter insonga ma’lumotni ekran, ovoz qurilmasi va printer orqali uzatadi. Inson ma’lumotni klaviatura yoki ko’rsatuvchi qurilma sichqoncha bilan kiritadi. Ayrim kompyuterlar qismlari o’zida tashkil topgan, qolganlari bo’lsa tarmoq bilan bog’langan. Tarmoq kabellari sababli, komyuter markaziy xotiradan dastur va ma’lumotlarni o’qiydi va boshqa kompyuterlarga jo’nata oladi. Tarmoqqa ulangan komyuter foydalanuvchisi qaysi ma’lumot kompyuterda o’zi bo’lgani va qaysi biri tarmoqdan olingani aniq bo’ladi. 1.03-rasm. Shaxsiy kompyuterning sxematik tuzilishi 1.03-rasmda shaxsiy kompyuterning sxematik ko’rinish arxitekturasi berilgan. Dastur ko’rsatmalari va ma’lumotlari (matn, son, audio va videolar) qattiq diskda, optik disk DVD da yoki tarmoqning boshqa biror joyida saqlanadi. Dastur ishga tushganda u xotiradan olinadi va Markaziy protsessor uni o’qiydi. Markaziy Protsessor bir vaqtda bitta dastur ko’rsatmasini o’qiydi. Shu ko’rsatmaga binoan, Markaziy Protsessor ma’lumotni o’qiyd, qayta ishlaydi va saqlaydi. Ayrim dastur ko’rsatmalari Markaziy Protsesorga ekranda qayerga nuqta qo’yishni, bosib chiqarishni va ovoz qurilmasini ishga tushirishga buyruq beradi. Bu holatlar ko’p marotaba va yuqori tezlikda amalga oshgani sababli inson faqatgina ovoz va rasmlarni anglaydi. Ayrim dastur ko’rsatmalari klaviatura va sichqoncha orqali kiritilgan ma’lumot orqali o’qilinad. Dastur bu kiritilgan ko’rsatmalarni tahlil qiladi va kerakli ko’rsatmalarni amalga oshiradi. Tasodifiy Fakt 1.1. ENIAK va hisoblashlar ibtidosi ENIAK (yelektron nomerlovchi nomerlovchi integrator va kompyuter) birinchi elektron kompyuterlar bo’lgan. U J.Presper va Jon Mauchliy tomonidan Pensilvaniya Universitetida 1946 yil tranzistorlar kashf qilinishidan 2 yil oldin kashf qilingan. Kompyuter katta honaga joylashtirilgan va 18000 ga yaqin vakuumdan tashkil topgan kichkina shkaflardan tashkil topgan.(1.02 rasmga qarang) Vakuum trubalar kuniga bir nechtalab yonib ketgan. Maxsus shaxs trubalar to’ldirilgan idish bilan ishdan chiqqan trubalarni almashtirib turgan. 1.04-rasm. ENIAK Kompyuter panellardagi birlashtiruvchi simlar bilan dasturlangan. Xar bir sim konfiguratsiasi tegishli kompyuter muammosi uchun o’rnatilgan. Kompyuter turli xil muammlor ustida ishlashi uchun simlar qayta ulangan. Qo’shma Shtatlar Armiyasi ENIAKni ballistik jadvallar hisobi uchun,shamolga qarshi tezlik trayektoriyasi va atmosfera holatini aniqlab berishda foydalangan. Trayektoriyani hisoblash uchun ma’lum bir differensial tenglaman raqamli yechimini topish shart edi. Shu sababli ham “raqamli integrator” deb nomlangan. ENIAK kabi mashinalar ixtiro qilinmasdan avval insonlar bu ishlarni qilishgan va 1950 yilgacha “kompyuter” so’zi ular uchun ishlatilgan. ENIAK keyinchali tinchlik yo’lida, Qo’shma Shtatlarda aholini ro’yxatga olishda ishlatilgan. Tasodifiy Fakt 1.2 standardlovchi Tashkilotlar 2 ta standardlovchi tashkilotlar Amerika Milliy Standardlash Instituti (ANSI) va Xalqaro Standardlovchi Tashkilot (ISO) hamkorlikda C++ tili uchun eng to’g’ri standard vujudga keltirishdi. Nima uchun standard kerak? Siz standardlashni foydasi bilan har kuni to’qnash kelasiz. Lampochka sotib olayotganda u uyingizdagi lampochka chanog’iga mos kelishini bilasiz. Fakt shuki, siz qachondir nostandard fonar, lampochkalarini xarid qilsangiz standardlash qanchalik muhimligini bilib olasiz. Fonar Lampochkalarni qayta almashtirish qiyin va qimmat bo’lishi mumkin. ANSI and ISO standardlash tashkilotlari mashina balonlari va kredit kartalari shaklidan to C++ dasturlash tiligacha xamma narsalarni standardlashni yo’lga qo’ygan ishlab chiqarish mutaxassislari birlashmasidir. Bu siz bir sistemada o’rnatgan dasturni boshqa ishlab chiqaruvchi to’plamidagi boshqa dasturga qo’yganingizda u ishlashiga amin bo’lishingizdir. 1.3 Dasturlash muhiti bilan tanishish Ko’p studentlar dasturchilarga kerak bo’ladigan qurilmalar ularga tanish bo’lgan dasturiy taminot qurilmalaridan faqr qilishini bilishadi. Siz alohida vaqt ajratib dasturiy muhit bilan tanishib chiqing. Chunki kompyuter tizimi keng farqlanadi, bu kitob sizga amal qilishingiz kerak bo’lgan bosqichlar yo’riqnomasini beradi.Amaliy labaratoriya ishlarida qatnashish yoki bilimga ega do’stingiz yo’rig’ini tinglash ham samaralidir. 1-bosqich. C++ yaralish muhitini boshlang. Kompyuter tizimlari bu borada katta farq qiladi. Ko’p kompyuterlarda yozish va dasturlarni sinash mumkin bo’lgan bir integratsiya ishlab chiqish muhiti bor. Boshqa kompyuterlarda esa C++ yo’riqnomalarini kiritish uchun avval so’z muharririni ishga tushirish lozim, keyin esa konsol oynasi- ni ochish va bajarilishi kerak bo’lgan buyruqni kirgizishingiz kerak. Suiz muhit bilan ishlashni o’rganishingiz lozim. 2-bosqich. Oddiy dastur yozing. Yangi dasturlash tilini yaratishdagi ilk dasturda ekranda oddiy salomlashuv so’zi “Hello, World!”. Keling, bu an’ana amal qilaylik. Bu erda C++ “Hello, World!” dasturi: #include using namespace std; int main() { cout << "Hwllo, World!" << endl; return 0; } Biz keyingi bo’limda ushbu dasturni ko’rib chiqamiz. Qanday dasturiy muhitdan foydalanmang, dastur holatini muharrir oynasiga kiritishdan boshlaysiz. Yangi fayl oching va uni hyello.cpp, deb nomlang, yo’riqnomangiz uchun zarur bosqichlardan foydalaning. (Agar sizning muhitingiz loyiha nomini fayl nomiga qo’shib yozishni talab qilsa u holda siz hyello so’zini loyiha nomi deb olinng.) Dastur buyruqlarini tepada berilgandek aniq kirg’izing. Shu bilan bir qatoda, dasturdagi manbaa fayllarini elektron nusxasini toping va muharriringizga qo’ying. Siz shu dasturni yozar ekansiz, turli belgilarga yaxshilab e’tibor bering, C++ nozik ish sanaladi. Siz xarflarni dastur satrida ko’ringanidek bosh va kichik xarflarda kirg’izishingiz shart. main yoki endl yoza olmaysiz. Agar siz e’tiborli bo’lmasangiz xatoga yo’l qo’yasiz. 3-bosqich. Kompilyatsialash va dasturni ishga tushirish. C++ dasturini yaratish va ishga tushirish jarayoni sizning dasturlash muhitingizga bog’liq. Ayrim kompleks rivojlantirish muhitida, siz oddiygina tugmachani bosasiz. Boshqa muhitda esa, siz buyruqlar kirg’izishingiz lozim. Siz dasturingizni sinovdan o’tkazishda Hello world! ekranni qaysi joyidadir paydo bo’ladi (1.05 va 1.06 rasmga qarang). 1.05-rasm. hello dasturini ishga tushirish jarayoni 1.06-rasm. hello dasturini window oynasida kompilyasiyalash va ishga tushirish Dasturingiz tuzilayotganda uning negizida nima borligi muhimdir. Birinchidan, First, kompilyator C++ manbaa kodini (siz kiritgan so’zlar) mashina ko’rsatmalariga o’girib beradi. Mashina kodi siz yozgan so’zni kodga o’girib berilgan shaklidir. Dasturni faqatgina ishga tushirish yetarli bo’lmaydi. Kompyuter oynasida bir tizimni ko’rinishi uchunham, kam darajada bo’lsa ham faollik muhim. C++ rivoj- lantirihs muhiti amaliyotchilari cout va uning vazifalarini o’z ichiga olgan kutub- xona bilan ta’minlab beradi. Kutubxona bu bowqa bir inson tomonidan dastur- langan va tarjima qilingan, siz qo’llashingiz uchun tayyor dastur kodlar va jamlanmasidir. (Qo’shimcha murakkab dasturlar 1 dan ortiq mashina kodi fayli va ku- tubxonadan iborat) Birlashtirgich nomli dastur mashina kodini va C++ kutubxonasidan kerakli qismlarni birlashtirib amalga oshgan faylni yuzaga keltiradi. (1.07-rasmda bu boshqichlarni ko’rinishi tsvirlangan) Amalga oshgan fayl kompyuter tizimiga bog’liq ravishda hyello.yexe yoki hyello deb nomlanadi. Siz amalga oshgan faylni C++ rivojlantirish dasturidan chiqib ketganingizda ham ishga tushirishingiz mumkin. 4-bosqich. Ishingizni tashkillashtiring. Dasturchi sifatida, siz dastur tuzasiz, sinaysiz va takomillashtirasiz Siz dasturlaringizni fayllarda saqlaysiz. Fayllarni nomlari va qonuniy nomlari qoidalar tizimi biri ikkinchisidan farq qiladi. Ayrim tizimlar fayl nomlari orasida bo’sh joy qoldirishga ruxsat beradi ayrimlari esa yo’q. Ayrimlarida kat- ta va kichik harflar farqlanadi, ayrimlarida esa yo’q. Ko’p C++ kompilyatorlar C++ fayllari .cpp, .cxx, .cc, yoki .c bilan tugashi talab qilinadi, masalan test.cpp. Papkalar o’z ichiga fayllarni oladi va yana ichida fayllar va papkalar bor boshqa fayllarni ham saqlay oladi. (1.08-rasm) Bu iyerarxia katta bo’lishi mumkin, va siz uning barcha bo’limlari bilan tanish bo’lmasligingiz mumkin. 1.07-rasm. Amalga oshgan fayl manba kodi. Biroq siz ishingizni tashkil qilishingiz uchun papkalar yaratishingiz mumkin. Har bir dasturlash darsi uchun alohida papka ochish to’g’ri fikrdir. Papka ichida esa, xar bir topshiriq uchun alohida papka oching. Ayrim dasturlash muhiti papkani o’zingiz joylashtirmasangiz standart manzilga saqlaydi. U holda siz papka joylashgan joyini aniqlashingiz kerak bo’ladi. Iyerarxia papkasida faylingiz qayerga joylashganini bilishingizga ishonch hosil qiling. Bu ma’lumot papkalarni guruhlayotganingizda va zahira nusxa olayotganingizda muhimdir. 1.08-rasm. Ierarxiya fayli 1.4 Ilk dasturingiz tahlili Bu bo’limda ilk C++ dasturini batafsil tahlil qilamiz. Quyida yana manbaa kodi: ch01/hello.cpp #include using namespace std; int main() { cout << "Hello, World!" << endl; return 0; } using namespace std; kompilyatorga "standart nomlanish joyi" ishlatish kerakligini aytadi. Nomlanish joyi katta dasturlarda nomlanishdagi nizolarni bartaraf etadi. Siz nomlanish joyidan xavotir olmasangiz ham bo'ladi. Bu kitobda ishlab chiqadigan dasturingiz uchun standart nom qo'yasiz. xar bir yzadigan dasturingiz boshiga using namespace std; ni yozing va oxirida esa #include ko'rsatmasini yozing. Tuzilishi int main() { ... return 0; } main deb nomlanuvchi funksiasi butun sonni 0 qiymatda qaytaradi (bunda C++ int da deb nomlanuvchi bo'laklanmagan butun son) Bu qiymat dastur muvaffaqiyatli yakunlanganini ifodalaydi. Funksia bu belgilangan vazifani bajaruvchi dasturlash yo'riqnomasidir. Har bir C++ dasturini asosiy funksiasi bor. Ko'p C++ dasturlari dan tashqari boshqa funksilarga ham ega buni keyinroq 5 Bobda funsialar va qiymatlarda ko'rib chiqamiz. Xozir esa, oddiy dastur yozish uchun kerak bo'ladigan qismlarni tahlil qilsak to'g'ri bo'ladi. Kodni amalga oshirmoqchi bo'lgan main funksiasiga kiriting. Qiymatni ekranda ko'rsatish uchun cout nomli asos va << operator(ayrim paytlarda o'rnatilgan operator)) dan foydalanishingiz mumkin. Masalan, cout << 39 + 3; 42 soni ekranda ko'rinadi. 1.5 Xatolar Dasturlash tili juda ham muhim konvensialarga asoslanadi. Siz bir inson bilan muloqot qilayotganingizda 1 yoki 2 so'zni o'tkazib yuborsangiz yoki tushirib qoldirsangiz siz bilan muloqotdagi inson nima demoqchi ekanligingizni tushuna oladi. Ammo C++ da xatoga yo'l qo'ysangiz kompilyator noto'g'ri tushunchani qabul qilmaydi. (Bu xasqiqatda yaxshi narss, agar kompilyator noto'g'ri tushunchani qabul qilganda, u natijani ham noto'gri taqdim qilar edi. Bu esa falokatli oqibatlarga olib kelar edi.) Bu bo'limda siz dasturingizdagi xatolarni qanday bartaraf etishni o'rganasiz. hello.cpp dasturi bilan tajriba qilamiz. Biz quyidagi xatolarga yo'l qo'ysak nima sodir bo'lar edi. cout << "Hello, World!" << endl; cout << "Hello, World! << endl; cout << "Hollo, World!"<< endl; Birinchi holatda, kompilyator orqali nimani nazarda tutayotganingizni tushunmaganligidan arz qiladi. Yo'l qo'yilgan xatolikning aniq ta'rifi kompilyatorga bog'liq bo'ladi. Bu “Undefined symbol cot” kabi ko'rinishda ham bo'lishi mumkin. Bu COMPILE TIME xatolik yoki sintaksis xatolik sanaladi. Imlo qoidasiga yo'l qo'yilsa ham kompilyator uni topadi. Agar kompilyator 1 yoki undan ko'p xatolikni topsa, u holda dasturni texnika tiliga o'girmaydi va natijada ishga tushiriladigan dastur ham yaratilmaydi. Siz xatolikni bartaraf eti uni boshqatdan to'plashingiz kerak bo'ladi. Odatda ilk muvaffaqiyatli kompilyatisaga erishishdan oldin COPMILE TIME xatoliknibartaraf etishdagi bir qancha jarayonlardan o'tiladi. Agar kompilyator xatolikni aniqlasa u osonlikcha to'xtamaydi va rad etmaydi. U aniqlagan xatolikni hammasini ko'rsatadi, siz bunda hamma xatolikni bittada to'g'irlab olishingiz mumkin. Ayrim paytlarda bitta xatoni o'zi ham dasturni ishdan chiqarishi mumkin. Bunday xatolik ikkinchi satrda ham uchrashi mumkin. Dasturchi yopuvchi qavs belgisini ishdan chiqarsa kompilyator satr oxirini qidirishda davom etadi. Bunday holatlarda kompilyator qo'shni qatorlarda soxta xatolikni ko'rsatadi. Siz kerakli qatorlardagi xatolikni to'g'irlab so'ng qaytadan kompilyatsialashingiz kerak. Bu RUN TIME ERROR hisoblanadi. Dastur gap tuzilishi jihatdan xatolikni topadi va nimadir bajaradi, ammo taxmin qilingan ishni bajarmaydi. Kompilyator xatolikni topa olmaydi, ammo dastur ishga tushganda uni tozalashga majbur, uni tekshiradi va chiqarilishiga yaxshilab e'tibor beradi. RUN-TIME ERROR sabali dastur mantiqiy nuqson aniqlaydi va bu nuqsonlar mantiqiy xatolik deyiladi. Ayrim RUN TIME ERROR xatoliklari jiddiy hisoblanadiki ayrim istisnolar keltirib chiqarishga ham sababchi bo'ladi. Protsessordagi xabar xato xabar sababli dasturni tugatilishiga olib keladi.Misol uchun dasturingiz cout << 1 / 0; bo'lsa "nol bilan ajratish" istisnosi bilan tugatilinadi. 1.6 Muammo yechimi: Algoritm konstruksiyasi Siz tez kunda hisoblarni va qaror qabul qilishni С++da qanday dasturlashni o’rganasiz.Biroq keyingi bobdagi hisoblarni amalda qo’llash mexanizmini ko’rib chiqishdan oldin keling, ijrodan keyin keladigan rejalashtirish jarayonini ko’rib chiqamiz.Balki sizga mos umr yo’ldosh topib beruvchi kmpyuterlashagn xizmat uchun sizni undaydigan e’longa duch kelgandirsiz. U qanday ishlashi mumkinligi to’g’risida o’ylab ko’ring.Siz anketa to’ldirasiz va uni jo’natasiz. Boshqalar ham shunday qiladilar. Ma’lumotlar kompyuter tomonidan ishlab chiqiladi. Kompyuter sizga eng mos shaxsni topish vazifasini uddalay oladi deb o’ylash to’g’rimi? Deylik kompyuter emas ukangizda barcha anketlar bor.Unga qanday ko’rsatmalar bera olardingiz.siz unga "Konkida uchishni va internetda o’tirishni yoqtiradigan juda chiroyli bo’lgan qarama-qarshi jinsdagi shaxsni top" , deb aytolmaysiz. Go’zal chehra borasida obyektiv standart yo’q va ukangizning fikri (yoki raqamli rasmni tahlil qilgan kompyuterning dasturining fikri)siznikidan farqli bo’lishi mumkin. Agar siz biror kimsaga muammoniu hal etish chun yozma ko’rsatma bera olmasangiz, kompyuter ham buni hyech qanday sehr yordamida yecha olmasligini iloji yo’q.Kompyuter faqatgina unga nima qilishni aysangiz shuni bajara oladi. U zerikmasdan yoki charchamasdan vazifani tezroq bajaradi. Endi quyidagi sarmoya borasidagi muammoni ko’rib chiqamiz:Siz bank hisob raqamingizga yiliga 5% foyda qiladigan $10,000 miqdordagi pulni qo’ydingiz. Dastlabki miqdor ikki baravar ko’payishi uchun hisob balansi uchun qancha yil talab etiladi? Ushbu muammoni qo’llar yordamida yecha olasizmi? Albatta, siz balansni quyidagicha hisoblaysiz: yil foyda balans Balans kamida $20,000 miqdoriga yetmaguncha siz hisobni davom ettirasiz.Yil ustunidagi oxirgi raqam javob bo’ladi. Albatta, bu xisoblashni amalga oshirish siz va ukangiz uchun juda zerikarlidir. Lekin kompyuterlar takrorlanuvchi hisoblarni tez va mukammal bajarishda ustasi farangdrlar.Kompyuter uchun muhimi bu yechimni topishda bosqichlarning tavsifidir.Har qaysi qadam tahmindan uzoqda aniq va lo’nda bo’lishi shart.
C# dasturlash tilida kompyuter xotirasiga bir o’zgaruvchi yordamida bir nechta qiymatlarda foydalanishga to’g’ri keladi. Bir o’zgaruvchi bilan bir nechta qiymat ustida amallar bajarish uchun berilgan ma’lumotlar bir turga mansub bo’lishi kerak. C# dasturlash tilida bir o’zgaruvchi yordamida bir nechta qiymatlardan foydalanish uchun massiv degan turdan foydalaniladi. Dasturlash tillarida ro’yxat yoki jadval ko’rinishidagi ma’lumotlarni massiv deb atashadi. Massiv so’zining ma’nosi o’lcham, o’lchov demakdir. Massivning barcha elementlari bitta turga mansub bo’lib, ular bitta nom bilan nomlanadi va bir-birlaridan nomerlari (indekslari) bilan farq qiladi.


  1. Yüklə 180,68 Kb.

    Dostları ilə paylaş:
1   2   3   4   5   6




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin