logo

C++ da dasturlash tilida statik kutbxonalar yaratish va ulardan foydalanish

Yuklangan vaqt:

12.08.2023

Ko'chirishlar soni:

0

Hajmi:

105.494140625 KB
Mavzu: C++ da dasturlash tilida statik 
kutbxonalar yaratish va ulardan foydalanish
Mundarija
Kirish…………………………………………………………………….3
I.BOB.Asosiy tushuncha va ta’riflar.C++  haqida tushuncha.
1.1 C++ dastulash tili tarixi………..……………………………………..5
1.2    C++ dasturlash tili imkoniyatlari…………………………………,…7
II.BOB.C++ tilida standart funksiya kutubxonalari
2.1    C++ da funksiyalar bilan ishlash…………..………………….…….19
             2.2 Matematik funksiyalar kutubxonasi. ………...……….…….....…24
             2.3 Belgilar bilan ishlash funksiyalari…………………………………...26
             2.4 Turlarni o`zgartirish funksiyalari…………………………………....28
XULOSA………………………………………………………………..30
FOYDALANILGAN ADABIYOTLAR………………………………31
1                                                  KIRISH
                                                                                        
 
          Tadqiqot   mavzusining   dolzarbligi:   Obyektga   yo‘naltirilgan   dasturlash
tillaridan   biri   bo‘lgan   C++   tilining   imkoniyatlarini   batafsil   o‘rganish
raqobatbardosh dasturiy vositalar qurish imkoniyatini yaratadi. Buni hisobga olgan
holda ushbu bitiruv malakaviy ishida C++ tilida mavjud kutubxonalar va ulardagi
imkoniyatlarni   o‘rganish   masalasi   qo‘yilgan.   Bu   til   yetarlicha   boy   kutubxonaga
ega   bo‘lib,   ular   yordamida   dasturiy   vositalar   qurish   ancha   oson   kechadi.   Shu
jihatdan   ham   ishda   qo‘yilgan   masala   hozirgi   kundagi   muhim   ahamiyat   kasb
etuvchi masalalardan hisoblanadi. 
       Ishning maqsadi:   C++ tilining amaliy dasturlar qurishda keng qo‘llaniladigan
kutubxonalarini o‘rganish va ularni dasturiy vositalar qurishga tatbiq etish. 
 Ishda qo’yilgan vazifalar: 
     C++ tilining imkoniyatlarini batafsil o‘rganib chiqish va ishda yoritish; 
     C va C++ tillarida mavjud kutubxonalar va ulardagi imkoniyatlarni ; 
        Amaliy   dasturlar   qurishda   C++   tili   kutubxonalaridan   foydalanishni   yo‘lga
qo‘yish. 
        Tadqiqotning   ilmiy   yangiliklari:   -Amaliy   dasturlar   qurishda   C++   tilining
<ctype.h>,   <string.h>,   <math.h>   va   <time.h>   kutubxonalaridan   samarali
foydalanishni yo‘lga qo‘yish. 
        Tadqiqotning   predmeti   va   obyekti:   C++   tilida   mavjud   imkoniyatlardan
foydalanib, dasturiy vositalar quriladigan turli soha masalalari. 
     Tadqiqotning ilmiy ahamiyati: 
- mavzu bo`yicha ilmiy-uslubiy, nazariy adabiyotlarni o`rganish; 
-   ta‘lim   to`g`risida   davlat   hujjatlari,   DTS   talablari,   ilg`or   mutaxassis   olimlarning
fikrlarini o`rganish; 
2 -  mavzuga aloqadar mavjud internet resurslaridan foydalanish. 
- C++   tilining   mavjud   imkoniyatlardan   faydallanish.       Mazkur   kurs   ishi   ikkita
paragraf,   oltita   bo‘lim,   xulosa   va   adabiyotlar   to‘plamidan             tashkil   topgan.
Mavzuning   o‘rganilish   darajasining   qiyosiy   tahlili:   Ishda   qo`yilgan   masala
o`zining   keng   ko`lamli   amaliy   qo`llanmalariga   ega   bo`lganligi   uchun   bir   qator
yetuk olimlar bu kabi masalalar bilan shug`ullanishgan. Hozirgi kunda ham ilmiy
taqtiqotlar   olib   borilmoqda.Bu   sohada   ish   olib   borgan   olimlardan   bir   qanchasini
keltirib   o`tish   mumkin.   Masalan,   G.Shildt,   R.Sedjvik,   Sh.F.Madraximov,
S.M.Gaynazarov, M.E.Abramyan, A.A.Xoldjigitov, U.E.Adambayev va boshqalar.
Olimlardan   G.   Shildt   C   ++   tilidagi   kutubxonalarni   guruhlarga   ajratib,   o‘zining
kitobida batafsil bayon etgan. 
        Kurs   ishning   tarkibi   va   tuzilishi:   Kurs   ishi   kirish,   ikkita   bob,   xulosa,
foydalanilgan adabiyotlar hamda internet resurslar ro‘yxatidan iborat.
                         1.1  C++ dastulash tili tarixi.
