logo

C++ dasturlash tilining standart kutbxonalari

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

71.6650390625 KB
C++ dasturlash   tilining standart kutbxonalari
Reja:
i.
Kirish
ii.
Asosiy qism
1.
Ma’lumotlarni kiritish va chiqarish va akslantirish funksiyalari
bilan ishlovchi kutubxonalar,   (stdio.h) kutubxonasi.
2.
Matematik funksiyalar bilan ishlovchi kutubxonalar.
3.
Dasturlashda math.h kutubxonasining imkoniyatlaridan
foydalanish.
iii.
Xulosa
iv.
Foydalanilgan adabiyotlar
Asosiy qism
II.1. 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 ularda
qanday 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.
Turlari:
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.
57
C++ da oqimlar sinfi
Oqimlarni   ochish v a y opish
Oqim ochilishi uchun, oldindan kiritilgan FILE tipidagi struktura bilan boglash 
lozimdir. FILE strukturasi ta'rifi iostream.h bibleotekasida joylashgan. Bu 
strukturada buferga ko’rsatkich, o’qilayotgan pozitsiyaga ko’rsatkich va boshqa 
ma'lumotlar saqlanadi. Oqim ochilganda dasturda oqimga ko’rsatkich ya'ni FILE 
strukturali tipdagi ob'ektga ko’rsatkich qaytariladi. Bu ko’rsatkich qo’yidagicha 
e'lon qilinishi lozim. FILE *
Misol uchun FILE * fp
Oqim ochish funktsiyasi quyidagi ko’rinishga ega;
=foren(,)
Misol uchun:fp=fopen(“t.tnt”, “r”)
Oqim bilan bog’lik faylni qo’yidagi rejimlarda ochish mumkin:
“ w”- Yangi fayl o’qish uchun ochiladi. Agar fayl mavjud bo’lmasa yangidan yaratiladi.
“r” - Mavjud fayl faqat o’qish uchun ochiladi.
“a” - Fayl da'vom ettirish uchun ochiladi.
“wt” - Fayl yozish va keyingi tahrirlash uchun ochiladi. Fayl ihtiyoriy joyidan o’qish yoki yozish
mumkin.
“rt”- fayl ihtiyoriy joyidan o’qish yoki yozish mumkin, lekin fayl ohiriga qo’shish mumkin emas.
“at”   -   Fayl   ihtiyoriy   joyidan   o’qish   va   yozish   uchun   ochiladi   “wt”   rejmdan   farqli   fayl   ohiriga
ma'lumot qo’shish mumkin.
Oqimdan o’qilgan qo’yidagi simvollar -------
CR(13)-naryat nomi qaytarish
RF(10)-“yangi qator” boshiga o’tish bitta simvolga “\n” (10) fqkfynbhbkflb/
Agar fayl------- emas ihtiyoriy bulsa, binar rejimda ochiladi. Buning uchun rejimlar--------- harfi
qo’shiladi ------- “wb” yoki “rtb”. Ba'zi ----- matnli rejim t harifi yordamida ko’rsatiladi masalan
“yoki”rt”.
Oqim ochilganda quyidagi hatolar kelib chiqishi mumkin:ko’rsatilgan  fayl mavjud emas(o’kish
rejimida); disk to’la yoki yozishdan himoyalangan va hokazo. Yana shuni aytish kerakki fopen()
funktsiyasi   bajarilganda   dinamik   hotira   ishlatiladi.   Agar   hotirada   joy   qolmagan   bo’lsa   “not
enough ” - hatosi kelib chiqadi.
Ko’rsatilgan hollarda ko’rsatkich ~ NULL qiymatga ega bo’ladi.
Bu hatolar   haqidagi   ma'lumotlarni  ekranga  chiqarish   uchun  perror ()  funktsiyasi  ishlatiladi.   Bu
funktsiya iostream.h bibliotekasida saqlanuvchi prototipi qo’yidagi ko’rinishga ega.:
Void perror(court char * s);
Diskda ochilgan fayllarni berkitish uchun qo’yidagi funktsiyadan foydalaniladi. Int fellove().
Fayllar bilan ishlashning bitli rejimi.
Fayl   bilan   bitli   almashish   rejimi   getc(   )   va   putc(   )   funktsiyalari   yordamida   tashkil   etiladi.   Bu
funktsiyalarga qo’yidagi shaklda murojat etiladi:
C=getc(fp);
Putc(c,fp);
Bu erda fp-ko’rsatkich
S-int tipidagi o’zgaruvchi
Misol tariqasida  klaviaturadan  simvol kiritib  faylga yozishni ko’ramiz.  Matn ohirini ‘#’ belgisi
ko’rsatadi.   Fayl   nomi   foydalanuvchidan   so’raladi.   Agar   klavishasi   bosilsa   faylga   CR   va   LF
(qiymatlari   13   va   10)   konstantalar   yoziladi.   Keyinchalik   fayldan   simvollarni   uqishda   bu
konstantalar satrlarni ajratishga imkon beradi.
# include
int main()
{ file *fp;
char c;
const char CR=’\015’;
const char LF=’\012’;
char f name [20];
puts(“fayl nomini kiriting:\n”);
gets(f name);
if((fp=f open(f name, “w”)) ==null)
{ perror(f name);
return 1;
}
while ((c=getchar())!=’#’)
} if (c==’\n’)
{ putc(CR,fp);
putc(LF,fp);
}
else putc (c,fp);
}
Fclose (fp);
Return 0;
Keyingi programma fayldan simvollarni o’qib ekranga chiqaradi.
#include
int main()
{ file *fp;
char c;
char f name [20];
puts(“fayl nomini kiriting:\n”);
if((fp=f open (f name, “r”)) ==null)
{ perror(f name);
return 1;
}
while ((c=getc(fp))!=eof)
putchar(c);
f close (fp);
return 0;
} Satrlar yordamida fayllar bilan bog’lanish.
Matnli fayllar bilan ishlash uchun fget va fputs funktsiyalaridan foydalaniladi. Bu funktsiyalari 
prototiplari iostream.h faylida qo’yidagi ko’rinishga ega:
Int fputs (const char *s, FILE *stream);
Char *fgets (char * s, int n, FILE * stream);
Fputs   funktsiyasi   ‘\0’   simvoli   bilan   chegaralangan   satrni   stream   ko’rsatkichi   orqali   aniqlangan
faylga yozadi. ‘\0’ simvoli faylga yozilmaydi.
Fgets()   funktsiyasi   stream   ko’rsatkichi   orqali   aniqlangan   fayldan   (n-1)   simvolni   o’qiydi   va   S
ko’rsatgan  satrga  yozib qo’yadi.  Funktsiya n-1 simvolni  o’qib  bo’lsa eki 1-chi  qator  simvoli  ‘\
n’ni   uchratsa   ishini   tuhtatadi.   Har   bir   satr   ohiriga   qo’shimcha   \0   belgisi   qo’shiladi.   Hato
bo’lganda yoki fayl ohiriga etganda agar fayldan birorta simvol o’qilmagan bo’lsa NULL qiymat
qaytariladi. Qo’yidagi dasturda bir fayldagi matnni ikkinchi faylga yozishni ko’rib chiqamiz. Bu
misolda   yana   bir   imkoniyat   komanda   qatoridan   programmaga   ma'lumot   uzatish   imkoniyati
ko’rib   chiqilgan.   Har   qanday   dastur   operatsion   sistemada   ma'lumotni   argc   va   argv   parametrlar
qiymati sifatida oladi. Birinchi programmaga uzatilayotgan satrlar sonini ko’rsatadi. Argv[0] bu
faylning   nomini   saklovchi   satrga   ko’rsatkich   massivining   qolgan   elementlari   argv[10]…
argv[argc-1]   komanda   qatorida   fayl   nomidan   so’ng   bo’shlik   tashlab   yozilgan   parametrlarga
ko’rsatkichlar.
Programmamiz   nomi   coryfile.exe   bo’lsin   va   bu   programma   yordamida   f1.dat   Faylni   f2.dat
faylga yozmoqchimiz. Komanda qatori qo’yidagi ko’rinishga ega:
Programma matni:
#include
main (int argc, char*argv[])
{ char cc[256];
FILE *f1, *f2;
If (argc!=3)
{ print (“\n Format bazovih programma:”);
print f (“\n copyfile.exe”)
Cout<< (“\n Fayl netosnihh Fayl priemnik”);
return 1; }
if ((f1=fopen(argv[1],”r”))==NULL)
{perror(argv[1]);
return 1;
}
if ((f2=fopen(argv[2], “w”))==NULL)
{perror(arg[2]);
return 1;
}
while (fgets(cc,256,f1)!=NULL)
fputs(CC,f2);
fclose(f1);
fclose(f2);
return 0;
}
Bu dastur bajarilishi  natijasida  int.dat  fayliga  Cout<<  funktsiyasi yordamida  monitorga  qanday
chiqsa   shunday   ko’rinishda   ma'lumotlar   yozadi.   Keyingi   misolda   fayldan   monitorga   o’qishni
kuramiz:
#include
int main()
{
FILE *fp; Intn,nn,I;
If((fp=fopen(“int.dat”,”r”))==NULL)
{perror (“int.dat”);
return 1;
}
for(i=1; i<11;i++)
{fCin>>(fp,”%d”,&n) ;
Cout<<(“%d \n”,n);
}
fclose(fp);
return 0;
}
                       C++ da  konteyner sinflari
