logo

C++ dasturlash tilida standart matemtik funksiyalarning birinchi tartibli hosilasini aniqlovchi dastur yaratish

Yuklangan vaqt:

12.08.2023

Ko'chirishlar soni:

0

Hajmi:

473.7734375 KB
MAVZU: C++ dasturlash tilida standart matemtik
funksiyalarning birinchi tartibli hosilasini aniqlovchi dastur
yaratish.
Reja:
Kirish.
I . C++ dasturlash tilida standart matemtik funksiyalar
1.1. C++ dasturlash tili.
1.2. C++ dasturlash tilida standart matemtik tushunchalar.
1.3. C++ dasturlash tilida standart matemtik funksiyalar.
II. C++ dasturlash tilida standart matemtik funksiyalarning birinchi tartibli 
hosilasini aniqlovchi dastur yaratish.
2.1. C++ dasturlash tilida funksiyalarning birinchi tartibli hosilasi.
2.2. C++ dasturlash tilida aniqlovchi dastur.
2.3. C++ dasturlash tilida standart matemtik funksiyalarning birinchi tartibli 
hosilasini aniqlovchi dastur yaratish.
Xulosa.
Foydalanilgan adabiyotlar. Kurs ishi maqsadi: C++ dasturlash tilida standart matemtik 
funksiyalarning birinchi tartibli hosilasini aniqlovchi dastur yaratish.
Kurs ishi vazifalari:
 C++ dasturlash tilida standart matemtik tushunchalar.
 C++ dasturlash tilida standart matemtik funksiyalar.
 C++ dasturlash tilida standart matemtik funksiyalarning 
birinchi tartibli hosilasini aniqlovchi dastur yaratish.
Kirish.
      O'zbekistonda   IT   sohasining   taraqqiyoti   va   hozirgi   kunda   unga   bo'lgan
talab
Agar   siz   e'tibor     berayotgan   bo'lsangiz   so'nggi   paytlarda   yurtimizda   dasturchilik
sohasiga   doir   ko'plab   ko'zga   ko'ringan   ajoyib   yangiliklar   ,   loyihalar   va   tanlovlar
ishlab chiqilmoqda . Dasturchilik bu"kelajak"  kasbi  ekanligini     deyarli  barchamiz
bilib oldik    . Biz axir axborot texnologiyalari asrida yashab kelmoqdamiz .  
IT   sohasida   katta   o'zgarishlar   bo'lmoqda   ,   asosiy   maqsad   esa   yangi   malakali
mutaxassislarni   yetishtirib   chiqarishdir(kelajakda   aynan   shunday   mutaxasislardan
biri siz bo'lishingiz mumkin . )
Dasturchilik sohasining taraqqiyoti uchun ko'plab ko'zga ko'rinadigan ajoyib
ishlar davom etmoqda :     Yurtimizning   ko'pgina   viloyatlarida   IT   park   tashkil   e'tilib
kelinmoqda   .Ma'lumki   ,ko'pchilik   IT   park   haqidagi   tushunchaga   ega   emaslar.
Chunki axborot texnologiyalari sohasidagi  bu kabi ibora biz kabi barcha yoshlar ,
jumladan   tengdoshlarim   uchun   ham   ajoyib   yangilik   bo'ldi   .   Men   o'ylaymanki,
bundan   keyin   IT   park   yurtimizning   hamma   joylarida   tashkil   etiladi   va   uning
mohiyati   yanada   takomillashib   borgani   sari   IT   sohasiga   qiziquvchilar   uchun  keng ma'lumotlar   eshigini   ochadi   !!!   Shuningdek   ,   IT   park   -   dasturlashga   qiziquvchilar
va bu soha vakillariga juda ham katta imkoniyat bera oladi deb ayta olaman    .  
Nega aynan IT park , uni bizga qanday foydali jihati bor ?
IT   park   -   axborot   texnologiyalariga   doir   loyihalarni   o'z   ichiga   olgan   innovatsion
maskan .   
IT   sohasini   butun   dunyo   mamlakatlari   sharoiti   talab   etmoqda   .   Ayni
paytda   IT   sohasisiz   mamlakatning   taraqqiyotini   belgilab   bo'lmaydi   ,   albatta   !!!
Men   aniq   ayta   olamanki     ,     IT   park ga   o'xshash   loyihalar   yurtimizni   rivojlangan
davlatlar qatorida ko'rish imkoniyatini beradi .   
IT   park ning   yana   bir   foydali   jihati   shuki,kelajakda   o'z   sohasining   yetuk
mutaxassislarini   yetishtirish   bilan   birgalikda   ,   bilim,ko'nikma,malaka   ,   kuchli
tafakkurga ega barcha qiziquvchilarni kashf eta oladi .   
Aytgancha   ,o'yinlarga   qiziquvchilar   uchun   maxsus   mashg'ulot   :   ular   IT   parkda
kibersport bo'yicha o'zlariga kerakli maslahatlarni olishlari mumkin .  
IT   parkda hali ko'plab tanlovlar o'tkazilishi ham ko'zda tutilgan .
IT park yoshlarga cheksiz imkoniyatlar eshigini ochib bera oladi !       
IT sohasining taraqqiyoti borasida olib borilayotgan ishlar qatorida Uzbek Coders
loyihasini o'rni beqiyosdir !!!
  Uzbek Coders loyihasi ham kelajakda   IT   sohasidagi malakali kadrlarni yetishtirib
chiqarishda   katta   ko'mak   bera   oladi   deb   ayta   olaman   .   Chunki   bu   loyiha   tufayli
men   va   tengdoshlarim   ,qolaversa   barcha   yoshlar   mutlaqo   bepul   kurslarda   tahsil
olmoqdalar   !!!   Bizdan   talab   etilayotgan   vazifa   -   faqatgina   qunt   bilan   o'rganish   ,
kuniga  kamida   2   soat   vaqt   ajratib  bilimlarni   o'zlashtirishdan   iboratdir   !!!   Bunday
imkoniyat   menimcha   boshqalarni   ham   quvontirgan   bo'lsa   kerak   .   Bu   kursni
o'rganish   davomida   biz   boshlang'ich   bilimlarga   ega   bo'lamiz.   So'ng   yakuniy
imtihonda   yuqori   natija   olib,yanada   chuqurlashtirilgan   kurslarni   o'rganishimiz
mumkin.   Chuqurlashtirilgan   kurslarni   o'rganganimizdan   so'ng,   biz   ancha
bilimlarga ega bo'lgan holda o'zimizning loyihalarimizni yaratishimiz mumkin .Siz
ham   bu   imkoniyatdan   foydalaning     ,   hali   ham   kech   emas   ro'yxatdan
o'ting   .Boshlang'ich   bilimlarni   qunt   bilan   o'rgansangiz   2   hafta   mobaynida
mukammal o'zlashtira olasiz, deb aniq ayta olaman !!!  
(Havola:   https://uzbekcoders.uz/register )
  Biz  axir  buyuk  allomalarning vorislarimiz ,  bizdan ham  Stiv Jobs     , Bill   Geyts  ,
Mark Sukerberg kabi taniqli insonlar chiqishi kerak !!!  
Men   o'ylaymanki,   bundan   keyin   shunday   loyihalar   soni   ko'payadi.   Va   ular
O'zbekistonda IT sohasining taraqqiyotiga juda ham katta hissa qo'shadi!!!
  O'zbekistonda IT sohasining hozirgi kundagi holati va unga bo'lgan talab haqida. O'zbekistonda   IT   sohasining   holati   haqida   yurtdoshimiz   Bobur   Akilhanov   so'zlab
berganlar.
Bobur   Akilhanovning   aytishicha,O'zbekistonda     IT   sohasidagi   malakali
mutaxassislar tanqisligi uchraydi ... ??????
Mana   sizga   bitta   misol   :   hech   o'ylab   ko'rganmisiz,
nega   google ,   microsoft   ,facebook   o'zlarining   kompaniya   filiallari   yurtimizda
tashkil etilmagan ?
Bu savolga   Bobur Akilhanov   sodda javob berdilar   :
Google     ,Microsoft   ,Facebook   va   hokazolar   O'zbekistonda   o'z   korporatsiyalari
filialini tashkil qildilar ham deylik.   Lekin bu korporatsiyalarga IT sohasidagi  soni
jihatidan tashkil etadigan kadrlar qani ?
Javobga   e'tibor   bering   ,   bu   bilan   Bobur   Akilhanov   "Bizda   bunday   kadrlar   yo'q"
demoqchi emaslar . Faqatgina ularning soni sezilarli darajada kam demoqdalar .  
Chindan ham bu korporatsiyalarda minglab ishchilar ishlashini siz yaxshi bilsangiz
kerak . Bizdan talab etilayotgan narsa faqatgina , yangi malakali kadrlar !!!  
Mening fikrimcha ,hozir va bundan keyin ham bunday turdagi kadrlar soni keskin
ravishda ortadi.  
Tez orada bizda vaziyat butkul o'zgaradi !!!   Chunki:
Hozirgi kunda IT sohasidagi kadrlarga talab kundan-kunga oshmoqda !!!
Bu   esa   yaxshi   albatta   .Yurtimizning   qaysi   ish   joylaridan   bo'sh   ish   so'ramang   ,
ularda   albatta   IT   mutaxassisi   yetishmovchiligi   oqibatida   bo'sh   ish   o'rinlari
talayginaligini   ko'rishimiz   mumkin   .   Shaxsan   men   bunday   e'lonlarni   oxirgi
paytlarda   ko'p   uchratmoqdaman   .   Asosiy   talab   web   dasturchilarga   ( Full
stack   ,   Front-end   ,   back-end ) ,   JS   dasturchilarga ( ReactJS   ,   NodeJS ) va albatta yana
yuqori   talab   android   ,   ios   dasturchilarga( developer )   bo'lib   kelmoqda   (Bu
ma'lumotlarni   maxsus   saytlarda   berilayotgan   e'lonlarga   asoslanib   aytdim)   .   Misol
uchun   qaysi   tashkilotlarga   nazar   solmang   ,   ularning   rasmiy   web   saytlari   ,   mobil
qurilmalar   uchun   ilovalari   borligini   ko'rishimiz   mumkin   .   Bu   esa   albatta   web
dasturchilar hamda mobil dasturchilarga bo'lgan talabni keltirib chiqaradi .  
Yurtimizda IT sohasiga hozirda talab qanday   ? degan savolga bir misol ko'rsatsam:
Avvallari   siz   dasturlash   sohasini   o'rganar   edingiz   ,   lekin   uni   o'rganganingizdan
keyin   sizdek   mutaxassisga   bo'lgan   talab   mavjud   emas   edi   yoki   boshqa   sabablar.
Muammoning   asosiy   sababi   talab   va   taklif dan   kelib   chiqgan   edi.   IT   sohasi
vakillariga   talab   ham   yo'q   edi   ,   taklif   ham   shu   darajada   edi   .Eslatib   o'taman   ,
hozirgi   2-3   yil   ichida   islohotlar   natijasida   talab   ham,   taklif   ham   yuqori   darajada   .
Bo'sh ish o'rinlari ham mavjud . Hozirgi kunda bo'sh ish o'rinlarini qidirish uchun
ko'chalarda   e'lonlarni   qidirib   ,   titkilab   yurish   shart   emas   .   Buning   uchun   maxsus
tashkil qilingan saytlar bor . Misol uchun bo'sh ish o'rinlarini izlash uchun tashkil qilingan saytga nazar tashlasak, bu saytda   IT   sohasida kadrlar uchun talaygina ish
o'rinlari mavjud .
Ma'lumotlarga   ko'ra   bu   saytda   IT   sohasidagi   kadrlar   uchun   umumiy
hisobda   220 dan ortiq yoki  bir  qancha bo'sh ish o'rinlari  mavjud . Yana bir  ajoyib
tomoni , bu yerda siz istalgan yo'nalishda ish o'rnini topishingiz mumkin !!!
Bu ham yurtimizda   IT   sohasiga talab ortayotganligidan dalolat !!!
Sizga so'zlab bermoqchi bo'lganlarim shulardan iborat edi .  
Shuni   takidlab   o'tish   mumkinki   ,     men   yurtimizda   IT   sohasining   taraqqiy   etishiga
ishonaman , bizdan ham     bilimli,malakali , kuchli tafakkurga ega kadrlar yetishib
chiqadi   !!!   Ishonch   bilan   ayta   olamanki   ,   Uzbekcoders   loyihasi   ishtirokchilaridan
ham aynan shundy malakali kadrlar yetishib chiqadi !!!  
Maqolam   so'nggida   Apple   korporatsiyasining   asoschisi   Stiv   Jobs ning   ajoyib
sitatasini keltirib o'tmoqchiman:
Barcha insonlar dasturlashni o'rganishlari kerak ,  
chunki dasturlash insonni fikrlashga o'rgata oladi .
                                                                                                                          Stiv Jobs.
