C++ da dasturlash tilida statik kutbxonalar yaratish va ulardan foydalanish
![O’zbekiston Respublikasi Samarqand Davlat
Universiteti
Matematika fakulteti
Matematik va Informatika yunalshi
225- guruh talabasi Abdug aniyev Murodbekʻ
KURS ISHI
Mavzu: C++ da dasturlash tilida statik
kutbxonalar yaratish va ulardan foydalanish
1](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_1.png)
![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
2](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_2.png)
![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;
3](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_3.png)
![- 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.
4](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_4.png)
![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
5](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_5.png)
![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
6](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_6.png)
![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
7](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_7.png)
![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:
8](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_8.png)
![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.
9](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_9.png)
![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;
10](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_10.png)
![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;}]
11](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_11.png)
![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)
12](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_12.png)
![{
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.
13](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_13.png)
![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.
14](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_14.png)
![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).
15](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_15.png)
![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);}
16I <= 64
Ishni
tugallash-ga](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_16.png)
![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)
17](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_17.png)
![{
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.
18](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_18.png)
![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.
19](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_19.png)
![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
20](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_20.png)
![#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()
21](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_21.png)
![{
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;
22](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_22.png)
![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;
23](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_23.png)
![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;
}
24](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_24.png)
![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
25](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_25.png)
![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;
26](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_26.png)
![}
Дастуришлашинингнатижаси :
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.
27](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_27.png)
![#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.
28](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_28.png)
![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);
29](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_29.png)
![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:
30](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_30.png)
![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.
31](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_31.png)
![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
32](/data/documents/a6cb567a-87ec-4c43-b81a-942dae89d608/page_32.png)
O’zbekiston Respublikasi Samarqand Davlat Universiteti Matematika fakulteti Matematik va Informatika yunalshi 225- guruh talabasi Abdug aniyev Murodbekʻ KURS ISHI Mavzu: C++ da dasturlash tilida statik kutbxonalar yaratish va ulardan foydalanish 1
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 2
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; 3
- 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. 4
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 5