Konteynerlar — bu boshqa elementlarni saqlash uchun mo‘ljallangan sinflar
shablonlaridir. Konteynerlar asosiy xususiyati shundaki ular ixtiyoriy tipdagi
elementlarni o‘zida saqlash uchun mo‘ljallangan. To‘g‘rirog‘i, har bir tur uchun
shablon nusxasi kerak bo‘lganda, kompilyator tomonidan avtomatik tarzda
yaratiladi. Algoritmlar konteyner elementlari ustidan operasiyalar bajaradi.
Bibliotekada qidirish, saralash va almashtirish uchun algoritmlar mavjud.
Algoritmlar elementlar ketma_ketligi bilan ishlash uchun mo‘ljallangan.
Algoritmlar asosiy xususiyati shuki ular ixtiyoriy konteynerlar bilan ishlay
oladi.
Konteynerlar asosiy va hosila konteynerlarga ajratiladi. Asosiy
konteynerlarga quyidagilar kiradi:
• vector — dinamik massiv
• list — chiziqli ro‘yxat
• deque — ikki tarafli tartib
• set — to‘plam
• multiset — har bir elementi noyob bo‘lishi shart emas to‘plam
• map — kalit/ qiymat juftlikni saqlash uchun assosiativ ro‘yxat. Bunda har bir kalit bitta qiymat bilan bog‘langan.
• multimap — har bir kalit bilan ikkita yoki ko‘proq qiymatlarbog‘langan
Hosila konteynerlarga quyidagilar kiradi:
• stack — stek
• queue — tartib
• priority_queue — prioritetli tartib
STL kutubxonasidagi standart shablonlardan foydalanish uchun kerakli
header fayllarni dasturga ulash lozim.
vector
Birinchi bo’lib STL dagi vector bilan ishlaymiz. Buning uchun vector
header faylini dasturga ulaymiz.
Vector tipidagi o’zgaruvchi yaratamiz. Buning uchun
vector <type> var_name
Bu yerda
  type – vector tarkikibiga kiruvchi o’zgaruvchilarning toifasi
  var_name – vectorning nomi