C   olingan   umumiy   maqsad   dasturlash   tili,   Bu   har   ikkala   Oliy   xususiyatlarini
birlashtiradi, va past darajali dasturlash tillari. Salafiy solishtirganda, C dasturlash
tili, eng diqqat ob'ekt  yo'naltirilgan va umumiy dasturiy qo'llab-quvvatlash uchun
to'lanadi.   nomi   "dasturlash   tili   C   »   C   dasturlash   tili   keladi,   Faqatgina   bileşenli
bo'lgan ++ o'zgaruvchining o'sish tezligini bildiradi.
C dasturlash tili keng dasturiy ta'minot ishlab chiqish uchun ishlatiladi. Ya'ni, turli
xil   dasturlarda   yaratish,   operatsion   tizimlar   ishlab   chiqish,   Qurilma   haydovchi,
shuningdek   video   o'yinlar   va   undan   ko'p.   Dasturlash   tili   C   bir   necha   ilovalar
mavjud   -   bepul   kabi,   va   tijorat.   Ular   loyihalar   ishlab   chiqarish:   GNU,   Microsoft
Embarcadero   и   (Borland).   Loyiha   GNU   -   erkin   dasturiy   ta'minot   ishlab   chiqish
uchun bir loyiha (ACT).
C dasturlash tili 1980 yilda yaratilgan, firmasi Bell Laboratories uning yaratuvchisi
xodimi – Bjarne Stroustrup.
3 Ken   Thompson   o'zining   B   tilida   BCPL   ning   ko'p   hossalarini   kiritgan   va   B   da
UNIX operatsion  sistemasining   birinchi   versiyalarini  yozgan.  BCPL   ham, B  ham
tipsiz   til   bo'lgan.   Yani   o'garuvchilarning   ma'lum   bir   tipi   bo'lmagan   -   har   bir
o'zgaruvchi   kompyuter   hotirasida   faqat   bir   bayt   yer   egallagan.   O'zgaruvchini
qanday   sifatda   ishlatish   esa,   yani   butun   sonmi,   kasrli   sonmi   yoki   harfdekmi,
dasturchi   vazifasi   bo'lgan.   C   tilini   Dennis   Ritchie   B   dan   keltirib   chiqardi   va   uni
1972   yili   ilk   bor   Bell   Laboratories   da,   DEC   PDP-11   kompyuterida   qo'lladi.   C
o'zidan oldingi B va BCPL tillarining juda ko'p muhim tomonlarini o'z ichiga olish
bilan   bir   qatorda   o'zgaruvchilarni   tiplashtirdi   va   bir   qator   boshqa   yangiliklarni
kiritdi.   Boshlanishda   C   asosan   UNIX   sistemalarida   keng   tarqaldi.   Hozirda
operatsion   sistemalarning   asosiy   qismi   C/C++   da   yozilmoqda.   C   mashina
arhitekturasiga bog'langan tildir. Lekin yahshi rejalashtirish orqali dasturlarni turli
kompyuter platformalarida ishlaydigan qilsa bo'ladi. 
1983   yilda,   C   tili   keng   tarqalganligi   sababli,   uni   standartlash   harakati   boshlandi.
Buning uchun Amerika Milliy Standartlar Komiteti (ANSI) qoshida X3J11 tehnik
komitet   tuzildi.   Va   1989   yilda   ushbu   standart   qabul   qilindi.   Standartni   dunyo
4 bo'yicha   keng   tarqatish   maqsadida   1990   yilda   ANSI   va   Dunyo   Standartlar
Tashkiloti   (ISO)   hamkorlikda   C   ning   ANSI/ISO   9899:1990   standartini   qabul
qilishdi.   Shu   sababli   C   da   yozilgan   dasturlar   kam   miqdordagi   o'zgarishlar   yoki
umuman o'zgarishlarsiz juda ko'p kompyuter platformalarida ishlaydi. 
C++   1980   yillar   boshida   Bjarne   Stroustrup   tomonidan   C   ga   asoslangan   tarzda
tuzildi.   C++   juda   ko'p   qo'shimchalarni   o'z   ichiga   olgan,   lekin   eng   asosiysi   u
ob'ektlar bilan dasturlashga imkon beradi. Dasturlarni tez va sifatli yozish hozirgi
kunda   katta   ahamiyat   kasb   etmoda.   Buni   ta'minlash   uchun   ob'ektli   dasturlash
g'oyasi   ilgari   surildi.   Huddi   70-chi   yillar   boshida   strukturali   dasturlash   kabi,
programmalarni   hayotdagi   jismlarni   modellashtiruvchi   ob'ektlat   orqali   tuzish
dasturlash sohasida inqilob qildi.
C++ dan tashqari boshqa ko'p ob'ektli dasturlshga yo'naltirilgan tillar paydo bo'ldi.
Shulardan   eng   ko'zga   tashlanadigani   Xerox   ning   Palo   Altoda   joylashgan   ilmiy-
qidiruv   markazida   (PARC)   tuzilgan   Smalltalk   dasturlash   tilidir.   Smalltalk   da
hamma   narsa   ob'ektlarga   asoslangan.   C++   esa   gibrid   tildir.   Unda   C   ga   o'hshab
strukturali dasturlash yoki yangicha, ob'ektlar bilan 
dasturlash   mumkin.   Yangicha   deyishimiz   ham   nisbiydir.   Ob'ektli   dasturlash
falsafasi   paydo   bo'lganiga   ham   yigirma   yildan   oshayapti.   C++   funksiya   va
ob'ektlarning juda boy kutubhonasiga ega. Yani C++ da 
dasturlashni o'rganish ikki qismga bo'linadi. Birinchisi bu C++ ni o'zini o'rganish,
ikkinchisi   esa   C++   ning   standart   kutubxonasidagi   tayyor   ob'ekt/funksiyalarni
qo'llashni o'rganishdir.
                 1.2 C++ dasturlash tili imkoniyatlari 