I . C++ dasturlash tilida standart matemtik funksiyalar
1.1. C++ dasturlash tili.
      Kompyuterda dasturlash bu – kompyuter mikroprotsessori uchun turli buyruqlar
berish,   qachon,   qayerda   nimani   o'zgartirish   va   nimalarni   kiritish   yoki   chiqarish
haqida buyruqlar berishdir. Ushbu maqolada, qanday dasturlash tillari borligi, eng
keng   tarqalgan   dasturlash   tillari   va   ularning   farqi.   Hamda,   Dasturlashni   o'rganish
yo'llari   haqida   suhbatlashamiz   Kompyuter   dunyosida   ko'plab   dasturlash   tillari
mavjud   bo'lib,   dasturlash   va   unga   qiziquvchilar   soni   ortib   bormoqda.   Bir   xil
turdagi   ishni   bajaradigan   dasturlarni   Basic,   Pascal,   Ci   va   boshqa   tillarda   yozish
mumkin.   Pascal,   Fortran   va   Kobol   tillari   universal   tillar   hisoblanadi,   Ci   va
Assembler   tillari   mashi   tiliga   ancha   yaqin   tillar   bo'lib,   quyi   yoki   o'rta   darajali
tillardir. Algoritmik til inson tillariga qanchalik yaqin bo'lsa, u tilga yuqori darajali
til   deyiladi.   Mashina   tili   esa   eng   pastki   darajali   tildir.   Mashina   tili   bu   sonlardan
iboratdir,   Masalan:   010110100010101   Dasturlash   tillari   2   ta   katta   guruhlarga
bo'linadi, Quyi va Yuqori darajali dasturlash tili. Quyi darajali dasturlash tili ancha
murakkab bo'lib ular  juda maxsus  sohalarda ishlatiladi  va ularning mutaxassislari
ham   juda   kam.   Chunki   quyi   dasturlash   tillari   (masalan:   assembler)   ko'pincha
miktoprotsessorlar   bilan   ishlashda   kerak   bo'lishi   mumkin.   Odatda   turli   dasturlash
ishlari uchun yuqori darajali dasturlash tilidan keng foydalaniladi. EHM (Elektron
Hisoblash   Mashinasi)   endi   yuzaga   kelgan   paytda   programma   tuzishda,   faqat
mashina tillarida, ya'ni sonlar yordamida EHM bajarishi kerak bo'lgan amallarning kodlarida kiritilgan. Bu holda mashina uchun tushinarli sanoq, sistemasi sifatida 2
lik, 6 lik, 8 lik sanoq sistemalari bo'lgan. Programma mazkur sanoq sistemasidagi
sonlar   vositasida   kiritilgan.   Yuqori   darajali   dasturlashda,   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. Odatda dasturlash yuqori saviyali dasturlash tillari
(Delphi, Java, C++, Python) vositasida amalga oshiriladi. Bu dasturlash tillarining
semantikasi odam tiliga yaqinligi tufayli dastur tuzish jarayoni ancha oson kechadi.
Ko'p ishlatiladigan dasturlash tillari. Biz hozir biladigan va ishlatadigan 
tillarning   barchasi   shu   guruhga   mansub.   Ular   insonga   "tushunarli"   tilda   yoziladi.
Ingliz   tilini   yaxshi   biluvchilar   programma   kodini   qiynalmasdan   tushunishlari
mumkin.   Bu   guruhga   Fortran,   Algol,   C,   Pascal,   Cobol   va   h.k.   tillar
kiradi(ko`pchiligi   hozirda   deyarli   qo`llanilmaydi).   Eng   birinchi   paydo   bo`lgan
tillardan   to   hozirgi   zamonaviy   tillargacha   ishlatish   mumkin.   Lekin,   hozirgi   web
texnologiya   orqali   ishlaydigan   tillarda(PHP,   ASP.NET,   JSP)   bunday   dasturlar
tuzilmaydi.   Chunki   bunday   dasturlarning   ishlashi   uchun   yana   bir   amaliy   dastur
ishlab   turishi   kerak.   Hozirda,   amaliy   dasturlar,   asosan,   Visual   C++,   C#,   Borland
Delphi, Borland C++, Java, Phyhon kabi tillarda tuziladi. O`zbekistonda ko`pchilik
Delphi   dan   foydalanadi.   Buning   asosiy   sababi:   soddaligi,   komponentlarning
ko`pligi, interfeysining tushunarliligi va h.k. Delphida birinchi ishlagan odam ham
qanaqadir   dastur   tuzishi   oson   kechadi.   Lekin,   Windows   da   dasturning   asosiy
ishlash   mohiyatini   ancha   keyin   biladi(komponentlarning   ko`pligi   va   API
funksiyalari   dasturda   ko`rsatilmasligi   uchun).   Yana   bir   tarafi,   Delphi(Pascal)
operativ xotirani tejashga kelganda ancha oqsaydi. Unda o`zgaruvchilarni oldindan
e'lon   qilib   qo`yish   evaziga   ishlatilmaydigan   o`zgaruvchilar   va   massivlar   ham   joy
olib turadi. Eng keng tarqalgan dasturlash tili(Windows OS ida) Microsoft Visual
C++ tilidir. Ko`pchilik dasturlar hozirda shu tilda tuziladi. Umuman olganda, C ga
o`xshash(C-подобный)   tillar   hozirda   dasturlashda   yetakchi.   Deyarli   hamma
zamonaviy   tillarning   asosida   C   yotadi.   Bundan   tashqari,   Turli   komputer   o'yinlari
tuzishda   yoki   kichik   hajmdagi   dasturlar   tayyorlashda   LUA   script   yoki   JavaScript
tillari   ham   keng   ishlatilmoqda.   Biz   sizga   xozirgi   kunda   keng   tarqalgan   desktop
dasturlashda   ishlatiladigan   dasturlash   tillaridan   bazilari   haqida   aytib   o'tamiz:
Delphi (talaff. délfi) — dasturlash tillaridan biri. Borland firmasi tomonidan ishlab
chiqarilgan.   Delphi   dasturlash   tili   ishlatiladi   va   avvaldan   Borland   Delphi   paketi
tarkibiga kiritilgan. Shu bilan bir qatorda 2003- yildan hozirgacha qo llanilayotganʻ
shu nomga ega bulgan. Object Pascal — Pascal  tilidan bir qancha kengaytirishlar
va to ldirishlar orqali kelib chiqqan bo lib, u ob'yektga yo naltirilgan dasturlash tili	
ʻ ʻ ʻ hisoblanadi.   Avvaldan   ushbu   dasturlash   muhiti   faqatgina   Microsoft   Windows
amaliyot   tizimi   uchun   dasturlar   yaratishga   mo'ljallangan,   keyinchalik   esa
GNU/Linux hamda Kylix tizimlari uchun moslashtirildi, lekin 2002-yilgi Kylix 3
sonidan   so'ng   ishlab   chiqarish   to'xtatildi,  ko'p   o'tmay   esa   Microsoft.NET   tizimini
qo'llab   quvvatlashi   to'g'risida   e'lon   qilindi.   Lazarus   proekti   amaliyotidagi   (Free
Pascal)   dasturlash   tili   Delphi   dasturlash   muhitida   GNU/Linux,   Mac   OS   X   va
Windows   CE   platformalari   uchun   dasturlar   yaratishga   imkoniyat   beradi.   Visual
Basic   (talaffuzi:   "Vijual   Beysik")   –   Microsoft   korporatsiydan   dasturlash   tili   va
uning   uchun   dasturlash   muhitdir.   U   BASICdan   ko`p   tushunchalar   oldi   va   tez
rasmli   interfeys   bilan   dasturlar   taraqqiyot   ta`minlaydi.   Oxirgi   versiya   6.0   1998
yilda   reliz   kelishdi.   Microsoftdan   voris   Visual   Basic   .NET   2002   yilda   paydo
bo`ldi.   Java   dasturlash   tili   -   eng   yaxshi   dasturlash   tillaridan   biri   bo'lib   unda
korporativ darajadagi mahsulotlarni(dasturlarni) yaratish mumkin.Bu dasturlash tili
Oak  dasturlash  tili   asosida   paydo bo'ldi.  Oak  dasturlash  tili  90-yillarning  boshida
Sun   Microsystems   tomonidan   platformaga(Operatsion   tizimga)   bog'liq   bo'lmagan
holda   ishlovchi   yangi   avlod   aqlli   qurilmalarini   yaratishni   maqsad   qilib   harakat
boshlagan   edi.   Bunga   erishish   uchun   Sun   hodimlari   C++   ni   ishlatishni
rejalashtirdilar,   lekin   ba'zi   sabablarga   ko'ra   bu   fikridan   voz   kechishdi.Oak
muvofaqiyatsiz chiqdi va 1995-yilda Sun uning nomini Java ga almashtirdi, va uni
WWW   rivojlanishiga   hizmat   qilishi   uchun   ma'lum   o'zgarishlar   qilishdi.   Java
Obyektga   Yo'naltirilgan   Dasturlash(OOP-object   oriented   programming)   tili   va   u
C++   ga   ancha   o'xshash.Eng   ko'p   yo'l   qo'yildigan   xatolarga   sabab   bo'luvchi
qismalari   olib   tashlanib,   Java   dasturlash   tili   ancha   soddalashtirildi.   Java   kod
yozilgan fayllar(*.java bilan nihoyalanuvchi) kompilatsiyadan keyin bayt 
kod(bytecode)   ga   o'tadi   va   bu   bayt   kod   interpretator   tomonidan   o'qib
yurgizdiriladi.   C++   (talaffuzi:   si   plyus   plyus)   —   turli   maqsadlar   uchun
mo ljallangan dasturlash tili. 1979-yili Bell Labsda Biyarne Stroustrup tomonidanʻ
C   dasturlash   tilining   imkoniyatlarini   kengaytirish   va   OOP(object   Oriented
Programming) xususiyatini kiritish maqsadida ishlab chiqarilgan. Boshida „C with
Classes" deb atalgan, 1983-yili hozirgi nom bilan ya ni C++ deb o zgartirilgan. C+	
ʼ ʻ
+   C   da   yozilgan   dasturlarni   kompilyatsiya   qila   oladi,   ammo   C   kompilyatori   bu
xususiyatga ega emas. C++ tili operatsiyon tizimlarga aloqador qisimlarni, klient-
server dasturlarni, EHM o yinlarini, kundalik ehtiyojda qo llaniladigan dasturlarni	
ʻ ʻ
va   shu   kabi   turli   maqsadlarda   ishlatiladigan   dasturlarni   ishlab   chiqarishda
qo llaniladi.   Quyidagi   jadvalda   programmalash   tillari   haqida   ma'lumotlar	
ʻ
keltirilgan.
1.2. C++ dasturlash tilida standart matemtik tushunchalar.   Ma’lumotlarni kiritish va chiqarish va akslantirish funksiyalari
bilan ishlovchi kutubxonalar
(stdio.h) kutubxonasi
C++ tilida qiymatlarni kiritish chiqarish uchun C tilidan o‘tgan stdio.h
kutubxonasidan foydalaniladi. Bu kutubxonada mavjud funksiyalar klaviatura,
printer, terminal kabi qurilmalarni fayl oqimlari sifatida qabul qiladi. Oqim – bu
o‘zaro bir jinsli sodir bo‘luvchi xususiyatga ega jarayondir. Oqimlar
kutubxonasida fayl ko‘rsatgichlari kabi qayta ishlanadi. Fayl ko‘rsatgichlari – bu
28 oqimda unikal aniqlanib, bajariladigan amal uning parametri sifatida 
beriladi.Bu
kutubxonada 3 ta standart oqim mavjud;   stdin,stdout   va   stderr   lar. Bu oqimlar
kutubxona chaqirilishi bilan avtomatik tarzda aniqlanadi [4,10]. Oqim xususiyatlar 
–   Oqimlar bir qator xususiyatlarga ega ya‘ni ulardaqanday funksiyalardan 
foydalanishmoqda va ular orqali ma‘lumotlarni   chiqarish  qanday amalga 
oshirilmoqda. Oqimlarning bunday xususiyatlarining ko‘pchiligi―fopen  ‖
funksiyasi bilan aniqlangan: Ma’lumotlarni o’qish – yozish uchun ruxsat:   Bu holat 
oqimdan o‘qish yoki fizik xotiraga ma‘lumotlarni yozish uchun qo‘llaniladi.
Matn/Binar:   Matnlar oqimi – bu har biri yakunlanuvchi satr deb
tushuniladi. Matn holati satrlarni o‘z xarakteriga ko‘ra o‘qish yozishni amalga
oshiradi. Binar – xarakterli oqim esa fizik xotiradan o‘qish yozishni to‘g‘ridan –
to‘g‘ri amalga oshiradi. Orientatsiya:   Faylni ochishda oqim hech qanday 
orientatsiyaga ega bo‘lmaydi. Bajarilayotgan amalga bog‘liq ravishda 
chiqariluvchi miqdorlar keng formatli bitlar yoki baytlar ko‘rinishida bo‘ladi.
Indikatorlar:   Oqimning joriy holatini aniqlovchi va bir qator chiqarish
amallarini bajaruvchi ichki aniqlangan ichki indikatorlar mavjud bo‘lib, ular
quyidagilar:  Xatolik indikatori.   Bu indikator oqimga bog‘liq bo‘lgan xatoliklar 
ro‘y berganda ishlaydi. Bu indekator ―ferror  funksiyasi hisoblanadi.	
‖ Fayl oxirini 
ko’rsatuvchi indekator.   Agar fayl oxirini ko‘rsatuvchi indekator o‘rnatilgan bo‘lsa, 
u oxirgi o‘qilgan ma‘lumotni nazorat qiladi. U ―feof  funksiyasi hisoblanadi.	
‖
Holat indekatori.   Bu oqim uchun ma‘lumotlarni kiritish chiqaarish
indekatori hisoblanadi. Uning qiymatini ―ftall  funksiya yordamida olish mumkin.	
‖
Funksiyalar:
Fayl	
 ustida	 amal	 bajaruvchi	 funksiyalar: remove   faylni qayta yuklash.29