STL kutubxonasidagi maxsus vectorning ichiga ma’lumot qo’shish uchun
quyidagi funksiyadan foydalaniladi.
push_back( value )
-
value –vectorga qo’shiluvchi qiymat
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> vc; // vectorni e’lon qilish
int a;
cin>>a;
vc.push_back(a);
while(a)
{
cin>>a;
vc.push_back(a);
}
for(int i=0;i<vc.size();i++)
cout << vc[i] << endl;
return 0; STL kutubxonasidagi list konteyneri bilan ishlash. Buning uchun eng
avvalo list header faylini dasturimizga ulaymiz.
List tipidagi o’zgaruvchini yaratish:
list <type> list_name;
STL kutubxonasidagi maxsus vectorning ichiga ma’lumot qo’shish uchun
quyidagi funksiyalardan foydalaniladi.
push_back( value ) – listning oxiriga qo’shish
push_front( value ) – listning boshiga qo’shish
List elementlariga murojatni amalga oshirish uchun iteratorlardan
foydalanish zarur.
1. Klassik tizimli dasturlash xususiyatlari.
2. Uzulishlar va ularning turlari.
3. OS ning uzulishlarini qayta ishlash moduli.
4. Yuqori darajali tillar va uzilishlar
Tayanch iboralar:   uzilishlar OS moduli , uzulish vektori, BIOS funksiyalari, quyi darajali til, 
programma uzulishlari, apparat
uzulishlari.
Ma'ruza bayoni
Uzulishlar va assebler-programma xususiyatlari. Tizimli programmalashda uzulishlarni tahlil qilish va qayta ishlash katta rol o`ynaydi. Uzulish-
bu bajarilayotgan jarayonni unga nisbatan tashqi hodisa tasiri asosida vaqtinchalik 
to`xtatilishidir. Biz uzulishlar va ular bilan bog`liq bo`lgan tushunchalarni SHEHM muhitida 
qarab chiqamiz. Boshqa (universal superEHM) muhitlarda ham xuddi shunga o`xshgan 
uzulishlar turi, ularni tahlil qilish usullari va qayta ishlash mexanizmlari mavjud.
MS-DOS operatsion sistemaning asosiy modullaridan biri-bu BIOS (KCHAS-kiritishlar 
chiqarishning asosiy sistemasi) hisoblanadi. BIOSning asosiy vazifalaridan biri operatsion 
sistemaning uzulishlariga xizmat ko`rsatishdir. Bu ish uzulishlar mexanizmi yordamida 
bajariladi, ya`ni mashenaning joriy ishi qisqa vaqt davomida to`xtatiladi va unga sababchi 
bo`lgan hodisa qayta ishlanadi. Uzulishlarni uchta guruhga: aparat, mantiqiy va programmaviy 
bo`ladilar. Aparat uzulishlarining sabablari (manbalari): tok kuchini pasayishi, klaviaturadagi 
klavisha (tugmachani) bosilishi, qattiq va yumshoq disk qurilmalaridan keladigan signallar va 
hokazolar bo`lishi mumkin.
Mantiqiy (protsissor) uzulishlar nostandart holatlarda, masalan, mekroprotsissorning ish 
jarayonidagi nolga bo`lish registrlarni to`lib ketishi, “to`xtash nuqtasi” paydo bo`lganda yuzaga 
keladi.
Programmaviy uzulishlar uzulishlarning asosiy qismini tashkil qiladi. Bunday uzulishlar bir 
programma boshqa programmadan xizmat ko`rsatishni talab qilgan paytda hosil bo`ladi. Xizmat 
ko`rsatish turi esa yana aparat bilan bog`liq bo`ladi.
Har bir uzulish maxsus (yagona) nomerga ega va u bilan aniq bir qismprogramma bog`langandir.
Bu qismprogramma paydo bo`lgan holatni tahlil qiladi va unga xizmat ko`rsatadi. Agar bu 
qismprogrammani boshqa uzulish qismprogrammasi to`xtatmoqchi bo`lsa ikkinchi 
qismprogramma “navbatga” qo`yiladi, ya`ni “maskirovka” qilinadi.
BIOS past bosqich ( прерывания   нижнеего   уровня ) uzulishlarni qayta ishlaydi. Bu turdagi 
uzulishlar aparatura bilan bog`liq. Past (quyi) bosqich uzulishlarining nomerlari 0-31
10 (0-
1F
16 ).   Boshqa uzulishlar , ya`ni 32-63
10 (20-3F
16 ) tartib raqamli uzulishlar yuqori bosqich 
uzulishlari deyiladi. Bu turdagi uzulishlarni DOS uzulishlarini qayta ishlash moduli (MS-
DOS.COM yoki MS-DOS.SYS) boshqaradi.
BIOSning qayta ishlaydigan uzulishlaridan, masalan 0-nolga burish 22
10 (16
16 )-klaviaturani 
boshqarish, 26
10   (1A
16 )-sana va vaqtni so`rash (o`rnatish)larni keltirish mumkin.
Bazi bir uzulishlar, masalan, 19
10 (13
16 )-qattiq disk qurilmasini boshqarish bir nechta (18 ta) 
funksiyalarga murojat qilish imkoniyatini beradi. Bu funksiyalar ham o`z nomeriga (kodiga, 0-
17) ega.
Masalan, 0-boshlang`ich holat (o`rnatish), 4-yozish yoki o`qishdan keyin tekshirish, C-kerakli 
yulakni ( дирожкани ) izlash yoki 16
10 (10
16 )-displeyni boshqarish uzulish esa 24 ta funksiyalarga 
murojat qiladi.
MS-DOSning uzulishlarni qayta ishlash moduli.
Bu modul yuqori bosqich uzulishlari bilan ishlaydi.Anashu uzulishlarga amaliy 
programmalardan murojaat qilish mumkin.
Maskur guruhdagi qism programmalar fayl sistemasi ishini, komunnikatsiyalar (klaviatura, 
displey,printer) va maxsus holatlarni boshqarish bilan bog’liqdir.Masalan, 33
10 =21
16   nomerli  uzilish bilan funksiyalarning katta to’plami birlashtirilgan.Bu funksiyalar fayl qism sistemasi va 
standart qurilmalar ishini boshqarish uchun xizmat qiladi.Misol uchun, 2A
16 -funksiyasi sana 
haqidagi, 2C
16 -vaqt,41
16 -kursatilgan katalogdan faylni o’chirish kabi malumotlar beradi va 
amallarni bajaradi.
Amaliy va tizimli programmalar taminotini yaratishda biz operatsion sistema va apparatura bilan 
bog’liq bo’lgan uzilishlarga quydagi yullar bilan murojat qilishimiz mumkin. 2.Yo’qori darajali 
tillar (paskal, ci, delfi) tarkibidagi maxsus protsedura va funksiyalardan foydalanish.Ammo bular
apparaturaga to’g’ridan-to’g’ri murojat qilishni to’liq taminlamaydi.
2. Opertsion sistemaning yuqori bosqich (32-63
10 ) uzulishlarini qo’llash. Programmalash 
tizimining translyatori maxsus protsedura (funksiya) yordamida OSning uzulishlari murojaat 
qilish imkoniyatini beradi.
Bu proseduralar parametrlari uzulish nomerini ko`rsatadi va mikroprosessor asosiy registrlarini 
qiymatini aniqlaydi.
Masalan, TPasda MSDOS modulining Intr prosedurasini qaraymiz. Uning umumiy ko`rinishi
procedure Intr( InrNo:Byte; var Regs: Registers);
Bu yerda IntNo-uzulish nimeri; Regs-Registers tipli o`zgaruvchi va uning umumiy ko`rinishi 
variantli yozuv shaklida tasvirlanadi.
Type
Registers=recora
Case integer of
0: (Ax,Bx,Cx,Dx,BP,SI,DI,DS,ES,Flags:word);
1: (AL,AH,BL,BH,CL,CH,DL,DH:Byte)
End;
Bu prosedurani ishlashini oddiy misol yordamida ko`ramiz. Faraz qilaylik, Manitor ekranidagi 
ma`lumotni printerga chop etish kerak bo`lsin. Bu ishni Shift+PrtScr klavishalarni birgalikda 
bosish yordamida bajarish mumkin yoki uzulishlardan foydalanib ham ijro etish yo`llari mavjid. 
Programmaning umumiy ko`rinishi quyidagicha bo`ladi.
Uses dos;
Procedure PrintScreen;
Var r:registers;
Begin intr($05,r) end. {Tizim uzulishi nomeri 16 lik sanoq sistemasi}
Begin
Write(`ekranni chop etish uchun ENTERni bosing’);
Readln;
PrintScreen
End.
Programma 5-uzulishni (ekranni grafik nusxasini chop etish) ishlatadi va ekrandagi ma`limotni 
printerdan chiqaradi.
Uzulishlardan   drayverlarni ishlab chiqishda , assembler-programma tuzushda yoki operatsion 
tizimning funksiyalarini o`zgartirishda ko`p foydalanadilar.
3. Ikkinchi usulni qo`llab quyibosqich, ya`ni BIOS murojaat qiladigan uzulishlarni ham ishlatish 
mumkin. Ammo apparaturaga murojaat qilish SHEHM turi bilan bog`liq, shuning uchun 
programmalar umumiy emas xususiy, SHEHMning konkret turi bilan bog`liq bo`lib qolishi 
mumkin. Shunday qilib, birinchi usul konkret programmalash tili bilan, ikkinchi usul esa 
SHEHM arxitekturasi bilan bog`liq bo`lgan holda uzulishlarni ishlatishga imkon beradi.
Endi uzulishlarni assembler-programma tuzish paytida qo`llanishi va xususiyatlarini ko`rib 
chiqamiz.
Accembler-programma tuzish jarayonida operatsion sitema va uning qismsistemasi BIOS 
yordamchi funksiyalari ishlatish maxsus qoidalar bo`yicha tashkil qilinadi.
Shu uzulishlardan biri 21
16   nomerli uzulish bo`lib birnechta funksiyalarini qo`llashimiz mumkin. 
Funksiya nomeri AH registrida joylashtiriladi.
Masalan, mov AH,1 komandalari programma uchun kiritilishi
Int 21h kerak bo`lgan simvolni klaviaturadan kiritishni kutib turadi. Bu yerda 1 funksiya nomeri 
va u 21
16   nomerli uzulish tarkibiga kiradi. Shundan foydalanib programmani dialog (so`rov-
javob) shaklida tashkil qilish mumkin. Ma`limotni kiritish uchun “yes” nishoniga yoki 
kiritmaslik uchun “no” nishoniga o`tish kerak bo`lsa u holda quyidagi fragmentni yozish 
mumkin.
Wodsim: mov AH,1 ; simvolni o`qish (kiritish)
Int 21h ; simvol AL da kiritiladi.
Cmp AL,’4’ ; simvol=’yes’
Je YES ; agar ‘yes’ u holda yes nishoniga o`ting. Cmp AL,‘N’ ; agar ‘NO’ bo`lsa No nishoniga o`ting.
Je NO
Jne wodsim ; ‘y’ yoki ‘N’ bo`lmasa simvolni kiritishni kutish. YES: :
NO: :
Ikkita manfiy bo'Imagan son a va b berilgan.   Ularning o'rta geometrigi 
aniqiansin.   Y=sqrt(a*b)
#include<iostream.h>
#include<math.h>
int main()
{
  float a,b,y;
  cout<<"a=";cin>>a;
  cout<<"b=";cin>>b;
    y=sqrt(a*b);
  cout<<"y="<<y;
  tizim ("pauza");
  qaytish 0;
  }
  Nolga teng bo'Imagan ikkita son berilgan.   Ularning yig'indisini, ko'paytmasini va har 
birining kvadrati aniqiansin.
#include<iostream.h>
#include<math.h>
int main()
{
  float a,b,y,y1,y2;
  cout<<"a=";cin>>a;
  cout<<"b=";cin>>b;
y=a+b;
y1=a*b;
y2=sqr(a)+sqr(b);
  cout<<"y="<<y;
cout<<"y1="<<y1;
cout<<"y2="<<y2;
  tizim ("pauza");
  qaytish 0;
  }
  Nolga teng bo'Imagan ikkita son berilgan.   Ularning yig'indisini, ko'paytmasini va har 
birining moduli aniqiansin.
  #include<iostream.h>
#include<math.h>
int main()
{   int a,b,s,v,d;
  cout<<"a=";cin>>a;
  cout<<"b=";cin>>b;
  s=a+b;
  v=a*b;
d=abs(a)
  cout<<"s="<<s;
  cout<<"v="<<v;
cout<<"d="<<d;
  tizim ("pauza");
  qaytish 0;
  }
  To'gri uchburchakning katetlari a va b berilgan.   Uning gipotenuzasi s va perimetri P 
aniqiansin.   C   =sqrt(sqr(a)+sqr(b))   , P=a+b+c
#include<iostream.h>
#inceude<math.h>
int main()
{float a,b,c,p;
cout<<"a";   cin>> a;
cout<<"b";   cin>> b;
cout<<"c";   cin>> c;
p=a+b+c;
c:=sqrt(sqr(a)+sqr(b));
cout<<"p=" <<p;
cout<<"c=" <<c;
tizim ("pauza");
qaytish 0;
}

C++ dasturlash tilining standart kutbxonalari Reja: i. Kirish ii. Asosiy qism 1. Ma’lumotlarni kiritish va chiqarish va akslantirish funksiyalari bilan ishlovchi kutubxonalar, (stdio.h) kutubxonasi. 2. Matematik funksiyalar bilan ishlovchi kutubxonalar. 3. Dasturlashda math.h kutubxonasining imkoniyatlaridan foydalanish. iii. Xulosa iv. Foydalanilgan adabiyotlar Asosiy qism II.1. 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 ularda qanday 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. Turlari: 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