Har bir nom va har bir o’zgaruvchi ular ustida bajariluvchi amallar aniqlovchi 
turlarga ega bo’ladi. Masalan,  int i;  tavsiflash i o’zgaruvchi int turiga tegishli, 
ya’ni i butun o’zgaruvchi deb aniqlaydi. Tavsiflash - dasturga nom kirituvchi 
5 buyruqdir. Tavsiflash o’zgaruvchining turini aniqlaydi. Tur nom va ifodalardan 
to’g’ri foydalanishni aniqlaydi. Butun tur uchun quyidagi amallar aniqlangan: + , -, 
* va /.
Asosiy turlar
Bevosita apparat ta’minotiga javob beradigan asosiy turlar quyidagilar: char;
short; int; long; float; double. Birinchi to’rtta tur butun kattaliklarni, oxirgi ikkitasi
suzuvchi nuqtali, ya’ni kasr sonlarni tasvirlash uchun ishlatiladi.
char   turidagi   o’zgaruvchi   mazkur   kompyuterda   belgilarni   (odatda   bayt)
saqlash o’lchoviga ega, int turidagi o’zgaruvchi esa mazkur kompyuterdagi butun
arifmetikaga   mos   o’lchovga   ega   (odatda   so’z).   Turlar   bilan   tasvirlangan   butun
sonlar diapazoni  uning o’lchoviga bog’liq bo’ladi (uni  sizeof  buyrug’i yordamida
hisoblash mumkin).
C++ da o’lchovlar char turidagi kattaliklar o’lchovi birligida o’lchanadi. 
Asosiy turlar o’rtasidagi munosabatlarni quyidagicha yozish mumkin:
1 = sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) = sizeof(float) <=
sizeof(double).
Umuman,   asosiy   turlar   xususida   yana   boshqa   narsalarni   faraz   qilish
ma’nosiz.   Xususan,   ko’rsatgichlarni   saqlash   uchun   butun   tur   etarli,   degan   xulosa
barcha   kompyuterlar   uchun   to’g’ri   emas.   Asosiy   turlarga   const   so’zini   qo’shib
tavsiflash   mumkin.   Bu   boshlang’ich   turga   shu   turning   o’zini   beradi,   faqat   bu
holatda   const   turidagi   o’zgaruvchilarning   qiymatlari   initsializatsiyadan   so’ng
o’zgarishi mumkin emas.
const float pi = 3.14;
const char plus = '+'; 
Bittalik   qo’shtirnoqqa   olingan   belgilar   belgi   o’zgarmaslar   hisoblanadi.
Shunga   e’tibor   berish   lozimki,   bu   usulda   tavsiflangan   o’zgarmaslar   xotirada   joy
6 egallamaydi. uning qiymati talab qilingan joyda bevosita ishlatiladi. O’zgarmaslar
initsializatsiya   paytida   tavsiflanishi   shart.   O’zgaruvchilar   uchun   initsializatsiya
shartemas, ammo albatta tavsiya qilinadi. Lokal o’zgaruvchilarni initsializatsiyasiz
kiritish asoslari juda ko’p.
Bu   turlarning   ixtiyoriy   kombinatsiyasiga   quyidagi   arifmetik   amallar
qo’llanilishi mumkin: 
+ (plyus, unar va binar);
- (minus, unar va binar);
* (ko’paytirish);
/ (bo’lish).
Hamda taqqoslash amallari:
== (teng);
!= (teng emas);
< (kichik);
> (katta);
<= (kichik yoki teng);
>= (katta yoki teng).
Agar operandlar qo’yilgan shartni qanoatlantirsa , u holda taqqoslash 
amallari natijada 1 qiymatni beradi, aks holda esa 0 qiymatni beradi.
Butunga bo’lish amali butun natijani beradi: 7/2 = 3. Butun kattaliklar ustida
% - qoldiqni hisoblash amali bajariladi: 7%2 = 1.
O’zlashtirishda va arifmetik amallarda C++ ularni guruhlash uchun asosiy 
turlar o’rtasida barcha ma’noli almashtirishlarni bajaradi:
7 double d = 1;
int i = 1;
d = d + i;
i = d + i;
Satriy turlar
C++   da   belgilarning   biron-bir   ketma-ketligi   (massivlar)   dan   iborat   matn
qatorlarini xotirada saqlash uchun maxsus AnsiString ma’lumotlar turi qo’llaniladi.
«Stroka» - «Satr» turidagi o’zgaruvchilar barcha boshqa o’zgaruvchilar kabi
e’lon  va initsializatsiya qilinadi.
Kompilyatorga   navbatdagi   belgilar   ketma-ketligi   yangi   o’zgaruvchining
nomi emas, balki  satr  ekanligini bildirish uchun satrlar  bittalik qo’shtirnoq ichiga
olinadi.
Misol:
AnsiString st = ‘matn qatori’;
Satr turidagi o’zgaruvchilar ustida boshqa satr o’zgaruvchilar bilan qo’shish 
amali bajarilishi mumkin. Bu amal ikkita satrni ularning kelish tartibida 
birlashtirish deb tushuniladi.
Misol:
AnsiString s1 = ‘qatori’;
AnsiString s2 = ‘ matn’;
AnsiString s = s1 + s2;
Natijada s  o’zgaruvchi s1 va s2 o’zgaruvchilardan tashkil topgan ‘stroka 
teksta’ degan qiymatni qabul qiladi.
8 Qo’shimcha turlar
Borland   C++   da   butun   qiymatli   o’zgaruvchilarning   turlarini   qo’shimcha
ajratish   imkoni   mavjud.   Bu   holda   o’zgaruvchilarning   barcha   tur   nomlari
quyidagicha   yoziladi   -   int   X,   bu   erda   X   o’zgaruvchiining   bitlardagi   maydon
o’lchami.   X   quyidagi   qiymatlardan   birini   qabul   qilishi   mumkin:   8,   16,   32   va   64.
Bu   turdagi   o’zgaruvchilardan   foydalanish   standart   turda   aniqlangan
o’zgaruvchilardan foydalanishdan farq qilmaydi.
Quyidagi jadvalda bunday turlar bilan ishlash yaqqol ko’rsatilgan.
Tur nomi O’zgaruvchini tavsiflashga misol O’lcham
__int8 __int8 c = 128; 8  bit
__int16 __int16 s = 32767; 16  bit
__int32 __int32 i = 123456789; 32  bit
__int64 __int64 big = 12345654321; 64  bit
unsigned __int64 unsigned __int64  huge = 1234567887654321; 64  bit
Turlarni o’zgartirish protseduralari
Standart turlarni o’zgartirish
C++ ning ma’lumotlarning turlari ustida qattiq nazorati tufayli imkoni 
boricha qiymatlarni saqlovchi, turlarni o’zgartirish amallari kiritilgan.
Boshqa o’zgaruvchidan ma’lum bir tur qiymatlarini olish uchun quyidagi 
konstruksiya ishlatiladi:  (yangi tur)o’zgaruvchi.
Misol:
short S = 100;
int I = (int)S;
9 Bu misol ortiqcha buyruqlarga ega. C++ da ko’pgina tur o’zgaruvchilarining
to’g’ridan-to’g’ri o’zlashtirilishi nazarda tutilgan, ammo ba’zi hollarda bu 
buyruqlar majburiy hisoblanadi (masalan, o’zgaruvchining qiymatini biror 
funksiyaga uzatishda).
Sonli qiymatlarni satrga almashtirish
C++   turlarning   to’g’ridan-to’g’ri   almashtirishda   o’zgaruvchini   uning   o’nlik
ko’rinishidan   belgilar   qatori   ko’rinishiga   yo’l   qo’ymaydi,   chunonchi,   ular
shakllarning   ko’gina   komponentalarida   ishlatiladi.   To’g’ridan-to’g’ri   almashtirish
faqatgina   asosiy   va   qo’shimcha   turlar   uchun   amalga   oshiriladi.   Massiv
hisoblanadigan   satr   kattaliklar   hosilaviy   tur   bo’lganligi   sababli   bunday
almashtirishga yo’l qo’yilmaydi.
Bunday   almashtirishlar   uchun   quyidagi   standart   almashtirish   funksiyalari
ishlatiladi:   IntToStr,   StrToInt,   FloatToStr   va   boshqalar.   Ko’pchilik   ma’lumotlar
turlari uchun shu kabi satrga va teskari o’tkazish funksiyalari mavjud.
Misol:
char S[10]; // belgilar massivi
int I = 100; // butun qiymatli o’zgaruvchi
S = IntToStr(I); // o’tkazish
Shartli buyruq
Dasturda tarmoqlanishni amalga oshirish, ya’ni ba’zi faktorlarga bog’liq 
holda turli amallar bajarilishi uchun  if  buyrug’i ishlatiladi.
Buyruq quyidagi formatga ega : 
if (ifoda){ 1 - operator;} [else { 2 - operator;}] 
10 if buyrug’ining bajarilishi ifodaning qiymatini hisoblashdan boshlanadi. 
So’ngra ish quyidagi sxema asosida amalga oshiriladi: 
 agar ifoda rost bo’lsa (ya’ni 0 dan farqli), u holda 1 - operator 
bajariladi.
 agar ifoda yolg’on bo’lsa (ya’ni 0 ga teng), u holda 2 - operator 
bajariladi. 
 agar ifoda yolg’on va 2 - operator yo’q bo’lsa (kvadrat qavsga zarur 
bo’lmagan konstruktsiya kiritiladi), u holda if dan keyingi buyruq 
bajariladi. 
Misol: 
if (i < j)   
{
i++;
}
else 
{
j = i-3;
i++; 
}
Bu misol 1 - operatorning o’rnida ham, 2 -  operatorning o’rnida ham 
murakkab konstruktsiya qatnashishi mumkinligini bildiradi. Ichma-ich  if  
buyrug’ini ishlatish imkoniyati ham mavjud.  if buyrug’i boshqa if  buyrug’ining if
yoki  else konstruktsiyalari ichida qatnashishi ham mumkin.
 
