“Dasturlash I” fanidan yakuniy nazorat savollari




Download 1.12 Mb.
Pdf ko'rish
bet1/3
Sana15.05.2023
Hajmi1.12 Mb.
#60065
  1   2   3
Bog'liq
Dasturlash I fanidan yakuniy nazorat savollari
49-20EE(uz), BEELINE ustiga N, 15.02.2024-dars materiali. Oq аkаsiya, аlbisiya, soforа, gledichiya, аmorfа, bаgryanik, drok turlаrini urug‘idаn vа vegetаtiv ko‘pаytirish


 
 
“Dasturlash I” fanidan yakuniy nazorat savollari 
1. 
Kompyuter haqida asosiy tushunchalar (hardware, software).Protsessor (CPU). 
Kompyuter – ma‘lumotlarni saqlovchi va qayta ishlovchi elektron qurilma.Kompyuter apparat 
(hardware) va dasturiy (software) ta‘minotlardan tashkil topgan.Apparat ta‘minotini 
kompyuterning fizik elementlari tashkil qilsa, dasturiy ta‘minotini fizik elementlar faoliyatini 
amalga oshiruvchi va topshiriqlarning bajarilishini nazorat qiluvchi dasturlar to`plami tashkil 
etadi. Kompyuterning markaziy protsessor bloki (CPU) uning bosh miyasi hisoblanadi, xotiradan 
yuborilgan masalalar unda bajariladi. 
2. 
Ichki va tashqi xotira qurilmalari(RAM, saqlash qurilmalari).Bitlar va baytlar. 
Dastur xotirada yaxshi yozilishi va xotiradagi ma‘lumotlar bilan yaxshi ishlashi uchun 
kompyuter 
xotirasida 
baytlar 
tartiblangan 
ketma-ketliklarda 
joylashtiriladi. 
Xotirani 
kompyuterning dasturni ishga tushirishi uchun ishchi maydon sifatida qarash mumkin. Bitta bayt 
xotirada o`zining unikal (yagona, alohida) manziliga ega. Manzillar ma‘lumotlarni yozish va 
qaytarish uchun baytlarni bog`lashda ishlatiladi. Shu o`rinda baytlar xotirada ixtiyoriy tartib 
raqamni egallashi mumkin, o`z navbatida xotira ham turli tartibli xotira (Random Access 
Memory, RAM) ko`rinishida namoyon bo`ladi. Kompyuter xotirasi ishlatilayotgn ma‘lumotlarni 
vaqtinchalik ular saqlangan joydan oladi va tizim ishi tugatilganda u xotiradan o`chirib 
yuboriladi. Dasturlar va ma‘lumotlar saqlash qurilmalarida doimiy saqlanadi va kompyuter 
ulardan foydalanishni faollashtirganda saqlash qurilmalariga qaraganda tezroq ishlovchi xotira 
qurilmasiga vaqtincha ko`chiriladi.Saqlash qurilmalarining uchta asosiy turlari mavjud: disk 
qurilmalari,optic disk qurilmalari (CD va DVD),USB xotira qurilmalariюQattiq disklar 
ma‘lumotlar va dasturlarni doimiy saqlash uchun ishlatiladi.CD qurilmalarining ikki turi mavjud: 
CD-R va CD-RW. CD-R lar faqat ma‘lumotni yozish uchun ishlatiladi. Unda bir marta yozilgan 
ma‘lumotni o`zgartirish, o`chirish yoki unga qaytadan ma‘lumot yozish imkonsiz. CD-RW dan 
qattiq disk kabi foydalanish mumkin, ya‘ni unga yozilgan ma‘lumotni o`zgartirish yoki unga 
qaytadan ma‘lumot yozish mumkin bo`ladi.DVD – (Digital Versatile Disc) raqamli ko`pmuhitli 
disk yoki (Digital Video Disk) raqamli video disk ma‘nolarida keladi. CD va DVD o`zaro juda 
o`xshash bo`lib, har ikkalasidan ham ma‘lumot saqlashda foydalaniladi. DVD CDga qaraganda 
ko`proq ma‘lumot saqlay oladi. USB (Universal Serial Bus – universal seriyali tashish) 
bog`lovchilari turli xildagi periferiya qurilmalarini kompyuterga bog`lash imkonini beradi. 
USBli bog`lash orqali printer, raqamli kamera, sichqoncha, tashqi qattiq disk kabi qurilmalarni 
kompyuterga ulash mumkin.Kompyuterda yoziladigan eng kichik bo`lak – bayt deb ataladi. Bir 
bayt 8 bitdan iborat. Mayda raqamlar, masalan 3 raqami kompyuterda bir bayt bo`lib yoziladi. 
Lekin kompyuterda faqat bitta bayt bilan ma‘lumot yozilmaydi, balki, bir vaqtda bir nechta 
baytlar bilan ishlaydi. Raqamlar va belgilar kabi turli xildagi ma‘lumot turlari baytlar seriyasi 
ko`rinishida shifrlanadi. 
3.
Dasturlash tillari(mashina tili, assembler tili, yuqori darajali tillar).
Yuqori darajali tillar. 1950-yilga kelib yuqori darajali tillar nomi bilan nom qozongan dasturlash 
tillari yaratildi. Ular dastur yozish uchun mustaqil muhitga ega bo`lib, ularda turlicha toifadagi 
mashinalar uchun dastur yozish imkoniyati mavjud bo`lgan. Dasturlash tillari ingliz tili asosida 
ishlab chiqilgan bo`lib, o`rganishga va foydalanishga qulay hisoblanadi.Yuqori darajali 
dasturlash tillarida yozilgan dastur dastur kodi deb yuritiladi. Chunki, dastur kodini kompyuter 
to`g`ridan-tog`ri ishlata olmaydi. Buning uchun dastur kodi mashina kodiga o`girilishi lozim. 
Dastur kodining o`girilishi boshqa bir dasturiy vosita yordamida amalga oshirilishi mumkin. 
Bunday dasturiy vosita interpretator yoki kompilyator deb ataladi. 


Mashina tili.Hozirgi kunda kompyuterlarning juda ko`p turlari mavjud, ammo, ular yagona tilni 
tushunishadi – mashina tilini. Mashina tili dasturlash tillariga qaraganda soddalashtirilgan 
ko`rsatmalardan iborat bo`ladi. Ya‘ni undagi barcha ko`rsatmalar ikkilik kodda yoziladi. Misol 
uchun, agar kompyuterga ikkita sonni kiritmoqchi bo`lsak, unga quyidagicha ikkilik kodni 
yozish lozim bo`ladi: 
1101101010011010
Yuqori bosqichli programmalashda, mashina tillariga qaraganda mashinaga moslashgan 
(yo‗naltirilgan) belgili kodlardagi tillar hisoblanadi. Belgilar kodlashtirilgan tillarning asosiy 
tamoyillari shundaki, unda mashina kodlari ularga mos belgilar bilan belgilanadi, hamda xotirani 
avtomatik taqsimlash va xatolarni tashhis qilish kiritilgan. Bunday mashina moslashgan til -
ASSEMBLER tili nomini oldi.EHM faqat mashina tilini-buyruqlar, operand va sonlarning 
ikkilik sanoq, sistemasidagi ko‗rinishini «tushinadi». Shu sababli, Assembler tilida yozilgan 
programmalar uchun ularni mashina tiliga o‗tkazuvchi «tarjimon» kerak bo‗ladi. 
Assembler tilidagi programmani mashina tiliga o‗tkazuvchi maxsus programma translyator 
deyiladi, ayrim hollarda uni Assembler deb ham atashadi.
3. 
C++ tarixi(BCPL, B, C, C++). 
C, C++, Java va C# o`zaro bog`liq tillar. C++ C dan olingan. Java C++ dan keyin ishlab 
chiqilgan. C# C++ ning ichki tizimini o`zlashtirgan holda, Javaning ba‘zi imkoniyatlarini o`zida 
mujassamlashtirgan. Agar mazkur tillarning bittasi o`rganilsa, qolganlarini o`rganish qiyin 
bo`lmaydi. 
C BCPL (Basic Combined Programming Language – Asosiy kombinatsiyalanuvchi dasturlash 
tili) asosida ishlab chiqilgan B tilida yaratilgan.C++ 1983-1985-yillar davomida ―Bell 
Laboratories‖da Bjarne Stroustrup tomonidan kengaytirilgan C ko`rinishida ishlab chiqilgan. 
Bunda C++ning eng muhim jixati shundan iboratki, u ob‘yektga yo`naltirilgan dasturlashda sinf 
(class)lardan foydalanish imkonini beradi. Ob‘yektga yo`naltirilgan dasturlash orqali dastur 
tuzish, uni qayta qo`llash va rivojlantirish mumkin. C++ C dasturlash tili bilan mustaxkam 
bog`liqlikda tuzilgan. C dastur kodini C++ kompilyatorida ham to`g`ridan-to`g`ri mashina tiliga 
o`girish mumkin. C++ dasturlash tilini o`rgangan dasturchi C tilini ham yaxshi tushuna oladi. 
4. 
C++ da eng sodda dastur (konsol, konsoldan kiritish, konsolga chiqarish, main funksiyasi, 
izohlar). 
C++ da eng sodda dasturlar bu konsolga biror bir matnni chiqaruvchi dasturlar 
hisoblanadi.Konsol bu eski termin hisoblanib malumotlarni korsatuvchi oynadir.cin obyekti 
konsoldan kiritish uchun ishlatiladi.Konsolga chiqarish uchun esa cout obyektidan 
foydalaniladi.Hamma bajariladigan amallarimiz main funksiyasi ichida bajariladi.Izohlar bir 
satrli yoki ko`p satrli izohlarga bo`linadi. Bir satrli izohlarni // operatoridan so`ng yoziladi 
.Ko`p satrli izoh yozish uchun /* izoh */ shu operatordan foydalanamiz. 
5. 
Sintaktik xatoliklar(sintaksis xatolik, kompilyatsion xatolik). 
Kompilyator tomonidan aniqlangan xatoliklar sintaksis xatoliklar yoki kompilyatsiya xatoliklari 
deyiladi. Sintaksis xatolik dastur kodini mashina kodiga kompilyatsiya qilish jarayonida 
kompilyator tomonidan aniqlanadi 
6. 
Dastur bajarilish vaqtidagi va mantiqiy xatoliklar(runtime error, logic error). 
Bajarilishdagi xatolik dastur dasturlash va hisoblash qoidalariga nomutanosib ravishda 
tuzilganda sodir bo`ladi. Bunda, masala bajarilishi uchun kiritilgan qiymatlar turi natijaviy 
qiymat turiga mos kelmay qoladi va odatda, dasturning natijani chiqarish vaqtida bajarilish 
(Runtime)dagi xatolik yuz beradi. 
Mantiqiy xatoliklar. Dasturda mantiqiyxatoliklar kutilgan natija olinmaganda sodir bo‗ladi. 