rename   faylni qayta nomlash. Tmpnam   vaqtinchalik faylni nomini qo‘yish.
Tmpfile   vaqtinchalik fayl ochish.  Faylga	
 bog’lanishni	 amalga	 oshiruvchi	 
funksiyalar:
fclose   faylni yopish
fflush   flush   oqimi.
fopen   faylni ochish.
freopen   faylni turli usullarda ochish. setbuf   oqimdagi ma‘lumotlar buferi.
setvbuf   bufferni o‘zgartirish oqimi.
Kiritish chiqarish	 formati:
fprintf   formatlangan ma‘lumotlarni oqimga yozish.
fscanf   formatlangan ma‘lumotlarni oqimga qo‘shish.
printf   stdout fayliga formatlangan ma‘lumotlarni chiqarish.
scanf   stdin faylidan formatlangan ma‘lumotlarni o‘qish.
snprintf   ma‘lum o‘lchamga ega ma‘lumotni bufferga yozish.
sprintf   formatlangan ma‘lumotlarni satrga yozish.
sscanf   formatlangan ma‘lumotlarni satrdan o‘qish.
vfprintf   o‘zgaruvchidagi formatlangan ma‘lumotlarni oqimga
yozish.
vfscanf   oqimdan formatlangan ma‘lumotlarni o‘zgaruvchiga o‘qish.
vprintf   o‘zgaruvchidan stdout fayliga formatlangan ma‘lumotlarni
chiqarish.
vscanf   stdin   faylidan formatlangan ma‘lumotlarni o‘zgaruvchidan
o‘qish.
vsnprintf   o‘zgaruvchidagi formatlangan ma‘lumotlarni ma‘lum
o‘lchamga ega bufferga chiqaradi.
vsprintf   o‘zgaruvchidagi formatlangan ma‘lumotlarni satrga
chiqarish.
30
vsscanf   satrdan formatlangan ma‘lumotlarni o‘zgaruvchiga o‘qish.
Belgilarni	
 kiritish	 chiqarish	 xarakteri:
fgetc   oqimdan belgini o‘qish.
fgets   oqimdan satrni o‘qish.
fputc   belgini oqimga chiqarish.
fputs   satrni oqimga chiqarish.
getc   oqimdan belgini o‘qish.
putc   oqimga belgini chiqarish.
getchar   stdin   faylidan belgini o‘qish.
gets   stdin   faylidan satrni o‘qish.
putchar   stdout   fayliga belgini chiqarish.
Puts   stdout   fayliga satrni chiqarish.
ungetc   oqimdan belgini yo‘qotish.
Ma’lumotlarni	
 bevosita	 kiritish	 chiqarish:
fread   ma‘lumotlar blokini oqimdan o‘qish.
fwrite   ma‘lumotlar blokini oqimga chiqarish.
Faylning	
 joylashuvi: fgetpos   oqimning joriy holatini aniqlash.
fseek   oqimning holatini aniqlovchi indekator.
fsetpos   oqimlar to‘plarining joylashuvini aniqlovchi indekator.
ftell   oqimning joriy holatini aniqlash.
rewind   oqimlarning boshlang‘ich holatini aniqlash.
Xatolarga ishlov	 berish:
clearerr   xatolik indekatorini o‘chirish.
feof   fayl oxiri indekatorini tekshirish.
ferror   xatolik indekatorini tekshirish.
perror   bosmalashdagi xatolik xabari.
Makroaniqlovlar:
BUFSIZ   buffer o‘lchami
31
EOF   fayl oxiri
FILENAME
MAX
bir vaqtda ochilish mumkin bo‘lgan oqimlarning miqdori.
FOPEN MAX   bir vaqtda ochilish mumkin bo‘lgan oqimlarning
maksimal miqdori.
L tmpnam   vaqtinchalik fayl nomining minimal uzunligi.
NULL   bo‘sh ko‘rsatkich.
TMP_ MAX   vaqtinchalik fayl nomining qo‘shimcha aniqlovchilar.
urlari:
FILE   oqimni boshqarish uchun ma‘lumotlarni saqlovchi obyekt.
fpos_ t   faylning joylashuv chegarasini aniqlovchi ma‘lumotlarni
saqlovchi obyekt.
(stdlib.h) kutubxonasi
Bu kutubxona bir qator xotirani dinamik boshqaruvni amalga oshiruvchi,
tasodifiy sonlarni hosil qilish, dasturlash muhitining bog‘lovchilari, butun
sonlarning arifmetikasi akslantirish, saralash va izlash funksiyalarini o‘zida
saqlaydi [3,10].
Funksiyalar:
atof   satr ko‘rinishidagi sonni haqiqiy son formatiga o‘tkazish.
atoi   satr ko‘rinishidagi sonni butun son formatiga o‘tkazish.
atol   satr ko‘rinishidagi sonni uzun butun son formatiga o‘tkazish.
atoll   satr ko‘rinishidagi sonni ikkilangan uzun son formatiga
o‘tkazish.
strtod   satr ko‘rinishidagi sonni ikkilangan   haqiqiy son formatiga
o‘tkazish.
strtof   satr ko‘rinishidagi sonni haqiqiy son formatiga o‘tkazish.
strtol   satr ko‘rinishidagi sonni uzun butun son formatiga o‘tkazish. strtold   satr ko‘rinishidagi sonni uzun haqiqiy son formatiga 32 o‘tkazish.
strtoll   satr ko‘rinishidagi sonni ikkilangan butun son formatiga o‘tkazish.
strtoul   satr ko‘rinishidagi sonni ishorasiz uzun butun son formatiga o‘tkazish.
strtoull   satr ko‘rinishidagi sonni ishorasiz ikkilangan uzun butun son formatiga 
o‘tkazish.
rand   tasodifiy sonlar generator.
srand   tasodifiy sonlar generatorini boshqarish.
calloc   dinamik massiv uchun xotiradan joy ajratadi.
Muhim funksiyalar:
abort   joriy jarayonni to‘xtatish.
atexit   (ma‘lumotlarni chiqarish) joriy holatdan chiqib ketish.
at_quick_exit   joriy holatni favqulotda tark etish funksiyasi.
exit   chaqirilgan jarayonni tugatish.
gutenv   muhim qaytaruvchi qiymatni olish.
quick_exit   chaqirilgan jarayonni favqulotda tark etish.
system   sistema buyruqlarini bajarish.
Exit   chaqirilgan jarayonni tugatish.
Qidiruv
 va	 saralash	 funksiyalari:
B search   massivda   binar   qidiruv.
qsort   massiv elementlarini saralash.
Butun	
 arifmetika	 funksiyalari:
abs   absolyut qiymat.
div   butunga bo‘lish.
labs   uzun butun sonning absolyut qiymati.
ldiv   uzun butun sonlarni butunga bo‘lish.
llabs   ikkililik uzun butun sonlarning absolyut qiymati.
lldiv   uzun butun sonlarni butunga bo‘lish.
33
Multibayt	
 satrlar:
mbstowcs   multibayt satrlarni multi belgilarga aylantiradi.
Multibayt
 belgilar:
mblen   multibayt belgilarning uzuzligini qaytarish.
mbtowc   multibayt belgini keng formatli multibayt belgiga o‘tkazadi.
wctomb   keng formatli multibayt belgini multibayt belgiga o‘tkazadi.
westombs   multibayt belgilarni multibayt satrlarga almashtiradi.
Makro	
 o’zgarmaslar:
EXIT
FAILURE
muvafaqqiyatsiz tugallanuvchi kod.
EXIT
SUCCESS
muvafaqqiyatli tugallanuvchi kod.
MB_CUR_MAX   multibayt belgilarni maksimal o‘lchami.
NULL   bo‘sh ko‘rsatkich.
RAND_MAX   rand	
 funksiyasi   qaytaradigan makimal qiymat. Tiplar:
div_t   div   amali qaytaradigan qiymatlarni saqlaydi.
ldiv_t   ldiv   amali qaytaradigan qiymatlarni saqlaydi.
lldiv_t   lldiv   amali qaytaradigan qiymatlarni saqlaydi.
size_t   ishorasiz butun tur.
II.2   Matematik funksiyalar bilan ishlovchi kutubxonalar
C++ tilidan foydalanuvchiar bu kutubxonadan juda keng foydalanadilar.
math.h kutubxonasi turli matematik funksiyalar, makrokonstantalar va matematik
turlar bilan boyitilgan. Quyida biz ularning tavsifini keltiramiz:
math.h   kutubxonasining funksiyalari
Funksiya Bajaradigan	 amali
Trigonometrik	
 funksiyalar:
cos   Radianga t е ng bo‘lgan burchakning kosinusini qaytaradi
sin   Radianga t е ng bo‘lgan burchakning sinusini qaytaradi
tan   Radianga t е ng bo‘lgan burchakning   tangensini qaytaradi
acos   Radianda b е rilgan argum е ntning arkkosinus qiymatini
qaytaradi
asin   Radianda b е rilgan argum е ntning arksinus qiymatini
qaytaradi
atan   Radianda b е rilgan argum е ntning arktangens qiymatini
qaytaradi
atan2   Radianda b е rilgan x/y argum е ntning arktangens qiymatini
qaytaradi
Giperbolik	
 funksiyalar:
cosh   Radianda b е rilgan burchakning giperbolik kosinusini
qaytaradi
sinh   Radianda b е rilgan burchakning gip е rbolik sinusini
qaytaradi
tanh   Radianda b е rilgan burchakning gip е rbolik tangensini
qaytaradi
acosh   Radianda b е rilgan burchakning gip е rbolik arkkosinusini
qaytaradi
asinh   Radianda b е rilgan burchakning gip е rbolik arksinusini
qaytaradi
42
atanh   Radianda b е rilgan burchakning gip е rbolik arktangensini
qaytaradi
Logarifmik
 funksiyalar
exp   е x qiymatni qaytaradi
frexp   Sonning mantissasini va   darajasining qiymatini ajratib , mantissa qiymatini qaytaradi va darajasini ko‘rsatilgan
adr е sga joylashtiradi
ldexp(x)   x*2 е xp qiymatni qaytaradi
log   Sonning natural logarifmini qaytaradi
log10   Sonning 10 asosli logarifmini qaytaradi
modf   Haqiqiy sonning butun va haqiqiy qismalarini ajratish
exp2   Funksiyaning ikkilik ko‘rsatkichini aniqlash
expm1   -1 ko‘rsatkich bilan hisoblah
ilogb   Ikkita predmetdan iborat nabordagi butun son logarifmi
log1p   Logarifmni +1 ko‘rsatkich bilan hisoblash
log2   Ikkilik logarifmni hisoblash
logb   Logarifmni suzuvchu vergulli son asosida hisoblash
Darajaga ko’tarish	 funksiyalari
pow   Darajaga ko‘taradi
pow10   10 sonining   darajasini hisoblaydi
sqrt   Sondan kvadrat ildiz chiqaradi
cbrt   Sondan kub ildiz chiqaradi
hypot   to‘g‘ri burchakli uchburchakning kat е tlari bo‘yicha
gipot е nuzasini hisoblaydi
Xatolik	
 funksiyalari	 va	 gamma	 funksiyalari
erf   Xatolik funksiyasini hisoblash
erfc   Qo‘shimcha xatolik funksiyasini hisoblash
tgamma   Gamma funksiyani hisoblash
lgamma   Ro‘yxatdan o‘tkazuvchi gamma funksiyani hisoblash
43
Yaxlitlash	
 va	 qoldiqni	 hisoblash	 funksiyalari:
ceil   haqiqiy qiymatni unga eng yaqin katta butun songacha
aylantiradi va uni haqiqiy ko‘rinishini qaytaradi
floor   haqiqiy qiymatni eng yaqin kichik songa aylantiradi va uni
haqiqiy son ko‘rinishida qaytaradi
fmod   Ikkita sonni bo‘lish natijasidagi qoldiqni qaytaradi. %
amaliga o‘xshagan,   faqat haqiqiy son qaytaradi
trunc   Sonni yaxlitlash
round   Sonni yaqin butun songa yaxlitlash
lround   Uzun sonni yaxlitlash
llround   Ikkilik uzun sonni yaxlitlash
rint   Butun songa yaxlitlash
lrint   Uzun butun songa yaxlitlash
llrint   Ikkilik uzun butun songa yaxlitlash
nearbyint   Butun songa yaqin bo‘lgan qiymat bilan yaxlitlah
remainder   Qoldiqni hisoblash
remquo   Qoldiqni va faktorni hisoblash
Absolyut	
 qiymatni	 hisoblash	 funksiyalari
abs   Sonning   absolyut qiymatini qaytaradi
fabs   Haqiqiy sonning absolyut qiymatini qaytaradi labs   Uzun butun sonning absolyut qiymatini qaytaradi
Turlar
double_t   Haqiqiy sonlar turi
float_t   Haqiqiy sonlar turi
II. 3 Dasturlashda math.h kutubxonasining imkoniyatlaridan
foydalanish
C++ tilining math.h kutubxonasi yordamida matematik masalalarni
dasturlash jarayonini ko‘rib chiqamiz.
Bu kutubxonadagi mavjud matematik funksiyalarni quyidagi to‘rt guruhga
bo‘lishimiz mumkin:
  Trigonometrik funksiyalar
  Giperbolik funksiyalar
  Eksponensial va logarifmik funksiyalar
  Boshqa turdagi matematik funksiyalar.
math.h kutubxonasidan foydalanishni namoyish etish uchun quyidagi
dasturni keltiramiz.
Masala.   n   musbat butun va   a   haqiqiy sonlari berilgan bo‘lsa,   y   ning qiymati
quyidagicha hisoblansin:






0, .
lg( ), 4 ' ;
arccos( ), 3 ' ;
( ), 2 ' ;
2, 1 ' ;
boshqa   hollarda
a agar	 n bo	 lsa
a	
 agar	 n bo	 lsa
th	
 a agar	 n bo	 lsa
a	
 agar	 n bo	 lsa
y
#pragma hdrstop
#include
#include
49
#include
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char **argv) {
int n;
float a,x;
cin>>a>>n;
switch (n)
{
case 1: x=pow(a,2); break;
case 2: x=tanh(a); break;
case 3: x=acos(a); break;
case 4: x=log10(a); break;
default: x=0;
}
cout<
cin>>"\n";
return 0;
}
Ushbu dastur bajarilgandan so’ng quyidagi natijalar olindi:
50
Misol 1: Misol 2: Misol 3:
67 4 45 1 34 3
1.82607 2025 acos: DOMAIN error
nan
Yuqorida keltirilgan dastur yordamida ko‘rsatilgan funksiyaga mos
qiymatni hisoblash imkoniyati tug‘iladi. Dasturlash tilidagi bunday imkoniyat aniq
va tabiiy fanlarning turli yo‘nalishlarida o‘z sohasiga bog‘liq funksiyalarni
hisoblash uchun foydalanuvchilarga o‘zining funksiyalar kutubxonasini hosil
qilish imkoniyatini beradi.
Xulosa
Ushbu bitiruv ishida qaralgan C++ tilining kutubxonalari va ularning
programma tuzishdagi ahamiyati mavzusi ostida qo‘yilgan masalalarni o‘rganish
bo‘yicha quyidagilar bajarildi:
1. C++ dasturlash tilining imkoniyatlari o‘rganib   chiqilib , ishga aloqador va
ishga muhim deb hisoblanganlari ish tarkibiga kiritildi.
2. C++ tilining bir qator kutubxonalari va ularda mavjud imkoniyatlar batafsil
o‘rganib chiqildi va ish tarkibiga kiritildi.
3. Amaliy dasturlar qurish yo‘li bilan C++ tilining   ,   ,
va   kutubxonalaridan samarali foydalanish yo‘llari
ko‘rsatib berildi.
Ushbu ishda keltirilgan ma‘lumotlardan C++ tilining kutubxonalariga
bog‘liq imkoniyatlarini qo‘llashni yo‘lga qo‘yishni , ya‘ni kengroq o‘rganishni
istovchilarning faydalanishlari yaxshi natija beradi deb hisoblaymiz.
1.3. C++ dasturlash tilida standart matemtik funksiyalar. Muhim funksiyalar:
abort   joriy jarayonni to‘xtatish.
atexit   (ma‘lumotlarni chiqarish) joriy holatdan chiqib ketish.
at_quick_exit   joriy holatni favqulotda tark etish funksiyasi.
exit   chaqirilgan jarayonni tugatish.
gutenv   muhim qaytaruvchi qiymatni olish.
quick_exit   chaqirilgan jarayonni favqulotda tark etish.
system   sistema buyruqlarini bajarish.
Exit   chaqirilgan jarayonni tugatish.
Qidiruv
 va	 saralash	 funksiyalari:
B search   massivda   binar   qidiruv.
qsort   massiv elementlarini saralash.
Butun	
 arifmetika	 funksiyalari:
abs   absolyut qiymat.
div   butunga bo‘lish.
labs   uzun butun sonning absolyut qiymati.
ldiv   uzun butun sonlarni butunga bo‘lish.
llabs   ikkililik uzun butun sonlarning absolyut qiymati.
lldiv   uzun butun sonlarni butunga bo‘lish.
33
Multibayt	
 satrlar:
mbstowcs   multibayt satrlarni multi belgilarga aylantiradi.
Multibayt
 belgilar:
mblen   multibayt belgilarning uzuzligini qaytarish.
mbtowc   multibayt belgini keng formatli multibayt belgiga o‘tkazadi.
wctomb   keng formatli multibayt belgini multibayt belgiga o‘tkazadi.
westombs   multibayt belgilarni multibayt satrlarga almashtiradi.
Makro	
 o’zgarmaslar:
EXIT
FAILURE
muvafaqqiyatsiz tugallanuvchi kod.
EXIT
SUCCESS
muvafaqqiyatli tugallanuvchi kod.
MB_CUR_MAX   multibayt belgilarni maksimal o‘lchami.
NULL   bo‘sh ko‘rsatkich.
RAND_MAX   rand	
 funksiyasi   qaytaradigan makimal qiymat.
Tiplar:
div_t   div   amali qaytaradigan qiymatlarni saqlaydi.
ldiv_t   ldiv   amali qaytaradigan qiymatlarni saqlaydi.
lldiv_t   lldiv   amali qaytaradigan qiymatlarni saqlaydi.
size_t   ishorasiz butun tur.
II.2   Matematik funksiyalar bilan ishlovchi kutubxonalar C++ tilidan foydalanuvchiar bu kutubxonadan juda keng foydalanadilar.
math.h kutubxonasi turli matematik funksiyalar, makrokonstantalar va matematik
turlar bilan boyitilgan. Quyida biz ularning tavsifini keltiramiz:
math.h   kutubxonasining funksiyalari
Funksiya Bajaradigan	 amali
Trigonometrik	
 funksiyalar:
cos   Radianga t е ng bo‘lgan burchakning kosinusini qaytaradi
sin   Radianga t е ng bo‘lgan burchakning sinusini qaytaradi
tan   Radianga t е ng bo‘lgan burchakning   tangensini qaytaradi
acos   Radianda b е rilgan argum е ntning arkkosinus qiymatini
qaytaradi
asin   Radianda b е rilgan argum е ntning arksinus qiymatini
qaytaradi
atan   Radianda b е rilgan argum е ntning arktangens qiymatini
qaytaradi
atan2   Radianda b е rilgan x/y argum е ntning arktangens qiymatini
qaytaradi
Giperbolik	
 funksiyalar:
cosh   Radianda b е rilgan burchakning giperbolik kosinusini
qaytaradi
sinh   Radianda b е rilgan burchakning gip е rbolik sinusini
qaytaradi
tanh   Radianda b е rilgan burchakning gip е rbolik tangensini
qaytaradi
acosh   Radianda b е rilgan burchakning gip е rbolik arkkosinusini
qaytaradi
asinh   Radianda b е rilgan burchakning gip е rbolik arksinusini
qaytaradi
42
atanh   Radianda b е rilgan burchakning gip е rbolik arktangensini
qaytaradi
Logarifmik
 funksiyalar
exp   е x qiymatni qaytaradi
frexp   Sonning mantissasini va   darajasining qiymatini ajratib ,
mantissa qiymatini qaytaradi va darajasini ko‘rsatilgan
adr е sga joylashtiradi
ldexp(x)   x*2 е xp qiymatni qaytaradi
log   Sonning natural logarifmini qaytaradi
log10   Sonning 10 asosli logarifmini qaytaradi
modf   Haqiqiy sonning butun va haqiqiy qismalarini ajratish
exp2   Funksiyaning ikkilik ko‘rsatkichini aniqlash
expm1   -1 ko‘rsatkich bilan hisoblah
ilogb   Ikkita predmetdan iborat nabordagi butun son logarifmi log1p   Logarifmni +1 ko‘rsatkich bilan hisoblash
log2   Ikkilik logarifmni hisoblash
logb   Logarifmni suzuvchu vergulli son asosida hisoblash
Darajaga ko’tarish	 funksiyalari
pow   Darajaga ko‘taradi
pow10   10 sonining   darajasini hisoblaydi
sqrt   Sondan kvadrat ildiz chiqaradi
cbrt   Sondan kub ildiz chiqaradi
hypot   to‘g‘ri burchakli uchburchakning kat е tlari bo‘yicha
gipot е nuzasini hisoblaydi
Xatolik	
 funksiyalari	 va	 gamma	 funksiyalari
erf   Xatolik funksiyasini hisoblash
erfc   Qo‘shimcha xatolik funksiyasini hisoblash
tgamma   Gamma funksiyani hisoblash
lgamma   Ro‘yxatdan o‘tkazuvchi gamma funksiyani hisoblash
43
Yaxlitlash	
 va	 qoldiqni	 hisoblash	 funksiyalari:
ceil   haqiqiy qiymatni unga eng yaqin katta butun songacha
aylantiradi va uni haqiqiy ko‘rinishini qaytaradi
floor   haqiqiy qiymatni eng yaqin kichik songa aylantiradi va uni
haqiqiy son ko‘rinishida qaytaradi
fmod   Ikkita sonni bo‘lish natijasidagi qoldiqni qaytaradi. %
amaliga o‘xshagan,   faqat haqiqiy son qaytaradi
trunc   Sonni yaxlitlash
round   Sonni yaqin butun songa yaxlitlash
lround   Uzun sonni yaxlitlash
llround   Ikkilik uzun sonni yaxlitlash
rint   Butun songa yaxlitlash
lrint   Uzun butun songa yaxlitlash
llrint   Ikkilik uzun butun songa yaxlitlash
nearbyint   Butun songa yaqin bo‘lgan qiymat bilan yaxlitlah
remainder   Qoldiqni hisoblash
remquo   Qoldiqni va faktorni hisoblash
Absolyut	
 qiymatni	 hisoblash	 funksiyalari
abs   Sonning   absolyut qiymatini qaytaradi
fabs   Haqiqiy sonning absolyut qiymatini qaytaradi
labs   Uzun butun sonning absolyut qiymatini qaytaradi
Turlar
double_t   Haqiqiy sonlar turi
float_t   Haqiqiy sonlar turi
II. 3 Dasturlashda math.h kutubxonasining imkoniyatlaridan
foydalanish
C++ tilining math.h kutubxonasi yordamida matematik masalalarni
dasturlash jarayonini ko‘rib chiqamiz.
Bu kutubxonadagi mavjud matematik funksiyalarni quyidagi to‘rt guruhga bo‘lishimiz mumkin:
  Trigonometrik funksiyalar
  Giperbolik funksiyalar
  Eksponensial va logarifmik funksiyalar
  Boshqa turdagi matematik funksiyalar.
math.h kutubxonasidan foydalanishni namoyish etish uchun quyidagi
dasturni keltiramiz.
Masala.   n   musbat butun va   a   haqiqiy sonlari berilgan bo‘lsa,   y   ning qiymati
quyidagicha hisoblansin:






0, .
lg( ), 4 ' ;
arccos( ), 3 ' ;
( ), 2 ' ;
2, 1 ' ;
boshqa   hollarda
a agar	 n bo	 lsa
a	
 agar	 n bo	 lsa
th	
 a agar	 n bo	 lsa
a	
 agar	 n bo	 lsa
y
#pragma hdrstop
#include
#include
49
#include
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char **argv)
{
int n;
float a,x;
cin>>a>>n;
switch (n)
{ case 1: x=pow(a,2); break;
case 2: x=tanh(a); break;
case 3: x=acos(a); break;
case 4: x=log10(a); break;
default: x=0;
}
cout<
cin>>"\n";
return 0;
}
Ushbu dastur bajarilgandan so’ng quyidagi natijalar olindi:
50
Misol 1: Misol 2: Misol 3:
67 4 45 1 34 3
1.82607 2025 acos: DOMAIN error
nan
Yuqorida keltirilgan dastur yordamida ko‘rsatilgan funksiyaga mos
qiymatni hisoblash imkoniyati tug‘iladi. Dasturlash tilidagi bunday imkoniyat aniq
va tabiiy fanlarning turli yo‘nalishlarida o‘z sohasiga bog‘liq funksiyalarni
hisoblash uchun foydalanuvchilarga o‘zining funksiyalar kutubxonasini hosil
qilish imkoniyatini beradi.
II. C++ dasturlash tilida standart matemtik funksiyalarning birinchi tartibli 
hosilasini aniqlovchi dastur yaratish.
2.1. C++ dasturlash tilida funksiyalarning birinchi tartibli hosilasi.
C++ dasturlash tilida dastur tuzish vaqtida ma’lum bir jarayonlar bir necha marta
bajarilishi yoki bir necha marta murojat qilinishi mumkin.  Dasturlash   tillari   tarkibida   bir   necha   marta   bajarilish   kerak   bo‘lgan
jarayonlarni   bir   marta   tasvirlab   keyin   shu   dasturga   murojat   qilish   imkoniyati
mavjud. 
Dasturlash   tillari   tarkibida   bir   necha   marta   bajarilishi   mumkin   bo‘lgan
holatlarni   qism   dastur   sifatida   e’lon   qilish   va   kerakli   joyga   shu   qism   dasturga
murojat qilish mumkin.
Ta’rif: Dasturlash	 tilida	 yaratilgan	 dastur	 tarkibida	 ma’lum	 bir	 vazifani
bajaruvchi	
 kichik	 dasturlar	  qism	 dasturlar  	deyiladi.
Qism   dasturlarning   mohiyati   berilgan   masala   tarkibi   ma’lum   bir   vazifani
bajarish   kerak   bo‘ladi,   lekin   masala   tarkibida   ham   kichik   bir   vazifani   bajarish
kerak   bo‘ladi   shunday   vazifalarni   qism   dastur   yordamida   hal   etish   mumkin.
Bunday   masalalar   asosan   matematik   masalalar   tarkibida   ko‘p   bo‘lishi   mumkin,
yoki boshqa sohalarda ham uchrab turadi. 
Masalan   biror   bir   tashkilotning   ma’lumotlar   bazasi   berilganda   uning   tarkibidagi
xodimlarning oylik maoshini hisoblash jarayonini qism dastur yordamida hisoblash
maqsadga muvofiq. 
Agar   tashkilot   ma’lumotlar   bazasi   tarkibidagi   xodimlarning   oylik   maoshini
qism   dastur   yordamida   hisoblanmasa,   har   bir   xodim   uchun   oylik   maoshini
hisoblash   jarayonini   keltirish   kerak,   qism   dasturdan   foydalansa   har   bir   xodim
uchun qism dasturga murojaat qilib qo‘yiladi. 
Dastur   tuzish   vaqtida   qism   dasturlardan   qachon   foydalanamiz,   agar   siz   hal
etadigan masala yoki muommo tarkibida ma’lum bir jarayonlar ikki va undan ortiq
sodir   bo‘lsa,   o’sha   jarayonni   qism   dastur   sifatida   e’lon   qilish   kerak   va   kerakli
joyda   qism   dasturga   murojat   qilish   kerak.   Masalan,   quyidagi   masalaga   e’tibor
bering.
  Bu   masala   tarkibiga   e’tibor
qaratsak, birdan n gacha bo‘lgan sonlar yig’indisi bir necha marta bajarilyapti, bu
masalani hal etish uchun tuziladigan dastur tarkibida birdan n gacha bo‘lgan sonlar
yig’indisini     hisoblash   jarayonini   qism   dastur   qilib   e’lon   qilish   kerak.   Agar   qism
dastur sifatida e’lon qilinsa, masalani hal etishda qism dasturga ikki marta murojat
qilish asosida berilgan masalani hal etish mumkin. Yuqorida   keltirilgan   masalalarga   o‘xshash   masalalarni   hal   etish   usulini
samarasini   oshirish   uchun   qism   dasturlardan   foydalaniladi.   Qism   dasturlar   C++
dasturlash tilida qisqacha qilib funksiyalar deb ataladi. Demak, funksiyalar ma’lum
bir vazifani bajaruvchi dastur tarkibdagi qism dasturlar ekan.
Ta’rif: Dasturlash	 tilida	 tuzilgan	 dastur	 tarkibidagi	 ma’lum	 bir	 vazifalarni
bajaruvchi	
 qism	 dasturlar	 funksiyalar	 deyiladi.