Misollar : 
int t = 2;
int b = 7;
int r = 3;
if (t>b) 
11 {
 if (b < r)
 {
   r = b;
 }
} 
else
{
 r = t;
 return (0); 
} 
Bu dastur bajarilganda r ning qiymati 2 ga teng bo’ladi.
1 - Misol.
Dastur tasnifi
Masala quyidagicha qo’yiladi: Standart o’lchovli (8x8) shaxmat taxtasiga bug’loy
donlari   quyidagicha   Qo’yiladi:   birinchi   maydonga   bitta   don,   keyingi   har   bir
maydonga   oldingi   maydonga   qo’yilgan   donning   ikki   baravarida   don   qo’yiladi,
ya’ni   birinchi   maydonga   bitta,   ikkinchi   maydonga   ikkita,   uchinchiga   to’rtta   va
hakazo. Taxtaning barcha maydonlaridagi donlarning umumiy sonini topmng.
Zarur ko’nikmalar
Mazkur dasturni yozish uchun quyidagi ko’nikmalargi ega bo’lish zarur:
1. Shakllar yaratish uchun kamida standart panelning oddiy 
komponentalaridan tashkil topgan dasturlar yaratish muhidan 
foydalanishni bilish.   Taymer sistemali komponentadan foydalanishni
bilish.
2. O’zgaruvchilar turlarini va ularning qiymatlari chegarasini bilish.
12 3. Sonli o’zgaruvchilarni satrga o’tkazuvchi standart protseduralarni 
bilish.
4. Shartli buyruqni ishlatishni bilish.
Muammolar
1.   Mazkur   dasturning   asosiy   muammosi   unsigned   __ int 64   turidagi   satr
o’zgaruvchiga   o’tkazuvchi   standart   funksiyani   ishlatishning   va   shuncha   katta
sonning   boshqa   tur   o’zgaruvchisida   saqlash   imkoniyatining   yo’qligidadir.   Bu
muammoni   hal   qilish   uchun     unsigned   __ int 64   tur   o’zgaruvchini   ikkita   __ int 64
turiga va so’ngra mos ravishda satrga o’tkazuvchi standart funksiyalarni (ya’ni shu
nom   bilan,   ammo   boshqa   tur   uzatuvchi   parametrlar   bilan)   yuklovchi   funksiya
tashkil qilingan. Dastur kodida bu funksiya alohida izoh bilan ajratib ko’rsatilgan.
2.   Mazkur   dasturning   ikkinchi   muammosi   quyidagilardan   iborat:   agar   shaklga
faqat   natijaviy   qiymatlarni   chiqarsak,   u   holda   dasturning   ko’rsatmali   ishlashi
yo’qoladi. Bu esa bizni sikllardan foydalanishdan mahrum qiladi.
Bu   muammoni   sikllarni   global   o’zgaruvchilardan   foydalanib   ishlatishni
simulyatsiya   qilish   yo’li   bilan  hal   qilinadi.  Shunday   qilib,  siklning   tanasi   alohida
protsedura   sifatida   tashkil   qilinadi   va   biror-bir   xodisada   u   protsedura   ishlatiladi,
masalan,   foydalanuvchi   tomonidan   tugmachalar   bosilganda   yoki   taymerning
holatlarida. 
Masalaning yechimi
Shakl
Bu dasturni amalga oshirish uchun quyidagi komponentalarishlatiladi:  «Metka» 
(Label), «Knopka» (Button) va «Taymer» (Timer). Birinchi ikkita komponenta 
Standard bandida, taymer esa  System bandida joylashgan.
13 Natijalarni tasvirlash uchun Label sinfi komponentalarining  “Caption” xossasi 
qiymatlarini o’zgartirish zarur.
Tugmachalar uchun  onClick  xodisasining va taymer uchun   onTimer  xodisasining
harakatlarni hosil qilinadi  (dastur kodi yoziladi). 
14 Boshlash
O’zgaruvchilarni 
initsializatsiya qilish 
S = 1, I = 1, K=1
Qiymatlarni 
ekranga 
chiqarish
Qiymatlarni 
o’zgartirish
I = I * 2, S = S + K,
K = K + 1
Tamom Yo’q haBlok sxema
Dastur kodi
/* __int64 tur bilan ishlatish uchun  IntToStr  funksiyasini oddiy yuklash */
AnsiString __fastcall IntToStr(unsigned __int64 Value)
{
 __int64 k = floor(Value/100000);
 __int64 l = Value - k*100000;
 if(k!=0)
  {return IntToStr(k)+IntToStr(l);}
15I <= 64
Ishni
tugallash-ga  else
  {return IntToStr(l);}
}
//----------------------------------------------------------------------------
/* Global o’zgaruvchilar*/
unsigned __int64 s = 1, i = 1;
short j = 1;
char T = 0;
//----------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 if(j<8*8)     //Maydonning navbatdagi =iymatini hisoblash
 {
  j++;
  i *= 2;
  s += i;
 }
 Label4->Caption = IntToStr(j); // Ularni shaklga chi=arish
 Label5->Caption = IntToStr(i);
 Label6->Caption = IntToStr(s);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
16 {
 T = !T;    // Taymerdan foydaldnishni o’zgartirish
 if(!T)     //Sarlavha
  {Button2->Caption = "Pusk";}
 else
  {Button2->Caption = "Pauza";}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 if(T){TForm1:Button1Click(Form1);}  // Taymerning tiki
}
                            2.1  C++ da funksiyalar bilan ishlash.