Bajarilishdagi xatoliklar. Bajarilishdagi xatolik dastur dasturlash va hisoblash qoidalariga 
nomutanosib ravishda tuzilganda sodir bo‗ladi. 
7. 
Sodda dastur yozish (masalaning qo‗yilishi, algoritm, psevdokod). Klaviaturadan o‗qish 
(kiritish, foydalanuvchini undash). 
Dastur yozish mos algoritmni loyihalash va uni dastur buyruqlari yoki kodlariga o`tkazishni 
talab etadi. Algoritm dastur tarkibidagi ko`rsatmalarning qanday harakatlanishi va bajarilish 
tartiblarini belgilash orqali masalani yechishni tavsiflaydi. Algoritm dasturchiga dasturlash tilida 
dastur yozishdan oldin uni rejalashtirishda yordam beradi. Algoritmlar tabiiy tilda yoki 
psevdokodlar (tabiiy tilning ba‘zi dasturlash kodlari bilan kombinatsiyalangan ko`rinishi) orqali 
tasvirlanadi.Klaviaturadan ma‘lumot kiritish vositasida dastur foydalanuvchisidan ma‘lumot 
qabul qilib olinadi. Biz dasturga ma`lumotni klaviaturadan kiritish uchun cin obyektidan 
foydalanamiz. Foydalanuvchini ma`lumot kiritishga undash uchun (cout<<
‖Malumotni 
kiriting:‖
<8. 
Identifikatorlar(nomlash, nomlash qoidalari).O‘zgaruvchilar(o‗zgaruvchini e‘lon qilish, 
birdan ortiq so‗zlarni bog‗lab nomlash). 
Identifikatorlar(Ismlar) – dasturning o`zgaruvchilar, funksiyalar va shu kabi bosha 
elementlarning nomlaridir.Barcha ismlar quyidagi qoidalarga binoan tuzilishi kerak.Ism – bu 
harflar, raqamlar va tag chiziq belgilarining ketma-ketligidir,ism harf yoki tag chiziq bilan 
boshlanishi mumkin, raqam bilan boshlanishi mumkin emas,ism maxsus vazifali so`z bo`lishi 
mumkin emas (C++ tilining maxsus vazifali so`zlar ro`yxati ilovada keltirilgan),ismlar ixtiyoriy 
uzunlikda bo`lishi mumkin; C++ kompilyator ularni dastlabki 31 tagacha belgi bilan 
farqlaydi.Dasturda o`zgaruvchan qiymatlarni tavsiflash uchun o`zgaruvchi tushunchasi 
shakllantiriladi. O`zgaruvchilar belgilangan tur bo`yicha qayta-qayta qiymatlar berish uchun 
qo`llaniladi. O`zgaruvchidan foydalanish uchun dasturga kiritilishi mumkin bo`lgan mos 
ma‘lumot turi bo`yicha o`zgaruvchiga berilgan nom orqali kompilyator chaqiriladi. 
O`zgaruvchini e‘lon qilishda - o`zgaruvchi unga belgilangan ma‘lumot turiga mos miqdorda 
xotiradan joy olishi uchun kompilyator chaqiriladi.O`zgaruvchilarning nomlari birdan ortiq 
so`zlar bilan ifodalayotkan bo`lsa bu so`zlarni bog`lab nomlanadi.Agar bu nomlar bog`lab 
yozilmasa dastur kompilyatsion hatolik beradi.Chunki dastur bu nomlarni bir nechta o`zgaruvchi 
deb qaraydi. Odatda o`zgaruvchilar kichik harflar bilan beriladi. Agar o`zgaruvchilar bir nechta 
so`zlardan iborat bo`lsa, unda oraliq so`zlarning bosh harflari bosh harflarda beriladi. Masalan, 
radius va foydaMiqdori o`zgaruvchilari. 
9. 
Ta‘minlash operatorlari va ta‘minlash ifodalari(ta‘minlash operatori, ifoda, ta‘minlash 
qoidalari).Nomlangan konstantalar(o‗zgarmas, const kalit so‗zi, o‗zgarmaslarning 
afzalliklari). 
С++ muhitida ta`minlash operatori sifatida ikkita tenglik belgisi ya`ni (==) belgisi 
ishlatiladi.Misol tariqasida a o`zgaruvchini b ga ta`minlamoqchi bo`lsak a==b ko`rinishida 
ta`minlaymiz.
Taqqoslash jarayonida ikki tomonning tengligini tekshirish uchun 
ikkita tenglik belgisi (==)dan foydalanish zarur.
Nomli o`zgarmas (Named Constant) – o`zgarmas qiymatni ta‘minlovchi identifikatordir. 
O`zgarmasni e‘lon qilish tartibi quyidagicha:const [ma‘lumot turi] [o`zgarmas nomi] = [qiymat]; 
O`zgarmas yagona ko`rsatma orqali e‘lon qilinishi va yuklanishi lozim. const so`zi C++ ning 
kalit so`zi bo`lib, o`zgarmaslarni e‘lon qilish uchun ishlatiladi Odatda o`zgarmaslar katta harflar 
bilan nomlanadi: Pi yoki pi emas.O`zgarmaslardan foydlanishning uchta afzallik tomoni bor: 1) 
dasturda bitta qiymat hadeb qaytadan yozilavermaydi; 2) Agar o`zgarmasning qiymatini 
o`zgartirmoqchi bo`lsangiz, uni dastur kodiga murojaat orqali amalga oshirish mumkin bo`ladi; 