Dastur   ishlash   jarayoni   samarasi   asosan   ikki   tur   bo‘yicha   oshiriladi,   ya’ni
xotira   hajmi   va   ishlash   tezligi   bo‘yicha.   Dasturning   ishlash   tezligini   oshirish
uchun, albatta, dastur tarkibi sodda va ixcham bo‘lishi ta’lab etiladi. 
Funksiyalar C++ dasturlash tilida ma’lum bir vazifani bajaruvchi dastur tarkibidagi
kichik  dasturlar,  demak,  funksiyani   hosil  qilish   uchun  datur  tarkibida  ma’lum   bir
vazifalar bir necha marta bajarilish kerak bo‘ladi. C++ dasturlash tilida har qanday
dastur   hech   bo‘lmaganda   bitta   bosh   funksiyani   main()   funksiyasini   o‘z   tarkibida
saqlaydi.   Dastur   tarkibida   main()   funksiyasidan   tashqari   boshqa   funksiyalar   ham
bo‘lishi mumkin.
Dastur  tarkibidagi funksiyaga uning nomi bilan murojat  qilinadi, dastur  bajarilish
vaqtida   funksiya   nomi   uchrasa,   komplyator   shu   funksiyaning   tanasiga   murojat
qilib natijani funksiya nomiga qaytaradi va dastur keyingi qadamlarni bajaradi. 
C++   dasturlash   tilida   funksiyalar   ikki   guruhga   ajratiladi,   ya’ni   standart   va
standart  bo‘lmagan   funksiyalar.   Standart  funksiyalar  C++  dasturlash  tili   tarkibida
biror   bir   kutubxona   tarkibiga   joylashtirilgan   bo‘ladi.   Standart   bo‘lmagan
funksiyalar dastur tarkibida yaratiladi va unga nomi bilan murojat qilinadi. 
C++   dasturlash   tilida   funksiyalar   yaratish   ulardan   dasturning   ixtiyoriy   joyida
foydalanish   uchun,   albatta,   funksiyalarni   dastur   tanasida   e’lon   qilish   kerak.   C++
dasturlash   tilida   funksiyalarni   e’lon   qilishning   bir   necha   usullari   mavjud.   C++
dasturlash   tilida   main()   asosiy   funksiya   tarkibida   boshqa   funksiyalardan
foydalanish   uchun,   albatta,   funksiyalar   main()   asosiy   funksiyadan   oldin   e’lon
qilinishi   kerak.   Funksiyalarni   e’lon   qilish   uning   prototipi   yoki   signaturasi   ham
deyiladi. Ta’rif:	
 Dastur	 tarkibidagi	 funksiyalarni	 main()	 funksiyasidan	 oldin
dasturlash	
 tilida	 yozilishi	 funksiyalarni	 e’lon	 qilish	 deyiladi.	 
C++   dasturlash   tilida   funksiyalarni   e’lon   qilishning   umumiy   ko‘rinishi
quyidagicha bo‘ladi:
tur <funksiya nomi> (tur <argument>); Funksiyani   e’lon   qilish   jarayonida   birinchi   funksiya   natijasining,   ya’ni
funksiya   qaytaradigan   turi   keltiriladi,   keyin   funksiya   nomi   qavs   ichida   funksiya
o‘zgaruvchilari turi va o‘zgaruvchilari keltiriladi. 
Funksiya   qaytaradigan   turi   argument   bajarilgandan   so‘ng   hosil   bo‘ladigan   natija
turi   bilan   ustma-ust   tushishi   kerak   aks   holda   komplyator   xato   keltiradi.   Funksiya
nomi funksiya bajaradigan vazifadan kelib chiqqan holda qo’yiladi, chunki dastur
tuzuvchi mutaxassislar uchun umumiy holda tushunish oson bo‘lishi kerak. 
Masalan,   ketma-ketliklarni   yig’indisini   hisoblash   funksiyasiga   sum(),
to‘rtinchi darajali ildizni hisoblash uchun  sqrt4(),  sonning ekubini hisoblash uchun
ekub(),   sonning   ekukini   hisoblash   uchun   ekuk()   va   faktorialni   hisoblash   uchun
fak()  deb nomlash maqsadga muvofiq bo‘ladi. 
Funksiya   tarkibiga   kiritilishi   kerak   bo‘lagan   o‘zgaruvchi   argumentlar,
albatta, avval turi bilan qavs ichida vergul bilan ajratilib yozilishi kerak. 
Funksiya   qaytaradigan   turi,   funksiya   qabul   qiladigan   argumentlar   turi   va
funksiya tarkibidagi buyruqlar asosida aniqlanadi. 
C++   dasturlash   tilida   birdan n gacha   bo‘lgan	 butun	 sonlarning	 yig’indisini
hisoblovchi   va   ikkita   butun   sonning   yig’indisini   hisoblovchi   funksiyalarni
quyidagicha e’lon qilish kerak:    
  #include <iostream.h>
  int sum(int n);             
  int yig(int a, int b);
  using namespace std;     
  int main()                                 
  {                                 
   }    
Birdan   n   gacha   bo‘lgan   butun   sonlarning   yig’indisini   hisoblash   uchun   sum   nomi
bilan int sum(int n) funksiya yaratiladi. 
Funksiyani   natijasi   butun   tur   bo‘ladi,   chunki   butun   turdagi   sonlarning
yig’indisi, albatta, butun bo‘ladi. sum(int n) funksiyasining argument sifatida bitta n soni qabul qilinadi, chunki birdan n gacha sonlar yig’indisini hisoblash jarayoni
faqat n ga bog’liq bo‘ladi. 
Ikkita   sonning   yig’indisini   hisoblash   uchun   int   yig(int   a,   int   b)   funksiyasi
yaratiladi.   Funksiya   qaytaradigan   natija   turi   butun   bo‘ladi,   chunki   butun   turdagi
sonlarning yig’indisi, albatta, butun bo‘ladi. 
Yig’indini hisoblash funksiya argumenti ikkita  a  va  b  sonlari qavs ichida turi
bilan keltiriladi, chunki ikki sonning yig’indisi ikkita butun songa bog’liq bo‘ladi.
Har doim ham funksiya natijasining turi argument turi bilan bir xil bo‘lmaydi. 
Ikki sonning nisbatini aniqlovchi funksiyani quyidagicha e’lon qilinadi.
  
  #include <iostream.h>
  double nisbat(int a, int b);             
  using namespace std;     
  int main()                                 
  {                                 
   }          
Ikki   sonning   nisbatini   aniqlash   uchun   double   nisbat(int   a,   int   b)   funksiyasi
yaratiladi,   nisbat   funksiyasi   natijasining   turi   haqiqiy   bo‘ladi,   chunki   ikkita   butun
sonning nisbati doimo butun bo‘lavermaydi.
                                             
C++ Funksiya.
Funksiya faqat chaqirilgan vaqtda ishlaydigan kod bllogi hisoblanadi. Funksiyaga 
parametrlar sifatida ma'lumotlarni uzatish mumkin. Funksiyalar muayyan bir 
vazifani bajarish uchun ishlatiladi. Kod yozish jarayonida yaratgan funksiyadan bir
yoki bir nechta marta ishlatish yoki umuman ishlatmaslik imkoniyatiga egasiz. 
Funksiya yaratish.Siz ko'p marta funksiyani ushbu darsgacha ishlatib 
keldingiz.   main()   ham bir funksiya hisoblanadi. dastur ishga tushgan vaqtida 
birinchi bo'lib ushbu funksiya ishlaydi. Bu standart funksiya bo'lib siz ham shu 
kabi funksiyalar yaratishingiz mumkin.
Funksiya yaratish uchun birinchi funksiya qaytaradigan tip yoki funksiya turi keyin
nomi va   ()   ochiladi. qavs ichida siz ma'lumotlar ya'ni parametrlarni qabul qilasiz.
  C++
1
void myFunction() {
2
    // Bu qiymat qaytarmaydigan funksiya
3
}
Misol tushuntirildi.
 myFunction()   funktsiya nomi
 void   funktsiya    qiymat qaytarmaydigan funksiyaligidan dalolat beradi.
 { }   bu funksiya tanasi bo'lib. Bu yerda o'zingizga kerakli kodni kiritishinigiz 
mumkin. Unutmang   main()   funksiyasida nima amal bajarsangiz bunda ham 
shunday amalni bajarishiningiz mumkin.
Funksiya Chaqirish
Funksiya o'zidan o'zi ishlab ketmaydi. Funksiyani chaqirishdan so'ng ishga tushadi.
Funksiyani qayta qayta foydalanishiningiz mumkin. Funksiyani chaqirish uchun 
funksiya nomi ikki qavs   ()   va nuqtali vergul bilan tugallanadi.
C++
1
#include <iostream>
2
using   namespace  std;
3
4
void myFunction() {
5
    cout <<  "I'm a developer. MasterSherkulov!" ;
6
}
7
8
int main() {
9
    myFunction();
10     return   0 ;
11
}
I'm a developer. MasterSherkulov!
Funksiyalar bir yoki bir necha marta chaqirish imkoniyati mavjud.
C++
1
#include <iostream>
2
using   namespace  std;
3
4
void myFunction() {
5
    cout <<  "I'm a developer. MasterSherkulov!" ;
6
}
7
8
int main() {
9
    myFunction();
10
    myFunction();
11
    myFunction();
12
    return   0 ;
13
}
I'm a developer. MasterSherkulov!
Funktsiya deklaratsiyasi va ta'rifi                                                                              
C ++ dasturlash tilida funksiya ikki qismdan iborat:
 Deklaratsiya:   funktsiyaning nomi, qaytish turi va parametrlari (agar mavjud
bo'lsa)
 Ta'rif:   funktsiya tanasi (bajarilishi kerak bo'lgan kod)
C++ 1
void myFunction() {  // Deklaratsiya
2
    // Ta'rif funktsiya tanasi (bajarilishi kerak bo'lgan kod)
3
}
Eslatma:   Agar foydalanuvchi tomonidan belgilangan funktsiya, masalan
myFunction() ,     main()   funktsiyadan   so'ng e'lon qilingan bo'lsa   ,   xato yuz 
beradi   .   Buning sababi, C ++ yuqoridan pastga ishlaydi;    Agar funksiya yuqorida 
e'lon qilinmasa   main() , dastur bundan bexabar bo'ladi:
C++
1
#include <iostream>
2
using   namespace  std;
3
4
int main() {
5
    myFunction();
6
    return   0 ;
7
}
8
9
void myFunction() {
10
    cout <<  "I'm a developer. MasterSherkulov!" ;
11
}
In function 'int main()':
5:3: error: 'myFunction' was not declared in this scope
2.2. C++ dasturlash tilida aniqlovchi dastur. Hozir siz bilan   C++   dasturlash tilida   TUB   sonlarni 
topuvchi dasturni tuzishni ko'rib o'rganib chiqamiz...
Dastur kodi     :
#include <iostream>
#include <math.h>
using namespace std;
int main()
{        int n;
       cout << "Son Kiriting = "; cin >> n;
       cout << n << " gacha bo'lgan TUB sonlar :" << endl;
       for (int i = 2; i <= n; i++)
       {
           bool tub = true;
           for (int j = 2; j <= sqrt(i); j++)
           {
               if (i % j == 0)
               {
                       tub = false;
                       break;
               }
           }
           if (tub == true)
                   cout << i << endl;
       }
       return 0;
}
 
2.3. C++ dasturlash tilida standart matemtik funksiyalarning
birinchi tartibli hosilasini aniqlovchi dastur yaratish.
Funksiya tanasini tasvirlash
C++ dasturlash tilida funksiyalardan foydalanish uchun, albatta, funksiyalarni 
dastur tarkibida tasvirlash kerak. Funksiyalar dasturchi ishini juda yengillashtiradi.  Funksiyalar yordamida programma modullashadi, qismlarga bo‘linadi. Bu esa 
keyinchalik dasturni rivojlantirishni osonlashtiradi. 
Dastur yozilish davrida xatolarni topishni yengillashtiradi. C++ dasturlash 
tilida funksiyalar tanasini tasvirlash main() funksiyasidan tashqarisida yozilishi, 
yani funksiya bajaradigan vazifalarni {} qavs ichida buyruqlar ketma- ketligi 
shaklida yozilishi.
Funksiya tanasini tasvirlash jarayoni ikki qismdan iborat bo‘ladi, ya’ni 
funksiya sarlavhasi va funksiya tanasidan iborat bo‘ladi. 
Funksiya tanasini tasvirlash jarayonida funksiya sarlavhasidan keyin nuqtali 
vergul qo’yilmaydi, { qavs ochilib buyruqlar yoziladi va natija  return  xizmatchi 
so‘zidan keyin probel bilan yoziladi keyin } qavs yopiladi. 
Funksiya tanasi tarkibi yozilishida xuddi boshqa dastur tuzilishi kabi unda 
ishlatiladigan o‘zgaruvchilar e’lon qilinadi, buyruqlar nuqtali vergul yordamida 
ajratilib yoziladi. 
Funksiyalarni C++ dasturlash tilida tasvirlash jarayonining umumiy 
ko‘rinishi quyidagicha bo‘ladi:
<tur> <funksiya nomi>(<tur> <argument>)
{  <tur> <o‘zgaruvchilar>;
  <operatorlar>;
  return natija;
}
Funksiyalar tansini tasvirlashda funksiya qaytaradigan qiymat yoki ifoda 
return so‘zidan keyin probel bilan yozilishi kerak va nuqtali vergul qo’yiladi.
 Misol:  C++ dasturlash	 tilida	 ikki	 sonning	 yig’indisini	 hisoblash	 uchun	 fuksiya	 