17 C   ++   dasturlash   tilida   standart   kutubxona   sinflar   va   funktsiyalar   to'plamini
anglatadi. Standart kutubxona bir nechta asosiy konteynerlarni, ushbu konteynerlar
bilan ishlash funktsiyalarini, ob'ektlarni, satr va oqimlarning asosiy turlarini, ba'zi
til xususiyatlarini  va amallarni bajarish uchun tez-tez ishlatiladigan funktsiyalarni
o`z ichiga oladi. Masalan, sonning kvadrat ildizini topish. Standart kutubxonaning
funktsional xususiyatlari std nomlar fazosida e'lon qilinadi.
Dasturlash   mobaynida   bir   xil   ifodalarni,   hisoblash   jarayonlarini   qayta   –   qayta
hisoblashga   to`g`ri   keladi.   Dasturlash   tillarida,   kompyuter   hotirasini   va
dasturchining   vaqtini   tejash   maqsadida,   bunday   takkorlanuvchi   jarayonlarni
dasturda   ajratib   yozib,   unga   asosiy   daturdan,   boshqa   funksiyalardan   murojaat
qilish   imkoniyatlari   keltirilgan
Dasturning   istalgan   qismidan   murojaat   qilib,   bir   necha   bor   ishlatish   mumkin
bo`lgan operatorlar  guruhiga  funksiya deyiladi.
C++   funksiyalar   tili   deyiladi.   Chunki   dasturda   kamida   bitta   main   funksiyasi
bo'ladi. Asosiy dastur, asosiy funksiya deganda aynan manashu   main   funksiyasini
tushunamiz.
Asosiy   dasturdan   (yoki   chaqiruvchi   funksiyadan)   xech   qanday   parameter   qabul
qilib olmaydigan funksiyalarga ,parametrsiz funksiyalar deyiladi.
Parametrsiz funksiyaning o`zi ham ikki hil bo`lishi mumkin:
1)Asosiy   dasturga   (yoki   chaqiruvchi     funksiyaga)     natijani   qaytaruvchi.
2)   void   turidagi   funksiya   bo'lib,   asosiy   dasturdan   (yoki   chaqiruvchi   funksiyadan)
xech   qanday   parametr   qabul   qilib   olmaydi   xam,   asosiy   dasturga   xech   qanday
natija    qaytarmaydi    ham. Parametrsiz funksiyaga murojaat qilishda dastur tanasida
funksiya   nomi   yoziladi.   Dasturda   funksiya   nomi   operatorlar   kabi   ishlatiladi.
Parametrsiz   funksiyada   asosiy   dasturning   barcha   global   o`zgaruvchilaridan
foydalanish mumkin.
18   Global   o`zgaruvchilar   ham   asosiy   dasturda,   ham   funksiyada   ishlatish   mumkin
bo'lgan o`zgaruvchilar global o'zgaruvchilar deyiladi. Global o'zgaruvchilar asosiy
dasturda e`lon qilishi kerak. 
Lokal   o`zgaruvchilar   faqat   funksiyada   ishlatish   mumkin   bo'lgan   o'zgaruvchilarga
local  o'zgaruvchilar   deyiladi. Ular   funksiyada   e`lon  qilinadi.  Funksiyada  yana  bir
nechta ichki funksiyalardan  foydalanish mumkin.
Blok   ichida   e'lon   qilingan   o'zgaruvchilar,   shu   blok   uchun   lokal   o'zgaruvchilar
hisoblanadi.   Bu   o'zgaruvchilardan     faqat   blok   ichida   foydalanish   mumkin.
Parametrli   funksiyalar   Asosiy   dasturdan   (funksiyadan)   chaqiriluvchi   funksiyaga
uzatilgan   parametrlarni   qabul   qilib   qayta   ishlovchi     funksiyalar   parametrli
funksiyalar  deyiladi.
Qiymat   parametrlar   –   asosiy   dasturdan   funksiyaga   uzatiladigan   o'zgaruvchilar
qiymatlarni   qabul   qilib   oluvchi   parametrlar.   Funksiyaga   murojaat   qilinganida
qiymat   parametrlari   uchun   xotiradan   joy   ajratiladi.   Funksiya   tugaganida   qiymat
parametrlari uchun ajratilgan  xotira  bo`shatiladi.
Ko'rsatkich   parametrlar   -     asosiy   dasturdan   funksiyaga   uzatiladigan
o'zgaruvchilarning xotiradagi adresni qabul qilib oluvchi  parametrlar.
Ko'rsatkich   parametrlari   ustida   bajarilgan   har   qanday   o'zgarish,   asosiy   dasturdagi
o'zgaruchilarning xotira adresida sodir bo'ladi. (Ya'ni asosiy dasturdagi o'zgaruvchi
qiymati o`zgaradi.)
Eslatma: Qiymat parametrlari va ko'rsatkich parametrlar toifasi, asosiy dasturdagi
qiymati    uzatilayotgan    o`zgaruvchilar    toifasi bilan bir xil    bo`lishi lozim.
Funksiyadan   chiqish     ixtiyoriy   funksiyadan   chiqish   uchun   return   hizmatchi   so`zi
ishlatiladi.
Misol   1 :   To'g'ri burchakli uchburchakning katetlari berilgan. (3, 4), (6, 8), (12, 5)
bo'lgan   xollar     uchun   uchburchak   gipotenuzasini     hisoblovchi   dastur   tuzilsin.
1) Parametrli funksiya
19 #include <iostream.h>
#include <math.h>
// funksiya prototipi
float hisobla(float , float );
int main()
{
float c;
c = hisobla(3, 4);
cout << c << endl;
c = hisobla(6, 8);
cout << c << endl;
c = hisobla(12, 5);
cout << c << endl;
system ("pause");
return 0;
}
float hisobla(float a, float b)
{
//lokal o'zgaruvchi
float natija;
natija = sqrtf(a*a + b*b);
return natija;
}
2) void toifasidagi parametrli funksiya
#include <iostream.h>
#include <math.h>
// funksiya prototipi
void hisobla(float , float );
int main()
20 {
hisobla(3, 4);
hisobla(6, 8);
hisobla(12, 5);
system ("pause");
return 0;
}
void hisobla(float a, float b)
{
float c;
c = sqrtf(a*a + b*b);
cout << c << endl;
}
Misol 2:   Global va lokal o'zgaruvchilarga murojaatni    o'rganish
#include <iostream.h>
int x = 5; // global o'zgaruvchi
int main()
{
int x = 9; // lokal o'zgaruvchi
std::cout << "lokal    x=" <<      x << std::endl;
std::cout << "global x=" << ::x << std::endl;
system ("pause");
return 0;
}
Misol 3:   Kiritilgan    n sonini 3 - darajasini hisoblovchi funksiya    tuzilsin
#include <iostream.h>
void kub (int *);
int main()
{
int n;
21 cout << "n="; cin >> n;
kub (&n);
cout << "n ning qiymati =" << n << endl;
system ("pause");
return 0;
}
void kub (int *nPtr)
{
*nPtr = *nPtr * *nPtr * *nPtr;
}
Misol 4:   Ikkita son yig'indisini    funksiyaorqalihisoblovchidasturtuzilsin
#include <iostream.h>
// funksiyaprototipi
int    sum(int , int);
void sum(int , int, int *);
int    sum(int *, int *);
void sum(int *, int *, int *);
int main()
{
int a, b, c;
cout<< "a="; cin>> a;
cout<< "b="; cin>> b;
c = sum(a, b);
cout<< "1-sul natijasi=" << c <<endl;
sum(a, b, &c);
cout<< "2-sul natijasi=" << c <<endl;
c = sum(&a, &b);
cout<< "3-usul natijasi=" << c <<endl;
sum(&a, &b, &c);
cout<< "4-usul natijasi=" << c <<endl;
22 system ("pause");
return 0;
}
// 1 - usul
int sum(int son1, int son2)
{
intnatija;
natija = son1 + son2;
return natija;
}
// 2 - usul
void sum(int son1, int son2,int *natija)
{
*natija = son1 + son2;
}
// 3 - usul
int sum(int *son1, int *son2)
{
intnatija;
natija = *son1 + *son2;
return natija;
}
// 4 - usul
void sum(int *son1, int *son2,int *natija)
{
*natija = *son1 + *son2;
}
23  
             2.2  Matematik funksiyalar kutubxonasi (math.h) 
Funksiyaprototipi Bajaradiganamali
intabs(int i)   Isonni absolyut qiymatini qaytaradi
doubleacos(double x)   Radianda berilgan x argumentni 
arkkosinus qiymatini qaytaradi
doubleasin(double x)   Radianda  berilgan x argument 
arksinus qiymatini  qaytaradi
doubleatan(double x)   Radianda  berilgan x argumentni 
arktangens qiymatini qaytaradi
double atan2(double x, double y)   Radianda berilgan x/y nisbatning 
arktangensi qiymatini qaytaradi
doubleceil(double x)   Haqiqiy   x   qiymatini   unga   eng   yaqin  
katta   butun   songacha   aylantiradi   va  
24 uni   h aqiqiy ko‘rinishda qaytaradi
doublecos(double x)   x radianga teng bo‘lgan burchakni 
kosinusini qaytaradi
doublecosh(double x)   x radianga teng bo‘lgan burchaknigi 
perbolik kosinusini qaytaradi
doubleexp(double x)   Yex   qiymatni   qaytaradi
doublefabs(double x)   Haqiqiy sonni absolyut qiymatini 
qaytaradi
doublefloor(double x)   Haqiqiy x  q iymatni eng yaqin kichik
songa aylantira di va uni haqiqiy son
ko‘rinishida qaytaradi
Math   standart   kutubxonasidagi   funksiyalardan   foydalanish   uchun   cmath  
sarlovha   faylini   qo ’ shib   qo ’ yish   kerak .  
Misol:  
#include <iostream>
#include <cmath>  #include <cctype>  using namespace std;  int main() 
{  int x;  double u, v;  
cout<< "Line 1: Uppercase a is "  <<static_cast<char>(toupper('a'))  
<<endl; //Line 1  u = 4.2; //Line 2  v = 3.0; //Line 3  
cout<< "Line 4: " << u << " to the power of "  << v << " = " << pow(u, v) 
<<endl; //Line 4  cout<< "Line 5: 5.0 to the power of 4 = "  
<<pow(5.0, 4) <<endl; //Line 5  u = u + pow(3.0, 3); //Line 6  
cout<< "Line 7: u = " << u <<endl; //Line 7  x = -15; //Line 8  
cout<< "Line 9: Absolute value of " << x  << " = " << abs(x) <<endl; //Line 
9  return 0;  
25 }  
Дастуришлашинингнатижаси :  
Line 1: Uppercase a is A  
Line 4: 4.2 to the power of 3 = 74.088  
Line 5: 5.0 to the power of 4 = 625  
Line 7: u = 31.2  
Line 9: Absolute value of -15 = 15 288  
                  2,3 Belgilar bilan ishlash funksiyalari
Programmalash amaliyotida belgilarni qaysidir oraliqqa tegishli ekanligin 
ibilish zarur bo‘ladi. Buni «ctype.h» sarlavha faylida e’lon qilingan funksiyala 
ryordamida aniqlash mumkin.  
Quyida ularning bir qismining tavsifi keltirilgan:  isalnum() – belgi raqam 
yoki harf (true) yoki yo‘qligini (false) aniqlaydi;  isalpha() - belginiharf (true) yoki 
yo‘qligini (false) aniqlaydi;  
isascii() – belgini kodi 0..127 oralig‘ida (true) yoki yo‘qligini (false) 
aniqlaydi;  isdigit() – belgini raqamlar diapazoniga tegishli (true) yoki yo‘qligini 
(false) aniqlaydi.  
Bu  funksiyalardan foydalanishga misol keltiramiz.  
26 #include <iostream>  #include <ctype.h>  #include <string.h>  using 
namespace std;  int main()  {  char satr[5];  intxato;  do  {  xato=0;  
cout<<"\nTug\'ilgan yilingizni kiriting: ";  cin.getline(satr,5);  
for (inti=0; i<strlen(satr) && !xato; i++)  
{  
if(isalpha(satr[i]))  
{  
cout<<"Harfkiritdildi!";  xato=1;  }  else  
if(iscntrl(satr[i]))  
{  
cout<<"Boshqaruv belgisi kiritildi!";  xato=1;  }  else  
if(ispunct(satr[i]))  
{  
cout<<"Punktuatsiya belgisi kiritildi!";  xato=1;  }  else  
if (!isdigit(satr[i]))  
{  
cout<<"Raqamdan farqli belgi kiritildi!";  xato=1;  
}  }  if (!xato)  {  
cout<< "Sizni tug\'ilgan yilingiz: "<<satr;  return 0;  
}  
} while (1);
}  
Programmada   foydalanuvchiga   tug‘ilgan   yilini   kiritish   taklif   etiladi.
Kiritilgan sana satr o‘zgaruvchisiga o‘qiladi va agar satrning har bir belgisi (satr[i])
harf   yoki   boshqaruv   belgisi   yoki   punktuatsiya   belgisi   bo‘lsa,   shu   haqda   xabar
beriladi   va   tug‘ilgan   yilni   qayta   kiritish   taklif   etiladi.   Programma   tug‘ilgan
yil( to‘rttaraqam) to‘g‘ri kiritilganda “Sizni tug'ilgan yilingiz: XXXX” satrini chop
qilish bilan o‘z ishini tugatadi.  
27                2,4 Turlarni   o‘zgartirish   funksiyalari 
Satrlar   bilan   ishlashda   satrk   o‘rinishida   berilgan   sonlarni,   son   turlaridagi
qiymatlarga aylantirish yoki teskari amalni bajarishga to‘g‘ri keladi. C++   tilining
«stdlib.h»   kutubxonasida   bu   amallarni   bajaruvchi   funksiyalar   to‘plami   mavjud.
Quyida nisbatan ko‘p ishlatiladigan funksiyalar tavsifi keltirilgan.  
atoi( ) funksiyasining sintaksisi
intatoi(const char* ptr);  
ko‘rinishga   ega   bo‘lib,   ptr   ko‘rsatuvchi   ASCIIZ-satrni   int   turidagi   songa
o‘tkazishni   amalga   oshiradi.   Funksiya   satr   boshidan   belgilarni   songa   aylantira
boshlaydi   va   satr   oxirigacha   yoki   birinchi   raqam   bo‘lmagan   belgigacha   ishlaydi.
Agar   satr   boshida   songa   aylantirish   mumkin     bo‘lmagan   belgi   bo‘lsa,   funksiya   0
qiymatini   qaytaradi.   Lekin,   shunga   e’tiborberish   kerakki,   “0”   satri   uchun   ham
funksiya   0   qaytaradi.   Agar   satrni   songa   aylantirishdagi   hosil   bo‘lgan   son   int
chegarasidan chiqib ketsa, sonning kichik ikki bayt inatija sifatida qaytariladi.  
Misol uchun
#include <stdlib.h>  #include <iostream.h>int main()  {  char 
str[]="32secund";  inti=atoi(str);  cout<<i<<endl;  return 0;  
}  
Programmasining   natijasi   sifatida   ekranga   32   sonini   chop   etadi.   Agar   str
qiymati   ”100000”   bo‘lsa,   ekranga   -31072   qiymati   chop   etiladi,   chunki   100000
sonning ichki ko‘rinishi  0x186A0 va uning oxirgi  ikki baytidagi  0x86A0 qiymati
31072 sonining qo‘shimcha koddagi ko‘rinishidir.  
atol()   funksiyasi   huddi   atoi()   funksiyasidek     amal   qiladi,   faqat   funksiya
natijasi   long   turida   bo‘ladi.   Agar   hosil   bo‘lgan   son   qiymati   long   chegarasiga
sig‘masa, funksiya kutilmagan qiymatni qaytaradi.  
atof()  funksiyasi e’loni   doubleatof (const char* ptr);  
28 ko‘rinishida bo‘lib, ptr ko‘rsatuvchi ASCIIZ-satrni double turidagi suzuvchi
nuqtali   songa   o‘tkazishni   amalga   oshiradi.   Satr   suzuvchi   nuqtali   son   formatida
bo‘lishi   kerak.   Songa   aylantirish   birinchi   formatga   mos   kelmaydigan   belgi
uchraguncha  yoki satr  oxirigacha davom  etadi.  
strtod() funksiyasi atof() funksiyasidan farqli ravishda satrni double turidagi
songa   o‘tkazishda   konvertatsiya   jarayoni   uzilgan   paytda   aylantirish   mumkin
bo‘lmagan   birinchi   belgi   adresini   ham   qaytaradi.   Bu   o‘z   navbatida   satrni   xato
qismini qayta  ishlash  imkonini beradi.  
strtod() funksiyasining  sintaksisi
double  strtod(const char *s, char **endptr);  
ko‘rinishga   ega   va     endptr   ko‘rsatkichi   konvertatsiya   qilinishi   mumkin
bo‘lmagan birinchi belgi adresi. 
itoa() valtoa() funksiyalari mosravishda int va long turidagi sonlarni satrga 
ko‘rinishga o‘tkazadi. Bu funksiyalar  mosravishda quyidagi  sintaksisga  ega:  
char* itoa(intnum, char *str, int radix);   va
char* ltoa(long num, char *str, int radix);  
Bu funksiyalar num sonini radi x argumentda ko‘rsatilgan sanoq 
sistemasidagi ko‘rinishini str satrda hosil qiladi.
                                                    XULOSA
      Ushbu kurs ishida qaralgan Standart kutubxona funksiyalari va ulardan 
foydalanish mavzusi ostida qo‘yilgan masalalarni o‘rganish bo‘yicha quyidagilar 
bajarildi: 
29 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 <ctype.h>, <string.h>, <math.h>
va <time.h> 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.
     FOYDALANILGAN ADABIYOTLAR VA INTERNET RESURSLARI 
I. A. Karimov ―Yuksak ma‘naviyat yengilmas kuch.  T. Ma‘naviyat, 2010 y. 173 ‖
s. 
2. I. A. Karimov ―O‘zbekiston mustaqillikka erishish ostonasida  T.O‘zbekiston 	
‖
2011 y. 432 s. 
30 3. Г.Шилдт –―Полный справочник по C++  – М-2006., 801 стр. ‖
4.Р.Седжвик – ―Фундаментальные алгоритмы на С++  – М 2001., 687 стр. 	
‖
5. Ш.Ф.Мадрахимов, С.М.Гайназаров ―С++ тилида программалаш асослари	
‖
– Тошкент-2009 й., 196 6. М.Э.Абрамян ―Электронный задачник по 
программированию  Ростов - на - Дону 2005 г. 182 стр. 7. A.A.Xaldjigitov, 	
‖
Sh.F.Madraximov, U.E.Adambayev, E.A Eshboyev, Informatika va dasturlash. 
T.:O‗zMU, 2005 y, -148 s. 8. Н.Н.Непейвода- Стили и методы 
программирования. Интернет университет информационных технологий. 
INTUIT.ru, 2005 г., 320 стр. 
9. O.M.Shukurov, E.A.Eshboyev, B.H.Shovaliyev – ―Delphi va C++ algoritmik 
tillarida dasturlash  – Qarshi-2012 y., 228 s. 	
‖
10.www.cplusplus.com 
11.www.acm.timus.ru 
12.www.codeforces.ru 
13.www.cyberforum.ru 
14.www.cybern.ru 
15.www.delphisources.ru 
16.ziyonet.uz
31

Mavzu: C++ da dasturlash tilida statik kutbxonalar yaratish va ulardan foydalanish Mundarija Kirish…………………………………………………………………….3 I.BOB.Asosiy tushuncha va ta’riflar.C++ haqida tushuncha. 1.1 C++ dastulash tili tarixi………..……………………………………..5 1.2 C++ dasturlash tili imkoniyatlari…………………………………,…7 II.BOB.C++ tilida standart funksiya kutubxonalari 2.1 C++ da funksiyalar bilan ishlash…………..………………….…….19 2.2 Matematik funksiyalar kutubxonasi. ………...……….…….....…24 2.3 Belgilar bilan ishlash funksiyalari…………………………………...26 2.4 Turlarni o`zgartirish funksiyalari…………………………………....28 XULOSA………………………………………………………………..30 FOYDALANILGAN ADABIYOTLAR………………………………31 1