3) O`zgarmasni tavsiflovchi so`zlar dastur tomonidan qiymatni oson ta‘minlanishi va o`qilishiga 
zamin yaratadi. 
10. 
Sonli ma‘lumotlar turlari va ular ustida amallar(int, float, double). 
H
ar bir ma‘lumot turi qiymatlar sohasiga ega. Kompilyator har o`zgaruvchi va o`zgarmasga 
uning turiga qarab xotiradan joy ajratadi. C++ odatiy qoidalariga ko`ra raqamli qiymatlar, 
belgilar va mantiqiy qiymatlar bilan ishlaydi.C++ butun qiymatlarning 3ta turini qo`llaydi: short, 
int va long. Har bir butun tur ikki xil xususiyat bilan keladi: ishorali va ishorasiz. Butun qiymatli 
sonlarning yarmini manfiy ishorali, qolgan yarmini esa nomanfiy (musbat) ishorali sonlar tashkil 
etadi. Ishorasiz berilgan intlarning barchasi musbat ko`rinishda kiritiladi. C++ haqiqiy sonlarning 
uch turi bilan ishlaydi: float, double, va longdouble. double turi odatda float turidan ikki marta 
katta bo`ladi. Shuningdek, double ikkilik aniqlikda, float esa bir birlik aniqlikda 
hisoblanadi.Sonli ma`lumotlar ustida+, -, *, /, % shu amallarni bajarish mumkin.Bulardan 
tashqari ildiz,kvadratga oshirish ,log ifodalarni,trigonametrik ifodalarni qo`llash mumkin. 
11. 
Sonli literallar. Arifmetik amallarni bajaruvchi operatorlar(literallar,operatorlar, operandlar, 
butun bo‗lish, qoldiqli bo‗lish). 
Raqamli literallar dastur qismlarida o`zgarmas qiymat sifatida keladi.Quyidagi 
ko`rsatmada 34 va 0.305 lar literallar: 
inti = 34;doublefootToMeters = 0.305; Odatda butun turli literallar o`nli butun son 
ko`rinishda ifodalanadi. Sakkizlik butun literaldan foydalanish uchun 0 (nol)dan oldin yoziladi. 
Oltilik o`lchamdagi butun literalni yozish uchun esa 0x yoki 0X ifodalari qo`llaniladi. Haqiqiy 
turli literallar 
shakl ko‗rinishidagi ilmiy ifodalar yordamida yozilishi mumkin. Misol 
uchun, 123.456 uchun 
va 0.0123456 uchun 
shakllari o‗rinlidir. 
Buni dasturlash tillarida 
1.23456E-[-2]
kabi yozilishini dastur qiymat (natija) chiqarganda 
ko‗rish mumkin. Bu yerda E (yoki e) lar – eksponenta belgisi bo‗lib, katta yoki kichik harflarda 
yozilishi mumkin.Raqamli ma‘lumot turlari uchun standart operatorlar tayinlangan: qo`shish (+), 
ayirish (-), ko`paytirish (*), bo`lish (/) va foiz(%).Qo`shish ikkita raqamli ma`lumot turini 
qo`shadi,ayirish 
ikkita 
ma`lumot 
tuini 
ayiradi,ko`paytirish 
ikkita 
ma`lumot 
turini 
ko`paytiradi,bo`lish ikkita raqamli ma`lumot turini bo`ladi,foiz ikkita raqamli ma`lumot turini 
bo`lib qoldiqni hisoblaydi.INT turida bo`lish amalini bajarilganda natija albatta butun turda 
chiqadi.O`nli kasr ko`rinishida qiymat olish uchun haqiqiy turdan foydalanish tafsiya etiladi . % 
operatori qoldiqni hisoblash operatori sifatida tanilgan va faqat butun turlar uchun ishlaydi. Unda 
sonning butun qismidan keying (ya‘ni verguldan keyingi) qoldiq qismi olinadi.
12. 
Darajaga ko‗tarish amallari(pow(a,b)).Arifmetik ifodalarda amallarning bajarilish 
tartibi(operator precedence rule (+,-,*,/,% amallari misolida)). 
ni hisoblash uchun pow (a, b) funksiyasidan foydalaniladi. Pow ni cmath (yoki math.h) 
kutubxonasi darajaga ko‗tarish funksiyasi sifatida aniqlaydi.
ko‗rinishidagi darajaga ko‗tarish 
funksiyasi orqali 
ifodani pow (2.0, 3) deb yoziladi. Bu yerda a va b lar pow funksiyasining 
parametrlari, 2.0 va 3 lar esa, pow funksiyasini qo‗llash uchun qiymatlar. Qavs ichidagi sonlar 
oralig‗idagi operator birinchi hisoblanadi. Qavslar ichma-ich bo‗lishi mumkin. Bunda eng ichki 
qavlardagi operatorlar birinchi bajariladi. Agar ifodada bir neha xil operatorlar bo‗lsa, ular 
quyidagicha qoidalarga asosan bajariladi.Qavslardan keyin ko‗paytirish, bo‗lish va qoldiqni 
hisoblash operatorlari ishlaydi. Agar ifodada bir nechta ko‗paytirish, bo‗lish va qoldiqni 
hisoblash operatorlari mavjud bo‗lsa, u holda ular chapdan – o‗ngga qoidasi bo‗yicha 
bajariladi.Qo‗shish va ayirish operatorlari oxirida bajariladi. Agar ifodada bir nechta qo‗shish va 
ayirish operatorlari bo‗lsa, ular ham chapdan – o‗ngga qoidasi bo‗yicha bajariladi. 
13. 
Inkrement va decrement operatorlari(++, --, postincrement, preincrement).Sonli ma‘lumot 
turlarini o‗girish(raqamli turni o‗girish, static_cast operatori). 
Inkrement (++) va dekrement (– –) operatorlari o‗zgaruvchini birlikka oshirish yoki 
kamaytirish uchun ishlatiladi. i++ operatori ―i plyus plyus‖ deb, i—-operatori esa ―i minus 
minus‖ - deb o‗qiladi. Bu operatorlar postfiks inkrement (postinkrement) va postfiks dekrement 
(postdekrement) nomlari bilan tanilgan. Chunki bunda operatorlar o‗zgaruvchidan keyin keladi. 


++ii ni bittaga oshiradi, --jj ni bittaga kamaytiradi. Bu operatorlar prefiks inkrement 
(preinkrement) va prefiks dekrement (predekrement) deb nomlanadi.Ko‗rib turganimizdek, i++ 
va ++i yoki i-- va --i operatorlari bir xil vazifalarni bajarisadi. Ammo biz ulardan hisoblash 
jarayonidan foydalanganimizda ularning effektlar turlicha bo‗ladi. 
Haqiqiy turli sonlar butun turga ochiq taqsimlash orqali o‗tkaziladi. C++ bir turdagi sonli 
qiymatni taqsimlash operatori (casting operator)dan foydalangan holda boshqa turdagi sonli 
qiymatga 
o`ztkazishga 
ruxsat 
beradi.Uning 
qo`llanilish 
qoidasi 
quyidagicha:
static_cast(qiymat) 
Bu yerda qiymat o`zgaruvchi, tur biz o`tkazmoqchi bo`lgan sonli tur. 
Kichik hajmdagi turni kattaroq hajmdagisiga o`tkazish turni kengaytirish deb ataladi. Kattaroq 
hajmdagi turni kichik hajmdagisiga o`tkazish turni toraytirish deb ataladi. Turni toraytirish 
(masalan double dan int ga o`tkazish) aniqlikni kamaytirishi mumkin. Axborot qismining 
zararlanishi esa sifatsiz natija beradi. static_castdan foydalanib turni toraytirganingizda 
kompilyator sizni ogohlantiradi.
14. 
Dasturni 
ishlab 
chiqishda 
talablarni 
aniqlash, 
tizimli 
tahlil 
va 
loyihalash 
bosqichlari(requirements specification, system analysis, system design). 
Dasturiy ta‘minotni ishlab chiqish jarayonining hayot sikli qo`yilgan talablar, tahlil qilish, 
loyihalash, amalda qo`llash, testlash, tayyorlash va tuzatishni qamranoluvchi ko`p bosqichli 
jarayon. . Dasturdagi xatoliklarni tuzatish yoki uning vazifalariga o`zgartirishlar kiritish uchun 
dasturiy ta‘minotni ishlab chiqish jarayoni hayot siklining ixtiyoriy bosqichida orqaga – bitta 
avvalgi bosqichga qaytish imkoniyati mavjud. 
Qo`yilgan talab bosqichi – dasturning aynan qanday vazifalarni bajarishi lozimligini 
ko`rsatuvchi hujjatlar asosida o`rganishga harakat qilinuvchi rasmiy jarayon. Tizimli tahlil 
ma‘lumotlar oqimini tahlil qilishga va tizimning chiqish va kirish ma‘lumotlarini aniqlash uchun 
qo`llaniladi. Amalda qo`llash deganda, tizim dizaynini dasturga o`girish tushuniladi. Har xil 
dasturlar ma‘lum bir ichki komponenta uchun tuziladi va ular birgalikda ishlashlari uchun 
birlashtiriladi. 
Testlash koddagi talab etilgan qoidalarni ko`rib chiqadi va chiqishdagi xatoliklarni 
yo`qotadi. Tayyorlash jarayoni dasturni foydalanishga tayyorgarligini ishlab chiqadi. Dasturni 
turini tayyorlash foydalanuvchi mashinasi yoki internetdagi server tizimga bog`liq bo`ladi. 
Tayyorlash jarayoni dasturni foydalanishga tayyorgarligini ishlab chiqadi. Dasturni turini 
tayyorlash foydalanuvchi mashinasi yoki internetdagi server tizimga bog`liq bo`ladi.
Tuzatish jarayoni dastur va uning bazasini yangilash va unga o`zgartirishlar kiritish bilan 
bog`liq. Dasturiy mahsulot doimiy ravishda shakllanib va o`sib borishi zarur. Bunday davriy 
yangilanish talablari dasturni yangicha muammolar va yangicha imkoniyatlarga yetaklaydi. 
15. 
Dasturni ishlab chiqish jarayonida kod yozish va tekshirish bosqichlari(implementation, 
testing). 
17.
boolma‘lumot turi (bool data type, mantiqiy o‗zgaruvchi, sonlarning mantiqiy turga 
konvertatsiyasi); 
bool ma‘lumot turi o`zgaruvchini true (rost) yoki false (yolg`on) qiymatlari bilan e‘lon 
qiladi. true va false – mantiqiy qiymatlar bo`lib, xuddi 1 va 0 ga o`shaydi. Ular dasturlash tilida 
kalit so`zlardir va ulardan ismlar sifatida foydalanib bo`lmaydi. 
Ichki fonda C++ true qiymati o`rniga 1 ni va false qiymati o`rniga 0 ni ishlatadi. Agar 
konsol oynada mantiqiy qiymat kiritsak, agar u rost (true) bo`lsa dastur ekranga 1 ni chiqaradi, 
agar yolg`on (false) bo`lsa, 0 ni chiqaradi. Dasturda bool o`zgaruvchiga sonli qoymatlarni ham 
berish mumkin. Bunda 0 dan boshqa ixiyoriy son true qiymat, 0 ning o`zi false qiymat qabul 
qiladi.
16. 
if– shart operatori (ifoperatori, blok-sxemasi); 
if – shart operatori dasturga hisoblash uchun maxsus alternative tanlov qismni belgilovchi 
tuzilma. Dastur tuzish davomida ko`p hollarda masalani yechimini topish bir nechta holatlar 
uchun bajarilishiga duch kelamiz. C++ da tanlash operatorlarining bir necha xili mavjud: bir 