yarating	
 va	 unga	 murojat	 qilishni	 tasvirlang.
 
  #include <iostream.h>
  int yig(int a, int b);             
  using namespace std;     
  int main()                                 
  { int x,y,z;
   cin>>x>>y; 
   z=yig(x,y);
   cout<<z;     return 0;                                
   }          
   int yig(int a, int b)
              { int t;
               t=a+b;
               return t;
               }              
Kiritishga ma’lumot
2 3
Dastur natijasi
5
Funksiyani e’lon qilmasdan undan foydalanish
C++ dasturlash tilida funksiyalardan foydalanishning bir qancha usullari mavjud. 
Bu usullardan biri C++ dasturlash tilida funksiyalarni e’lon qilmasdan 
funksiyalardan foydalanish usulidir. Agar funksiya prototipidan foydalanmasa, 
albatta, main() funksiyasi ichida shu funksiyaga murojaatdan oldin funksiyani 
e’lon qilish jarayonini keltirish kerak. Funksiya prototipidan foydalanmasdan 
funksiyaga murojat qilishni quyidagi masala orqali ko‘rib o‘tamiz.
Misol:  n! faktorialni	 hisoblash	 jarayonini	 funksiya	 yordamida	 tasvirlash
#include <iostream.h>
   int fak(int n)
              { int p=1;            for(int i=1;i<=n;i++) p=p*i; return p; } 
 using namespace std;      
 int main()           { int x;   cin>>x;  cout<<fak(x);
    return 0;                                
   }          
Kiritishga ma’lumot
5
Dastur natijasi
120
Global va lokal o‘zgaruvchilar
C++ dasturlash tilida tuziladigan dasturlar tarkibida bir nechta 
o‘zgaruvchilardan foydalaniladi. C++ dasturlash tilida funksiyalar mavzusidan 
keyin o‘zgaruvchilar ikki turga ajratiladi, ya’ni global va lokal o‘zgaruvchilar. Ta’rif: Dastur tarkibining ixtiyoriy joyida foydalanish mumkin bo‘lgan 
o‘zgaruvchilar global o‘zgaruvchilar deyiladi.
Global o‘zgaruvchilar dasturning ixtiyoriy qismida o‘z qiymatini saqlaydi, 
hattoki, main() funksiyasining ichidagi o‘zgaruvchilar ham global hisoblanmaydi, 
chunki main() funksiyasidan tashqarida main() funksiyasi ichidagi o‘zgaruvchilar 
o‘z qiymatini saqlamaydi. Global o‘zgaruvchilar main() funksiyasidan oldin e’lon 
qilinadi. C++ dasturlash tilidagi funksiyalar tarkibidagi o‘zgaruvchilar global 
hisoblanmaydi. Global bo‘lmagan o‘zgaruvchilar faqatgini o‘z funksiya blok 
ichiga tegishli bo‘ladi.
       Ta’rif: C++ dasturlash tilidagi funksiyalar tarkibidagi o‘zgaruvchilar 
lokal o‘zgaruvchilar deyiladi.
Dastur tarkibidagi funksiyalar tarkibidagi barcha o‘zgaruvchilar lokal hisoblanadi, 
funksiya tarkibidagi o‘zgaruvchilar faqatgina funksiyaning o‘z bloki ichida o‘rinli 
bo‘ladi. Global va lokal o‘zgaruvchilarni aniqlash uchun quyidagi keltirilgan 
sonning bo‘luvchilar yig’indisini hisoblovchi dastur orqali aniqlaymiz.
#include <iostream.h>
  int buluvchi(int x);
  float m;  
  int x=16;
   using namespace std;     
  int main()           {  cout<<buluvchi(x);
    return 0;                                
   }          
   int buluvchi(int n)
              { int p=0;
               for(int i=1;i<=n;i++)
                 if(n%i==0) p++;
               return p;
               }              
Dastur natijasi
5
 
Yuqoridagi dastur tarkibiga e’tibor qaratsak, main() funksiyasidan oldin e’lon 
qilingan  m  va  x	 o‘ zgaruvchilar global hisoblanadi, main() va buluvchi(n)  funksiyalari tarkibidagi o‘zgaruvchilar lokal hisoblanadi. Global o‘zgaruvchilarni 
dasturning ixtiyoriy joyida foydalanish imkoniyati mavjud, lokal o‘zgaruvchilarni 
esa faqatgina o‘z funksiya bloki ichida foydalanish mumkin. 
Global va lokal o‘zgaruvchilar haqida aytilganda global va lokal 
o‘zgaruvchilarni  yashash davri  haqida tushuncha beriladi. 
Global o‘zgaruvchilarni yashash davri dastur ishga tushirilgandan toki 
tugaguncha hisoblanadi. Lokal o‘zgaruvchilarni yashash davri esa faqatgina 
o‘zgaruvchi keltirilgan funksiya ishga tushurilgan vaqti hisoblanadi. 
Agar dasturdagi global o‘zgaruvchilar funksiya tarkibida alohida 
boshlang’ich qiymati berilsa, uning global qiymati unutiladi va funksiya 
tarkibidagi qiymat hisobga olinadi. 
Global va lokal o‘zgaruvchilarni yashash davrini quyidagi masala orqali 
aniqlaymiz:
#include <iostream.h>
  int yig(int a, int b);
   int a=20, b=10;
   using namespace std;     
  int main()                                 
  { 
   cout<<yig(a,b);
    return 0;                                
   }          
   int yig(int a, int b)
              { a=4; b=5;
               return a+b;
               }              
Dastur natijasi
9
Dastur tarkibida  a=20, b=10  global sifatida aniqlangan edi, lekin yig(a,b) 
funksiyasini tarkibida  a=4, b=5  bo‘lganligi uchun  a va b  larning boshlang’ich 
qiymatlari unitiladi va natija  9  ga teng bo‘ladi. 
Global o‘zgaruvchilarning qiymatlarini saqlab qolish uchun a o‘zgaruvchini 
boshqacha qilib e’lon qilish kerak.  Global o‘zgaruvchilar qiymatlarini saqlab qolish uchun quyidagi rejaga 
asosan aniqlanadi.
 
Global o‘zgaruvchilar qiymatini saqlab qolish
C++ dasturlash tilida global o‘zgaruvchilarni lokal sifatida ishlatilsa global 
o‘zgaruvchining boshlang’ich qiymatini saqlab qolish uchun  a  o‘zgaruvchini  ::a  
sifatida ishlatish kerak. 
Global o‘zgaruvchilarni lokal sifatida ishlatilsa, global o‘zgaruvchining 
boshlang’ich qiymatini saqlab qolishni quyidagi dastur orqali aniqlaymiz.
#include <iostream.h>
  int yig(int a, int b);
   int a=20, b=10;
   using namespace std;
  int main()
  {
   cout<<yig(a,b);
    return 0;
   }
   int yig(int a, int b)
              { a=4; b=5;
               return a+::b;
               }                         
Dastur natijasi
14
C++ Matematik Funksiyalar.
Assalomu Alaykum bugun siz bilan bir qancha imkoniyatlarga ega 
funksiyalar haqida ma'lumotga ega bo'lamiz. Bugun siz bilan matematik 
funksiyalar haqida gaplashamiz . C++   dasturlash tilida raqamlarda matematik 
vazifalarni bajarish imkoniyatini beradigan ko'pgina funksiyalar mavjud.
MIN   va   MAX
Funktsiya eng yuqori qiymatini topish uchun foydalanish 
mumkin   X   va   y   : max( x , y ) C++
1
cout << max( 13 ,  15 );
Va   funktsiya   x   va   y   ning eng past qiymatini topish uchun ishlatilishi 
mumkin   : min( x , y )
C++
1
cout << min( 5 ,  10 );
C ++   <cmath>   Kutubxonasi.
sqrt (Kvadrat ildiz),   round (sonni aylantiradi) va   log   (natural logarifm)   kabi boshqa 
funktsiyalarni     <cmath>   kutubxonasida topish mumkin   :
C++
1
#include <iostream>
2
#include <cmath>
3
using   namespace  std;
4
5
int main() {
6
    cout << sqrt( 64 ) <<  "\n" ;
7
    cout << round( 2.6 ) <<  "\n" ;
8
    cout << log( 2 ) <<  "\n" ;
9cout << min(5, 10);
#include <iostream>
#include <cmath>
using namespace std;
#include <iostream>
#include <cmath>
using namespace std;     return   0 ;
10
}
8
3
0.693147
Boshqa matematik vazifalar .
Boshqa Math funktsiyalari (   <cmath> kutubxonasida)   ro'yxatini   quyidagi jadvalda 
topish mumkin:
Function Description
abs(x) X ning mutlaq qiymatini qaytaradi. Ya'ni X sonni 
modulini qaytaradi.
acos(x) X ning   arccos   radian bilan qaytaradi
asin(x) X ning   arcsin   radian bilan qaytaradi
atan(x) X ning   arctg   radian bilan qaytaradi
cbrt(x) X ning kub ildizini qaytaradi
ceil(x) X qiymatini eng yaqin butun songa qadar qaytaradi cos(x) X ning   cos   radian bilan qaytaradi
exp(x) Expotensial qiymatni qaytaradi.
expm1(x) e x
  -1 ushbu qiymatni qaytaradi.
fabs(x) Haqiqiy son x ning modul qiymatini qaytaradi
fdim(x, y) X va y o'rtasidagi farqni qaytaradi
floor(x) X qiymatini eng yaqin butun songa qaytaradi
hypot(x, 
y) sqrt(x 2
  +y 2
) ushbu natijani qaytaradi.
fmod(x, 
y) X / y ning haqiqiy qiymatning qoldiq qismini 
qaytaradi
pow(x, y) x ni y darajaga ko'taradi.
sin(x) sin(x) ni hisoblaydi tan(x) tg(x) ni hisoblaydi. ctg ni hisoblash uchun ctg = 1 / 
tan(x); deb yozing.
sqrt(x) X ni kvadrat ildizi
log(x) X natural logorifmi!
Xulosa:
 Ushbu kurs ishida qaralgan  . C++ dasturlash tilida standart matemtik 