KIRISH Tadqiqot mavzusining dolzarbligi: Obyektga yo‘naltirilgan dasturlash tillaridan biri bo‘lgan C++ tilining imkoniyatlarini batafsil o‘rganish raqobatbardosh dasturiy vositalar qurish imkoniyatini yaratadi. Buni hisobga olgan holda ushbu bitiruv malakaviy ishida C++ tilida mavjud kutubxonalar va ulardagi imkoniyatlarni o‘rganish masalasi qo‘yilgan. Bu til yetarlicha boy kutubxonaga ega bo‘lib, ular yordamida dasturiy vositalar qurish ancha oson kechadi. Shu jihatdan ham ishda qo‘yilgan masala hozirgi kundagi muhim ahamiyat kasb etuvchi masalalardan hisoblanadi. Ishning maqsadi: C++ tilining amaliy dasturlar qurishda keng qo‘llaniladigan kutubxonalarini o‘rganish va ularni dasturiy vositalar qurishga tatbiq etish. Ishda qo’yilgan vazifalar: C++ tilining imkoniyatlarini batafsil o‘rganib chiqish va ishda yoritish; C va C++ tillarida mavjud kutubxonalar va ulardagi imkoniyatlarni ; Amaliy dasturlar qurishda C++ tili kutubxonalaridan foydalanishni yo‘lga qo‘yish. Tadqiqotning ilmiy yangiliklari: -Amaliy dasturlar qurishda C++ tilining <ctype.h>, <string.h>, <math.h> va <time.h> kutubxonalaridan samarali foydalanishni yo‘lga qo‘yish. Tadqiqotning predmeti va obyekti: C++ tilida mavjud imkoniyatlardan foydalanib, dasturiy vositalar quriladigan turli soha masalalari. Tadqiqotning ilmiy ahamiyati: - mavzu bo`yicha ilmiy-uslubiy, nazariy adabiyotlarni o`rganish; - ta‘lim to`g`risida davlat hujjatlari, DTS talablari, ilg`or mutaxassis olimlarning fikrlarini o`rganish; 2