yo`nalishli if operatori, ikki yo`nalishli if-else operatori, ichma-ich if operatorlar, switch 
operatori va shartli ifodalar. Bir yo`nalishli if operatori shart faqat bitta (true) bo`lgan holatlarda 
ishlaydi. 
if (mantiqiy ifoda)

ko`rsatma satri (s); 
Agar mantiqiy ifoda true qiymat qabul qilsa, blok ichidagi ko`rsatmalar bajariladi. 
Mantiqiy ifoda qavslar ichida yozilishi kerak. Shart operatorining bajarilishida uning tanasini 
belgilash uchun figurali qavslar ({ va })dan foydalanish mumkin. Agar dasturda faqat bir 
yoqlama shart operatori bo`lsa va undan keyin ushbu shartga tegishli bo`lgan boshqa bajariluvchi 
ifodalar bo`lmasa bu qavslardan foydalanish shart emas 
17. 
Ikki tarmoqli if-else operatori (ikki tarmoqliif-else operatori, blok-sxemasi).
Ikki tarmoqli if-else operatori berilgan mantiqiy ifodaning true yoki false qiymat qabul qilganda 
operatsiya bajarishga mo`ljallangan.
Bir tarmoqli if operatori agar mantiqiy ifoda rost qiymat qabul qilsa, dastur bosqichini 
operatsiya bajarishga yo`naltiradi. Mantiqiy ifoda yolg`on qiymat qabul qilganda esa hech 
qanday operatsiya bajarilmaydi. Ammo qo`yilgan shartning bajarilmagan holatida ham biror 
operatsiya amalga oshirilishi lozim bo`ladigan masalalar ham bor. Bunda ikki tarmoqli if - else 
operatoridan foydalanishimiz mumkin. Bu operator mantiqiy turning true yoki false qiymati 
uchun dastur oqimini bir-biridan farq qiluvchi ikki xil vazifaning bajarilishiga yo`naltiradi. 
Quyida ikki tarmoqli if - else operatorining yozilish qoidasi keltirilgan: 
if(mantiqiy ifoda)

mantiqiy ifoda rost qiymat olgandagi operatsiya; 

else 

mantiqiy ifoda yolg`on qiymat olgandagi operatsiya; 