funksiyalarning birinchi tartibli hosilasini aniqlovchi dastur yaratish  mavzusi  ostida qo‘yilgan masalalarni o‘rganish bo‘yicha quyidagilar bajarildi:
1. C++ dasturlash tilining imkoniyatlari o‘rganib   chiqilib , ishga aloqador va
ishga muhim deb hisoblanganlari ish tarkibiga kiritildi.
2.  . C++ dasturlash tilida standart matemtik tushunchalar  va ularda mavjud 
imkoniyatlar batafsil o‘rganib chiqildi va ish tarkibiga kiritildi.
3.  C++ dasturlash tilida standart matemtik funksiyalar  samarali foydalanish yo‘llari
ko‘rsatib berildi.
Ushbu ishda keltirilgan ma‘lumotlardan  C++ dasturlash tilida standart matemtik 
funksiyalarning birinchi tartibli hosilasini aniqlovchi dastur ga bog‘liq 
imkoniyatlarini qo‘llashni yo‘lga qo‘yishni , ya‘ni kengroq o‘rganishni
istovchilarning foydalanishlari yaxshi natija beradi deb hisoblaymiz.
Foydalanilgan adabiyotlar:
1.  Г . Шилдт  –― Полный   справочник   по  C++  – ‖ М -2006., 801  стр . 2.Р.Седжвик – ―Фундаментальные алгоритмы на С++  – М 2001., 687 стр.‖
3. Ш.Ф.Мадрахимов, С.М.Гайназаров ―С++ тилида программалаш асослари	
‖
– Тошкент-2009 й., 196
4. М.Э.Абрамян ―Электронный задачник по программированию  Ростов - на	
‖
-
Дону 2005 г. 182 стр.
5. A.A.Xaldjigitov, Sh.F.Madraximov, U.E.Adambayev, E.A Eshboyev,
Informatika va dasturlash. T.:O‗zMU, 2005 y, -148 s.
6. Н.Н.Непейвода- Стили и методы программирования. Интернет
университет информационных технологий. INTUIT.ru, 2005 г., 320 стр.
7. O.M.Shukurov, E.A.Eshboyev, B.H.Shovaliyev – ―Delphi va C++ algoritmik
tillarida dasturlash  – Qarshi-2012 y., 228 s.	
‖
8. www.ziyonet.uz

MAVZU: C++ dasturlash tilida standart matemtik funksiyalarning birinchi tartibli hosilasini aniqlovchi dastur yaratish. Reja: Kirish. I . C++ dasturlash tilida standart matemtik funksiyalar 1.1. C++ dasturlash tili. 1.2. C++ dasturlash tilida standart matemtik tushunchalar. 1.3. C++ dasturlash tilida standart matemtik funksiyalar. II. C++ dasturlash tilida standart matemtik funksiyalarning birinchi tartibli hosilasini aniqlovchi dastur yaratish. 2.1. C++ dasturlash tilida funksiyalarning birinchi tartibli hosilasi. 2.2. C++ dasturlash tilida aniqlovchi dastur. 2.3. C++ dasturlash tilida standart matemtik funksiyalarning birinchi tartibli hosilasini aniqlovchi dastur yaratish. Xulosa. Foydalanilgan adabiyotlar.

Kurs ishi maqsadi: C++ dasturlash tilida standart matemtik funksiyalarning birinchi tartibli hosilasini aniqlovchi dastur yaratish. Kurs ishi vazifalari:  C++ dasturlash tilida standart matemtik tushunchalar.  C++ dasturlash tilida standart matemtik funksiyalar.  C++ dasturlash tilida standart matemtik funksiyalarning birinchi tartibli hosilasini aniqlovchi dastur yaratish. Kirish. O'zbekistonda IT sohasining taraqqiyoti va hozirgi kunda unga bo'lgan talab Agar siz e'tibor berayotgan bo'lsangiz so'nggi paytlarda yurtimizda dasturchilik sohasiga doir ko'plab ko'zga ko'ringan ajoyib yangiliklar , loyihalar va tanlovlar ishlab chiqilmoqda . Dasturchilik bu"kelajak" kasbi ekanligini deyarli barchamiz bilib oldik . Biz axir axborot texnologiyalari asrida yashab kelmoqdamiz . IT sohasida katta o'zgarishlar bo'lmoqda , asosiy maqsad esa yangi malakali mutaxassislarni yetishtirib chiqarishdir(kelajakda aynan shunday mutaxasislardan biri siz bo'lishingiz mumkin . ) Dasturchilik sohasining taraqqiyoti uchun ko'plab ko'zga ko'rinadigan ajoyib ishlar davom etmoqda :

Yurtimizning ko'pgina viloyatlarida IT park tashkil e'tilib kelinmoqda .Ma'lumki ,ko'pchilik IT park haqidagi tushunchaga ega emaslar. Chunki axborot texnologiyalari sohasidagi bu kabi ibora biz kabi barcha yoshlar , jumladan tengdoshlarim uchun ham ajoyib yangilik bo'ldi . Men o'ylaymanki, bundan keyin IT park yurtimizning hamma joylarida tashkil etiladi va uning mohiyati yanada takomillashib borgani sari IT sohasiga qiziquvchilar uchun keng

ma'lumotlar eshigini ochadi !!! Shuningdek , IT park - dasturlashga qiziquvchilar va bu soha vakillariga juda ham katta imkoniyat bera oladi deb ayta olaman . Nega aynan IT park , uni bizga qanday foydali jihati bor ? IT park - axborot texnologiyalariga doir loyihalarni o'z ichiga olgan innovatsion maskan . IT sohasini butun dunyo mamlakatlari sharoiti talab etmoqda . Ayni paytda IT sohasisiz mamlakatning taraqqiyotini belgilab bo'lmaydi , albatta !!! Men aniq ayta olamanki , IT park ga o'xshash loyihalar yurtimizni rivojlangan davlatlar qatorida ko'rish imkoniyatini beradi . IT park ning yana bir foydali jihati shuki,kelajakda o'z sohasining yetuk mutaxassislarini yetishtirish bilan birgalikda , bilim,ko'nikma,malaka , kuchli tafakkurga ega barcha qiziquvchilarni kashf eta oladi . Aytgancha ,o'yinlarga qiziquvchilar uchun maxsus mashg'ulot : ular IT parkda kibersport bo'yicha o'zlariga kerakli maslahatlarni olishlari mumkin . IT parkda hali ko'plab tanlovlar o'tkazilishi ham ko'zda tutilgan . IT park yoshlarga cheksiz imkoniyatlar eshigini ochib bera oladi ! IT sohasining taraqqiyoti borasida olib borilayotgan ishlar qatorida Uzbek Coders loyihasini o'rni beqiyosdir !!! Uzbek Coders loyihasi ham kelajakda IT sohasidagi malakali kadrlarni yetishtirib chiqarishda katta ko'mak bera oladi deb ayta olaman . Chunki bu loyiha tufayli men va tengdoshlarim ,qolaversa barcha yoshlar mutlaqo bepul kurslarda tahsil olmoqdalar !!! Bizdan talab etilayotgan vazifa - faqatgina qunt bilan o'rganish , kuniga kamida 2 soat vaqt ajratib bilimlarni o'zlashtirishdan iboratdir !!! Bunday imkoniyat menimcha boshqalarni ham quvontirgan bo'lsa kerak . Bu kursni o'rganish davomida biz boshlang'ich bilimlarga ega bo'lamiz. So'ng yakuniy imtihonda yuqori natija olib,yanada chuqurlashtirilgan kurslarni o'rganishimiz mumkin. Chuqurlashtirilgan kurslarni o'rganganimizdan so'ng, biz ancha bilimlarga ega bo'lgan holda o'zimizning loyihalarimizni yaratishimiz mumkin .Siz ham bu imkoniyatdan foydalaning , hali ham kech emas ro'yxatdan o'ting .Boshlang'ich bilimlarni qunt bilan o'rgansangiz 2 hafta mobaynida mukammal o'zlashtira olasiz, deb aniq ayta olaman !!! (Havola: https://uzbekcoders.uz/register ) Biz axir buyuk allomalarning vorislarimiz , bizdan ham Stiv Jobs , Bill Geyts , Mark Sukerberg kabi taniqli insonlar chiqishi kerak !!! Men o'ylaymanki, bundan keyin shunday loyihalar soni ko'payadi. Va ular O'zbekistonda IT sohasining taraqqiyotiga juda ham katta hissa qo'shadi!!! O'zbekistonda IT sohasining hozirgi kundagi holati va unga bo'lgan talab haqida.

O'zbekistonda IT sohasining holati haqida yurtdoshimiz Bobur Akilhanov so'zlab berganlar. Bobur Akilhanovning aytishicha,O'zbekistonda IT sohasidagi malakali mutaxassislar tanqisligi uchraydi ... ?????? Mana sizga bitta misol : hech o'ylab ko'rganmisiz, nega google , microsoft ,facebook o'zlarining kompaniya filiallari yurtimizda tashkil etilmagan ? Bu savolga Bobur Akilhanov sodda javob berdilar : Google ,Microsoft ,Facebook va hokazolar O'zbekistonda o'z korporatsiyalari filialini tashkil qildilar ham deylik. Lekin bu korporatsiyalarga IT sohasidagi soni jihatidan tashkil etadigan kadrlar qani ? Javobga e'tibor bering , bu bilan Bobur Akilhanov "Bizda bunday kadrlar yo'q" demoqchi emaslar . Faqatgina ularning soni sezilarli darajada kam demoqdalar . Chindan ham bu korporatsiyalarda minglab ishchilar ishlashini siz yaxshi bilsangiz kerak . Bizdan talab etilayotgan narsa faqatgina , yangi malakali kadrlar !!! Mening fikrimcha ,hozir va bundan keyin ham bunday turdagi kadrlar soni keskin ravishda ortadi. Tez orada bizda vaziyat butkul o'zgaradi !!! Chunki: Hozirgi kunda IT sohasidagi kadrlarga talab kundan-kunga oshmoqda !!! Bu esa yaxshi albatta .Yurtimizning qaysi ish joylaridan bo'sh ish so'ramang , ularda albatta IT mutaxassisi yetishmovchiligi oqibatida bo'sh ish o'rinlari talayginaligini ko'rishimiz mumkin . Shaxsan men bunday e'lonlarni oxirgi paytlarda ko'p uchratmoqdaman . Asosiy talab web dasturchilarga ( Full stack , Front-end , back-end ) , JS dasturchilarga ( ReactJS , NodeJS ) va albatta yana yuqori talab android , ios dasturchilarga( developer ) bo'lib kelmoqda (Bu ma'lumotlarni maxsus saytlarda berilayotgan e'lonlarga asoslanib aytdim) . Misol uchun qaysi tashkilotlarga nazar solmang , ularning rasmiy web saytlari , mobil qurilmalar uchun ilovalari borligini ko'rishimiz mumkin . Bu esa albatta web dasturchilar hamda mobil dasturchilarga bo'lgan talabni keltirib chiqaradi . Yurtimizda IT sohasiga hozirda talab qanday ? degan savolga bir misol ko'rsatsam: Avvallari siz dasturlash sohasini o'rganar edingiz , lekin uni o'rganganingizdan keyin sizdek mutaxassisga bo'lgan talab mavjud emas edi yoki boshqa sabablar. Muammoning asosiy sababi talab va taklif dan kelib chiqgan edi. IT sohasi vakillariga talab ham yo'q edi , taklif ham shu darajada edi .Eslatib o'taman , hozirgi 2-3 yil ichida islohotlar natijasida talab ham, taklif ham yuqori darajada . Bo'sh ish o'rinlari ham mavjud . Hozirgi kunda bo'sh ish o'rinlarini qidirish uchun ko'chalarda e'lonlarni qidirib , titkilab yurish shart emas . Buning uchun maxsus tashkil qilingan saytlar bor . Misol uchun bo'sh ish o'rinlarini izlash uchun tashkil