“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
|