if - else operatori mantiqiy turning true yoki false qiymati uchun dastur oqimini bir-biridan farq 
qiluvchi ikki xil vazifaning bajarilishiga yo`naltiradi 
18. 
Ichma-ich joylashgan if va ko‗p tarmoqli if-else operatorlari (nested if statement, multi way 
if statement); 
Ichma-ich joylashgan if operatorini shakllantirish uchun if operatorini boshqa bir if operatori 
ichiga joylashtirish mumkin. if yoki if-else operatorlari tarkibida boshqa if yoki if-else 
operatorlarini ishlatgan holda istalgancha C++ tiliga muvofiq ko`rsatma satrlarini yozish 
mumkin. Ichkarida yozilgan if operatorini tashqi if uchun ichki deb atash mumkin. Ichki if da 
yana boshqa ichki if operatori bo`lishi mumkin. Shu narsa aniqki, bu yerda ichki if 
operatorlarning soni chegaralanmagan.Ko`p tarmoqli if-else operatoridan foydalangan holda 
ko`p sonli tanlovlar (alternativlar) uchun maqbul format keltirilgan. 
19. 
Mantiqiy operatorlar (Logical operators – !, &&, and ||); 
Mantiqiy operatorlar (
!
,
&&
va 
| |
)dan qo`shma mantiqiy ifodalar hosil qilishda foydalanish 
mumkin. Ba‘zida dasturlash davomida hisoblashlarni amalga oshirish uchun bir nechta shartlar 
kombinatsiyasini qo`llashga to`g`ri keladi. Ushbu kombinatsiyalarni qo`llash uchun mantiqiy 
operatorlardan foydalanish mumkin. Mantiqiy operatorlar shuningdek, Booleanoperatorlar deb 
ham tanilgan. U Boolean qiyatlar ustida operatsiya bajarib, yangi Boolean qiymat hosil qiladi. 
Yo`q (!) operatori true ni false ga, false ni esa true ga o`zgartirib ta‘minlaydi, va (&&) operatori 


tavsiflangan. Bunda har ikkala mantiqiy operandlar bir vaqtda true qiymatga ega bo`lsagina true 
qiymat qabul qiladi,yoki (
||
) operatori tasvirlangan. Bu operator ikki operandning ixtiyoriy bittasi 
true qiymatga ega bo`lsa true qiymat qabul qiladi.
20. 
Switchoperatori (switch statement); 
Switch operatori o`zgaruvchi yoki ifoda qiymatiga asoslangan ko`rsatmani bajarish uchun 
ishlatiladi. if operatori o`qishda qiyinchilik tug`diradi. C++ ko`p sonli tanlashlarni oddiy usul 
bilan hal qiluvchi switch operatorini taqdim etadi. Switch operatori barcha holatlarni tekshiradi 
va ma‘qul holatdagi ko`rsatmani bajaradi. Bu operator status (holat)ning shunday tartibda 0, 1, 2 
yoki 3 qiymatlariga mos kelish-kelmasligini tekshiradi. Agar moslik mavjud bo`lsa, unga tegishli 
ko`rsatma hisoblanadi, agar aksi bo`lsa, shu haqda xabar chiqariladi. Quyida switch ning yozilish 
qoidasi to`liq ko`rsatilgan: 
switch(switch-ifoda)

caseqiymat1: ko`rsatma satri 1; 
break; 
caseqiymat2: ko`rsatma satri 2; 
break; 
...
caseqiymatN: ko`rsatma satri N; 
break; 
default: dastlabki holat uchun ko`rsatma satri 
switch operatorida quyidagi qoidalar kuzatiladi: 
 switchifodasiintegral qiymat berishi kerak va har doim qavslar orasiga olinadi; 
 qiymat1, qiymat1, … qiymatN lar integral o`zgarmas ifodalar bo`lib, 
o`zgaruvchilardan iborat bo`lishi ko`zda tutilmaydi (xuddi 1+x kabi). Bu qiymatlar 
butun turdagi sonlar va ular suzuvchi-nuqtali sonlar bo`la olmaydi. 
 case (moslik qatori) operatoridagi qiymat switch-ifoda qiymatiga mos kelganda, 
o`sha case ga tegishli ko`rsatmalar bajarilishni boshlaydi va bu jarayon break 
(to`xtatish) operatori bajarilganda yoki switch operatorining so`nggi qismi bo`lgan 
holatda to`xtaydi; 
 default case – shunday xususiyatga egaki, yuqoridagi case lardan birortasining 
qiymati switch-ifoda qiymatiga mos kelmaganda bajariluvchi amalni belgilaydi; 
 break operatorini qo`llash majburiy emas. U switch operatorining ishini darhol 
to`xtatish uchun ishlatiladi. 
Zaruriy hollarda break operatoridan foydalanishni unutmang! Bitta case qiymati mos kelsa, unga 
tegishli ko`rsatma bajarilishi boshlanadi va u break operatoriga qadar bajariladi yoki switch 
operatorining so`nggi qismiga qadar bajarilishda davom etib ketadi. 
21. 
Shartli operatorlarda ko‗p uchraydigan xatoliklar; 
if operatorida figurali qavslarni unutib qoldirish, nuqtali vergulni xato qo`yish, == o`rniga 
= ni qo`yish, else blokini umumiy blokdan chiqarib qo`yish – tanlov ko`rsatmalaridagi 
xatoliklardir. Ikki tarmoqli if-else va o`zgaruvchilarni double turida e‘lon qilish – xatolikning 
oldini olishdir. Bir tarmoqli tanlov operatori tarkibida figurali qavslarni qoldirib yozish xato 
hisoblanmaydi. Bordiyu, agar figurali qavslar ko`p tarmoqli shart operatorlarida unutib 
qoldirilsa, dasturlashdagi asosiy xatolikka olib keladi. Agar if operatori tarkibiga yangi 
ko`rsatma satrini joylashtirmoqchi bo`lsak, shartlarni guruhlashtirishdagi xatolik yuzaga keladi. 