- mavzuga aloqadar mavjud internet resurslaridan foydalanish. - C++ tilining mavjud imkoniyatlardan faydallanish. Mazkur kurs ishi ikkita paragraf, oltita bo‘lim, xulosa va adabiyotlar to‘plamidan tashkil topgan. Mavzuning o‘rganilish darajasining qiyosiy tahlili: Ishda qo`yilgan masala o`zining keng ko`lamli amaliy qo`llanmalariga ega bo`lganligi uchun bir qator yetuk olimlar bu kabi masalalar bilan shug`ullanishgan. Hozirgi kunda ham ilmiy taqtiqotlar olib borilmoqda.Bu sohada ish olib borgan olimlardan bir qanchasini keltirib o`tish mumkin. Masalan, G.Shildt, R.Sedjvik, Sh.F.Madraximov, S.M.Gaynazarov, M.E.Abramyan, A.A.Xoldjigitov, U.E.Adambayev va boshqalar. Olimlardan G. Shildt C ++ tilidagi kutubxonalarni guruhlarga ajratib, o‘zining kitobida batafsil bayon etgan. Kurs ishning tarkibi va tuzilishi: Kurs ishi kirish, ikkita bob, xulosa, foydalanilgan adabiyotlar hamda internet resurslar ro‘yxatidan iborat. 1.1 C++ dastulash tili tarixi. C olingan umumiy maqsad dasturlash tili, Bu har ikkala Oliy xususiyatlarini birlashtiradi, va past darajali dasturlash tillari. Salafiy solishtirganda, C dasturlash tili, eng diqqat ob'ekt yo'naltirilgan va umumiy dasturiy qo'llab-quvvatlash uchun to'lanadi. nomi "dasturlash tili C » C dasturlash tili keladi, Faqatgina bileşenli bo'lgan ++ o'zgaruvchining o'sish tezligini bildiradi. C dasturlash tili keng dasturiy ta'minot ishlab chiqish uchun ishlatiladi. Ya'ni, turli xil dasturlarda yaratish, operatsion tizimlar ishlab chiqish, Qurilma haydovchi, shuningdek video o'yinlar va undan ko'p. Dasturlash tili C bir necha ilovalar mavjud - bepul kabi, va tijorat. Ular loyihalar ishlab chiqarish: GNU, Microsoft Embarcadero и (Borland). Loyiha GNU - erkin dasturiy ta'minot ishlab chiqish uchun bir loyiha (ACT). C dasturlash tili 1980 yilda yaratilgan, firmasi Bell Laboratories uning yaratuvchisi xodimi – Bjarne Stroustrup. 3

Ken Thompson o'zining B tilida BCPL ning ko'p hossalarini kiritgan va B da UNIX operatsion sistemasining birinchi versiyalarini yozgan. BCPL ham, B ham tipsiz til bo'lgan. Yani o'garuvchilarning ma'lum bir tipi bo'lmagan - har bir o'zgaruvchi kompyuter hotirasida faqat bir bayt yer egallagan. O'zgaruvchini qanday sifatda ishlatish esa, yani butun sonmi, kasrli sonmi yoki harfdekmi, dasturchi vazifasi bo'lgan. C tilini Dennis Ritchie B dan keltirib chiqardi va uni 1972 yili ilk bor Bell Laboratories da, DEC PDP-11 kompyuterida qo'lladi. C o'zidan oldingi B va BCPL tillarining juda ko'p muhim tomonlarini o'z ichiga olish bilan bir qatorda o'zgaruvchilarni tiplashtirdi va bir qator boshqa yangiliklarni kiritdi. Boshlanishda C asosan UNIX sistemalarida keng tarqaldi. Hozirda operatsion sistemalarning asosiy qismi C/C++ da yozilmoqda. C mashina arhitekturasiga bog'langan tildir. Lekin yahshi rejalashtirish orqali dasturlarni turli kompyuter platformalarida ishlaydigan qilsa bo'ladi. 1983 yilda, C tili keng tarqalganligi sababli, uni standartlash harakati boshlandi. Buning uchun Amerika Milliy Standartlar Komiteti (ANSI) qoshida X3J11 tehnik komitet tuzildi. Va 1989 yilda ushbu standart qabul qilindi. Standartni dunyo 4

bo'yicha keng tarqatish maqsadida 1990 yilda ANSI va Dunyo Standartlar Tashkiloti (ISO) hamkorlikda C ning ANSI/ISO 9899:1990 standartini qabul qilishdi. Shu sababli C da yozilgan dasturlar kam miqdordagi o'zgarishlar yoki umuman o'zgarishlarsiz juda ko'p kompyuter platformalarida ishlaydi. C++ 1980 yillar boshida Bjarne Stroustrup tomonidan C ga asoslangan tarzda tuzildi. C++ juda ko'p qo'shimchalarni o'z ichiga olgan, lekin eng asosiysi u ob'ektlar bilan dasturlashga imkon beradi. Dasturlarni tez va sifatli yozish hozirgi kunda katta ahamiyat kasb etmoda. Buni ta'minlash uchun ob'ektli dasturlash g'oyasi ilgari surildi. Huddi 70-chi yillar boshida strukturali dasturlash kabi, programmalarni hayotdagi jismlarni modellashtiruvchi ob'ektlat orqali tuzish dasturlash sohasida inqilob qildi. C++ dan tashqari boshqa ko'p ob'ektli dasturlshga yo'naltirilgan tillar paydo bo'ldi. Shulardan eng ko'zga tashlanadigani Xerox ning Palo Altoda joylashgan ilmiy- qidiruv markazida (PARC) tuzilgan Smalltalk dasturlash tilidir. Smalltalk da hamma narsa ob'ektlarga asoslangan. C++ esa gibrid tildir. Unda C ga o'hshab strukturali dasturlash yoki yangicha, ob'ektlar bilan dasturlash mumkin. Yangicha deyishimiz ham nisbiydir. Ob'ektli dasturlash falsafasi paydo bo'lganiga ham yigirma yildan oshayapti. C++ funksiya va ob'ektlarning juda boy kutubhonasiga ega. Yani C++ da dasturlashni o'rganish ikki qismga bo'linadi. Birinchisi bu C++ ni o'zini o'rganish, ikkinchisi esa C++ ning standart kutubxonasidagi tayyor ob'ekt/funksiyalarni qo'llashni o'rganishdir. 1.2 C++ dasturlash tili imkoniyatlari Har bir nom va har bir o’zgaruvchi ular ustida bajariluvchi amallar aniqlovchi turlarga ega bo’ladi. Masalan, int i; tavsiflash i o’zgaruvchi int turiga tegishli, ya’ni i butun o’zgaruvchi deb aniqlaydi. Tavsiflash - dasturga nom kirituvchi 5