Dastur kodida if operatori ishlatilganda aynan u yozilgan satr so`ngida ―;‖ - belgisi qo`yilmasligi 
lozim. Bunda dastur bajarilishi shartning qabul qilgan qiymatiga ko`ra shart tanasining tegishli 
qismiga o`tishi lozim. Nuqtali vergulning qo`yilishi shart operatori ishini shu joyda to`xtatib 
qo`yadi. Dasturlashda if operatori tarkibida tenglik shartini tekshirish uchun ikkita tenglik 
belgilarini ketma-ket yozish kerak. Aks holda, ya‘ni bitta tenglik belgisi ishlatilsa mantiqiy 
xatolikka yo`l qo`yilgan bo`ladi. Bilamizki bitta tenglik ―=‖ belgisi C++da ta‘minlash 
(o`zgaruvchiga qiymatni ta‘minlash) operatori sifatida qo`llaniladi. Shart operatorida tenglik 
shartini tekshirish uchun bitta tenglik belgisidan foydalanilsa, shart tekshirilayotgan 
o`zgaruvchiga qiymat ta‘minlanib qoladi va bu mantiqiy xatolik hisoblanadi. 
22. 
Tasodifiy sonlarni hosil qilish (rand () funksiyasi, srand (seed) funksiyasi). 
Tasodifiy sonni hosil qilish kutubxonasidagi rand () funksiyasini qo`llagan holda 
amalga oshiriladi. Bu funksiya 0 va RAND_MAX oralig`idan olingan biror tasodifiy sonni 
qaytaradi. RAND_MAX belgilab olingan o`zgarmas platformasi. Uning qiymati C++ da 32767 
ga teng.
rand () sonlari oldindan aniqlangan tasodifiy sonlardir. Ya‘ni, unda har doim bir xil tizim 
ishlaydi, rand () bir xil ketma-ketlikdagi sonlarni har gal chiqaraveradi. Shaxsiy kompyuterda, 
masalan, ushbu ko`rsatma satri har doim 130, 10982, va1090 sonlarini hosil qiladi. random () 
funksiyasi algoritmi tasodifiy sonlarni hosil qilishda saralangan deb nomlanuvchi qiymatlardan 
foydalanadi.Odatga ko`ra saralangan qiymat 1 ga teng. Agar saralangan qiymatni turli sonlar 
uchun aniqlasak, turli tasodifiy sonlar chiqadi. Saralangan sonni tanlash uchun  
kutubxonasidan srand(seed) funksiyasidan foydalaniladi. Shuning uchun har safar har xil 
saralangan qiymatlarni olish uchun time (0) funksiyasidan foydalanib, dasturni turli vaqtlar 
oraliqlarida ishga tushirish mumkin. 
23. 
Amallarning bajarilish tartibi va assotsiativligi (operator precedence, operator associativity 
(+,-,*,/,%,||,&,!,<,> amallari misolida)). 
Dasturlash tillarida amallar huddi hayotdagidek ketma-ketlikda bo‘ladi. Dastur kodni o‘qishda 
tepadan pastga qarab o‘qiydi, chapdan o‘ngga qarab o‘qiydi va shunday amallarni ham birinchi 
tepadagisini va chapdan eng birinchisidan boshlab bajarishni boshlaydi. Matematik amallar 
Matematika qonunlariga binoan bajariladi, ya‘ni birinchi qavs ichi, ko‘paytirish, bo‘lish, 
qo‘shish va ayirish. 
24. 
Matematik funksiyalar (Trigonometrikfunksiyalar, Exponent funksiyalar); 
Funksiya – muayyan masalani yechuvchi ko`rsatmalar majmuidir. Ularni trigonometric 
funksiyalar, eksponent funksiyalar va xizmatchi funksiyalar turlariga tasniflash mumkin. 
C++ trigonometrik funksiyalarni hisoblash uchun cmath kutubxonasi tarkibidagi quyidagi 
funksiyalarni taqdim etadi: 
Cmath kutubxonasidagi trigonometrik funksiyalar 
Funksiya 
Qo`llanilishi 
sin(radians) 
Burchakning trigonometrik sinusining radianlardagi qiymatini qaytaradi 
cos(radians) 
Burchakning trigonometrik kosinusining radianlardagi qiymatini 
qaytaradi 
tan(radians) 
Burchakning 
trigonometrik 
tangensning 
radianlardagi 
qiymatini 
qaytaradi 
asin(a) 
Radianlardagi burchakni sinusga teskari quymatda qaytaradi 
acos(a) 
Radianlardagi burchakni kosinusga teskari quymatda qaytaradi 
atan(a) 
Radianlardagi burchakni tangensga teskari quymatda qaytaradi 
Quyidagi beshta funksiya cmath kutubxonasidagi exponentlash funksiyalari hisoblanadi: 
cmath kutubxonasidagi exponentlash funksiyalari. 


Funksiya 
Qo`llanilishi 
exp(x) 
e ni x qiymatdagi darajaga ko`taradi (

log(x) 
x ning natural logarifmini hisoblaydi (
( )
( )) 
log10(x) 
x ning o`nli logarifmini hisoblaydi (
( )) 
pow(a,b) 
A ni b darajaga ko`taradi (

sqrt(x) 
x>=0 bo`lgan holat uchun x ning kvadrat ildizini aniqlaydi 
25. 
Matematik funksiyalar (Yaxlitlash funksiyalari, min, max va abs funksiyalari); 
min va max funksiyalari ikki son (int, double, long, yoki float)ning minimumini yoki 
maxsimumini qaytaradi. abs funksiyasi esa sonning modul qiymatini qaytaradi. 
Ceil bu sonni bitta kata butun songa yaxlitlaydi.Floor esa sonni bitta kichik songa 
yaxlitlaydi. 
26. 
Belgili ma‘lumot turi, belgilar jadvali, belgini klaviaturadan o‗qish va maxsus birikmalar 
(char turi, ASCII, belgini o‗qitish, maxsus birikmalar); 
C++ da sonli qiymatlarni qo`shishda belgilarni ham ishlatish mumkin.Belgili ma‘lumot turi 
(char) o`zida faqat bitta belgini saqlaydi. Belgili literallar bittalik qo`shtirnoqlar (‗ ‘) orasiga 
olib yoziladi. 
Ko`pchilik kompyuterlarda kata va kichik harflar, raqamlar, tinish va boshqaruvchi 
belgilarni ifodalash uchun 8 bitli ASCII (American Standard Code for Information 
Interchange – Axborot almashish uchun amerikacha standart kod)shifrlash sxemasidan 
foydalaniladi. 
Kompyuter tomonidan belgini klaviaturadan o`qilishi quyidagi dastur kodida berilgani kabi 
amalga oshiriladi: 
cout<< "Belgini kiriting: ";
char ch; 
cin>> ch; // belgini o`qish 
cout<< "O`qilgan belgi: " << ch << endl; 
Maxsus belgilarni anglatuvchi maxsus birikmalar 
27. 
Belgilar ustida sonli va munosabat amallari (belgilar ustida sonli hisoblash amallari, 
belgilarni taqqoslash va tekshirish); 
Belgilar ustida sonli amallar – Bunaqa amallarga belgilarni bir-biriga qo‘shish ASCII 
kodidagi raqamiga qarab ish yuritish kabilar kiradi. Bir necha belgilar ketma-ketligi satr 
deb ataladi. Satrlar ustida ham sonli amallar bajarilishi mumkin.Satrlarni bir biriga qo‘shish 
mumkin.Belgilar ustida Munosabat amallari – Bunaqa amallarga belgilarni taqqoslash 
(Masalan: Ajadvaldagi tartib raqamiga qarab katta kichikligi aniqlanadi(masalan: A28. 
Satrli ma‘lumot turi, satr funksiyalari (string turi uchun qo‗llaniluvchi nusxa funksiyalar, 
at(index), length(), size()); 
Satrli ma‘lumot turi – Bu string turidir bunda bir necha belgilar ketma – ketligi orqali satr 
hosil bo‘ladi.string Satr = ―
So‘zlar
―;string ma‘lumot turidan foydalanish uchun  
kutubxonasini chaqirish kerak; 
string turi uchun asosiy funksiyalar: 
Funksiya 
Qo`llanilishi 
length() 
Satrdagi belgilar sonini qaytaradi 


size() 
length() bilan bir xil vazifa bajaradi 
at(index) 
Ushbu satrda joylashgan maxsus indeksdagi belgini qaytaradi 
29. 
Satrdan belgini ajratib olish. Satrlarni qo‗shish (subscript operator, string concatenation); 
C++ ikki satrni birlashtirish uchun + operatorini taqdim etadi. Quyida keltirilgan misolda s1 
va s2 satrlarini birlashtirib, s3 satriga ta‘minlanishini ko`rish mumkin: string s3 = s1 + 
s2; 
O`rnatilgan qoidali ta‘minlash operatorini ham satrlarni birlashtirishda qo`llash mumkin. 
Masalan, quyidagi kod xabar nomli, ―C++ ga xush kelibsiz!‖ qiymatga ega bo`lgan satrga ― va 
dasturlash – qiziqarli‖ satrini qo`shib ta‘minlaydi: 
xabar += ― va dasturlash – qiziqarli‖; 
Bunda xabar ning yangi qiymati ―C++ ga xush kelibsiz va dasturlash – qiziqarli‖ ga teng bo`ladi. 
Shuningdek, satrga belgini ham qo`shib ta‘minlashimiz mumkin: 
string s = "ABC"; 
s += 'D'; 
Yangi s ning qiymati – ―ABCD‖. 
Eslatma. Yangi satrga ikkita satrli ma‘lumotni qo`shib ta‘minlash xato hisoblanadi. 
Masalan quyidagi kabi: 
string shaharlar = "London" + "Parij"; 
Quyida berilgan kod esa to`g`ri, chunki bunda avvaldan qiymatga ega s satriga ―London‖ satri 
va keyin ―Parij‖ satri qo`shilyapti. 
string s = "Nyu York"; 
string shaharlar = s + "London" + "Parij"; 
32.
Satrlarni taqqoslash. Satrni klaviaturadan o‗qish (comparing strings, read a string);Satrlarni 
taqqoslashda satrdagi belgilar ketma – ketlikda taqqoslanadi. Misol uchun : 
string s1 = "ABC"; 
string s2 = "ABE";
s1 > s2 holatni ko`rib chiqamiz. Dastlab s1 va s2 lardan birinchibelgilar (A bilan A)ning tengligi 
tekshiriladi. Tenglik o`rinli. Keyin ikkinchi belgilar (B bilan B) ning tengligi tekshiriladi. 
Tenglik o`rinli. Keyingi qadamda ikkinchi belgilar (C bilan E) ning tengligi tekshiriladi. Tenglik 
0 qiymat qaytaradi. Chunki, C belgisi E belgisidan kichik. 
Satr ma‘lumotni klaviatura orqali, cin ob‘yektini qo`llagan holda o`qishi mumkin. Misol 
sifatida quyidagi kodni ko`rishimiz mumkin: 
1 string shahar;
2 cout << "Shaharni kiriting: ";
3 cin >> shahar; // shahar satrini o`qish 
4 cout << "Sizning kiritgan satringiz: " << shahar << endl; 
Uchinchi satrda shahar ga satrli ma‘lumot klaviatura orqali o`qiladi. Satrni o`qish uchun 
bunday yo`l tutish oson. Lekin bu yerda bir muammo bor. Kiritish bo`sh joyli belgi bilan 
tugaydi. Agar biz Nyu York satrini kiritmoqchi bo`lsak, boshqa bir alternative yo`lni tanlashimiz 
kerak. C++ string kutubxona faylida getline funksiyasini taqdim qiladi. Uning yozilish sintaksisi 
quyidagicha: 
getline(cin, s, belginingDelimitlanishi) 
Bunda funksiya belgining delimitlanishiga kelganda o`qishni to`xtatadi. Belgini delimitlovchi 
o`qiladi, ammo satrga yozilmaydi. Uchinchi argument, belginiDelimitlovchi‗\n‘asl holatqiymati 
(default value)ga ega.
Quyidagi kodda satrni o`qish uchun ge 


30. 
Satrli ma‘lumotni konsol oynaga chiqarilishini formatlash (format console output); 
Oqim manipulyatorlaridan foydalanib, ekranda chiqarilishni formatlash mumkin. 
Biz ko`p hollarda ko`ramizki, sonlar konsol oynada aniq qiymatda chiqariladi. Masalan, 
quyidagi dastur kodi omonatdan tushgan daromadni hisoblaydi: 
double daromad = 12618.98;
double omonatUlushi = 0.0013;
double omonatFoyda = daromad * omonatUlushi;
cout << " omonatFoyda = " << omonatFoyda << endl; 
omonatFoyda = 16.4047 
Bu qiymatni yaxlitlab chiqarish mumkin. Buning uchun quyidagicha yo`l tutish lozim: 
double daromad = 12618.98;
double omonatUlushi = 0.0013;
double omonatFoyda = daromad * omonatUlushi;
cout <<" omonatFoyda = " << static_cast( omonatFoyda * 100) / 100.0 << endl; 
omonatFoyda = 16.4 
Aslida bu noto`g`ri, chunki unda qo`zg`aluvchi nuqtadan keyin ikkita raqam bo`lishi 
kerak (M.: 16.40). Buni formatlash funksiyalari yordamida quyidagi kabi to`grilash 
mumkin: 
double daromad = 12618.98;
double omonatUlushi = 0.0013;
double omonatFoyda = daromad * omonatUlushi;
cout <<" omonatFoyda = " << fixed << setprecision(2) << omonatFoyda << endl; 
omonatFoyda = 16.40 
Biz konsol oynaga ma‘lumotlarni cout ob‘yektidan foydalanib chiqarishni juda yaxshi 
bilamiz. C++ da oynaga chiqarishni formatlovchi funksiyalar ishlab chiqilgan. Bu 
funksiyalar oqim manipulyatorlari deb ataladi va iomanip kutubxonasini chaqirish orqali 
qo`llaniladi. 
31. 
Fayldan kiritish (stream manipulator,reading from a file); 
Dasturlashda ma‘lumotni faylga saqlash va keyin ma‘lumotni fayldan o`qish mumkin.Shu 
vaqtgacha biz ma‘lumotlarni kiritish uchun ci nob oyektidan, konsol oynaga chiqarish uchun esa 
cout ob‘yektidan foydalanib kelganmiz. Bundan tashqari, ma‘lumotni fayldan o`qish va uni 
faylga yozish imkoniyati ham bor. Faylga yozish ma‘lumotni faylga yozish uchun birinchi 
navbatda ofstream turida o`zgaruvchini e‘lon qilib olish kerak: 
ofstream chiqarish; 
chiqarish ob‘yektidan maxsus open funksiyasini quyidagicha tartibda chaqirib olamiz: 
chiqarish.open("sonlar.txt"); 
Bu ko`rsatma satri sonlar.txt deb nomlangan fayl yaratadi. Agar bunday fayl tarkibda avvalroq 
yaratilgan bo`lsa, uni qayta quradi va yangisi bilan almashtiradi. open funksiyasining chaqirilishi 
faylni oqim bilan bog`laydi. 
Optimal holatda, bir vaqtning o`zida chiqarish ob‘yektining faylini yaratish va o`sha faylni 
ochish quyidagi ko`rsatma satri orqali amalga oshiriladi: 
ofstream chiqarish("sonlar.txt"); 
Faylga ma‘lumot yozish uchun xuddi cout ob‘yekti kabi ―<<‖ – oqim operatoridan foydalaniladi: 
Fayl bilan bog`liq operatsiyalar bajarib bo`lingandan so`ng chiqarish ob‘yektidan close 
funksiyasi chaqirib olinadi.
chiqarish.close(); 


32. 
Faylga chiqarish (stream manipulator, writing to a file); 
Ma‘lumotni faylga yozish uchun birinchi navbatda ifstream turida o`zgaruvchini e‘lon qilib olish 
kerak: 
ifstream kiritish; 
kiritish ob‘yektidan maxsus open funksiyasini quyidagicha tartibda chaqirib olamiz: 
kiritish.open("sonlar.txt"); 
Bu ko`rsatma satri sonlar.txt deb nomlangan faylni ochadi. Agar bunday fayl tarkibda avval 
yaratilmagan bo`lsa xatolik berishi mumkin. 
Optimal holatda, bir vaqtning o`zida kiritish ob‘yektining faylini yaratish va o`sha faylni ochish 
quyidagi ko`rsatma satri orqali amalga oshiriladi: 
ofstream kiritish("sonlar.txt"); 
Fayldan ma‘lumotni o`qish uchun xuddi cin ob‘yekti kabi ―>>‖ – oqim operatoridan 
foydalaniladi: 
kiritish >> score1; 
kiritish >> score2; 
kiritish >> score3; 
yoki kiritish >> score1 >> score2 >> score3; 
Fayl bilan bog`liq operatsiyalar bajarib bo`lingandan so`ng kiritish ob‘yektidan close funksiyasi 
chaqirib olinadi. kiritish.close(); 
33. 
while sikl operatori (while sikli, sikl tanasi, iteratsiya, sikl sharti); 
while sikl operatori o`zining shart qismi rost qiymat qabul qilganda tana qismidagi
ko`rsatmalarni bajaradi. 
while sikl operatorining sintaksisi quyidagiicha: 
while (sikl davom etish sharti)

// sikl tanasi 
Ko`rsatmalar (s);

While siklining blok-sxemasi berilgan. ―Sikl tanasi‖ deb nomlanuvchi sikl bloki takrorlanuvchi 
ko`rsatma satrlaridan tashkil topgan. Sikl tanasining bir marta bajarilishi siklning iteratsiyasini 
(yoxud takrorlanishini) anglatadi. Har qanday sikl tana qismining bajarilishini nazorat qiluvchi 
siklning-davom-etish-sharti – mantiqiy ifodadan tashkil topadi.Bu mantiqiy ifoda har safar sikl 
tanasining hisoblanishi uchun ishga tushiriladi. Agar u true qiymat qabul qilsa, tana qismi 
bajariladi; Agar u false qiymat qabul qilsa, butun boshli sikl operatorining ishi to`xtatiladi va 
dastur o`sha vaqtdagisiklning tana qismini bajarlmaydi. 
While sikl operatori siklning-davom-etish-sharti true qiymat qabul qilganda sikl tanasida 
ko`rsatilgan ko`rsatma satrlarini takroran bajaradi.Siklning-davom-etish-sharti har doim qavslar 
orasiga olib yozilishi lozim. Siklning tana qismini ifodalovchi figurali qavslar esa, sikl tanasi 
faqat bitta ko`rsatma satridan iborat bo`lganda turshirib qoldirilishi mumkin. Siklning-davom-
etish-sharti u false qiymat qabul qilgunga qadar aniq bajariladi. Dasturlashda ko`p uchraydigan 
xatoliklardan biri – cheksiz sikllar(bunda sikl tugatilmasdan, sikl tanasidagi ko`rsatma satrlari 
bajarilaveradi).Agar dasturingiz odatdagidan ko`proq vaqt davomida bajarilish jarayoni (run 
time)da qolsa va to`xtamasa, unda cheksiz sikl yozilgan bo`lishi mumkin. Agar dastur komanda 
oynasida ishga tushirilgan bo`lsa, uni Ctrl+C– tugmalar kombinatsiyasi orqali to`xtatish 
mumkin. 
34. 
While siklini tashkil etish strategiyasi (step1, step2, step3); 


Dasturchilar uchun siklni to`g`ri yozish oson masala emas. Sikl yozishda uchta bosqich ko`rib 
chiqiladi: 
1-bosqich: Takrorlanishi lozim bo`lgan ko`rsatma satrlarini belgilab olish; 
2-bosqich: Ko`rsatma satrlarini quyidagi ko`rinishda sikl tanasiga biriktirish: 
while (true)

Ko`rsatma satrlari; 

3-bosqich: Sikl-davomiyligi-sharti ni kiritib, siklni nazorat qiluvchi qo`shimcha korsatma 
satrlarini kiritish: 
while (Sikl-davomiyligi-sharti)

Ko`rsatma satrlari; 
siklni nazorat qiluvchi qo`shimcha korsatma satrlari; 

35. 
Foydalanuvchi tasdig‗iga yoki nazoratchi o‗zgaruvchi qiymatiga ko‗ra while siklini tashkil 
etish (controlling a loop with user confirmation, controlling a loop with a sentinel value). 
Siklni boshqarishniing ko`p tarqalgan usullaridan yana biri – o`qish va qiymat ta‘minlash 
jarayonlarida maxsus qiymatni tayinlashdir. Bu maxsus kiritiluvchi qiymat ―Nazoratchi qiymat‖ 
nomini olgan bo`lib, kiritishlarning so`ngida belgilanadi. Nazoratchi qiymat qo`llanilgan sikl 
―Nazoratchi qiymat orqali boshqariluvchi sikl‖ deb yuritiladi. 
Quyida keltirilgan namunada, agar biz ko`p qiymatlar kiritishimiz kerak bo`lsa, bu qiymatlarni 
klaviaturadan kiritish anchayin malol keladi. Buning uchun oddiy matnli faylda qiymatlarni 
bo`shliqlar bilan ajratib kiritib olishimiz va dasturni quyidagicha kod orqali ishga tushirishimiz 
mumkin: 
NazoratchiQiymat.exe < kiritish.txt 
Bu ko`rsatma kiritishni qayta yo`naltirish deb yuritiladi. Dastur qiymatlarni klaviaturdan 
kiritishga qaraganda biroz qulayroq bo`lgan – qiymatlarni ―kiritish.txt‖ faylidan kiritish imkonini 
beradi. 
36. 
do-while sikl operatori (do-sikli, sikl tanasi, iteratsiya, sikl sharti). 
do-while – sikl operatori ham while – sikl operatoriga o`xshaydi, farqli tomoni, u birinchi sikl 
tanasini hisoblaydi, keyin shartni tekshiradi.do-while – sikl operatorining tuzilishi while – sikl 
operatorining tuzilishidan farq qiladi. Uning snintaksisi quyidagicha: 
do
{
// Sikl tanasi;
Ko`rsatmalar(s);
} while (siklni-davom-ettirish-sharti); 
do-while – sikl operatori birinchi sikl tanasini hisoblaydi, keyin hisoblashni davom ettirish yoki 
to`xtatish uchun shartli ifodani tekshiradi.do-while – sikl operatori birinchi sikl tanasini 
hisoblaydi. Keyin esa siklni-davom-ettirish-sharti tekshiriladi. Agar shartning qiymati true
bo`lsa, sikl tanasi yana hisoblanadi; aks holda, sikl ishi to`xtatiladi. 
37. 
Ichma-ich sikl operatorlari (nested loop). 
Sikl boshqa bir sikl tarkibida kelishi mumkin. 


Ichma-ich sikl operatorlari tashki sikl operatori va bir, yoki bir nechta ichki sikl operatorlaridan 
tashkil topadi. Har safar tashqi sikl bir marta bakarilganda, ichki sikl to`liq bajariladi va ularga 
yangidan start beriladi. 
38. 
break va continue kalit so‗zlari (keywords break and continue). 
break va continue – kalit so`zlari siklda qo`shimcha boshqaruv imkoniyatlarini taqdim 
etadi.Avvalroq break kalit so`zini switch operatorida qo`llashni ko`rganmiz. Bundan tashqari, 
break ni sikl tarkibida ham, siklni darhol to`xtatish uchun qo`llashimiz mumkin. Shuningdek, 
sikl tarkibida continue ni ham qo`llash mumkin. Bunda hisoblash bajarilgandan so`ng, sikl 
boshqaruvi, sikl tanasining tugash qismiga yuboriladi. Boshqacha qilib aytganda, break sikl 
ishini to`xtatsa, continue sikl davomiyligini to`xtatadi. 
39. 
Funksiyaning aniqlanishi (funksiyaning aniqlanishi, qiymat qaytaruvchi funksiya, void 
funksiya). 
Funksiya qiymat qaytarishi mumkin. Qaytariluvchi qiymat turi – bu o`sha 
qaytariluvchi qiymatning ma‘lumot turi. Ba‘zi hollarda funksiya tomonidan qiymat 
qaytarmasligi talab qilinadi. Bundan hollarda qaytariluvchi qiymat turi void – 
kalit so`zi orqali ifodalanadi. Misol uchun, qaytariluvchi qiymat turi srand 
funksiyasida void hisoblanadi. Bajarilishdan so`ng qiymat qaytaruvchi 
funksiyalar qiymat qaytaruvchi funksiyalar, qiymat qaytarmaydigan funksiyalar 
esa, void funksiyalar deb ataladi. Funksiya tarkibida e‘lon qilingan 
o`zgaruvchilarni formal parametrlar yoki oddiy qilib, parametrlar deb atash 
mumkin. Parametr o`rin egallovchiga o`xshaydi. Funksiya chaqirilganda 
parametrlarga qiymat kiritamiz. Bu qiymat faol parametr yoki argument sifatida 
kiritiladi. Funksiyaning parametrlar ro`yxati turni, tartibni va funksiyadagi 
parametrlar sonini ifodalaydi. Funksiya nomi va parametrlar ro`yxati birgalikda 

Download 1.12 Mb.
  1   2   3




Download 1.12 Mb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



“Dasturlash I” fanidan yakuniy nazorat savollari

Download 1.12 Mb.
Pdf ko'rish