logo

C++ dasturlash tilining streambuf, tuple va stack kutubxonalari funksiyalari

Загружено в:

08.08.2023

Скачано:

0

Размер:

42.630859375 KB
  Mavzu:C++ dasturlash tilining    streambuf,     tuple     va   stack
kutubxonalari     funksiyalari.
I   KIRISH
1. C++ dasturlash tili va uning vazifalari
II ASOSIY QISM
Nazariy qism
1. C++ kutubxonalari va xossalari 
2. Streambuf va tuple kutubxonalari haqida malumot
3. Stack kutubxonasi.
Amaliy qism
III XULOSA 
1. C++ kutubxonalari ahamiyati
            Hozirgi kunda juda ko‘p algoritmik tillar mavjud. Bular ichida Java
va C++ dasturlash tillari universal tillar hisoblanib, boshqa tillarga
qaraganda imkoniyatlari kengroqdir. So‘ngi yillarda Java va C++
dasturlash tillari juda takomillashib, tobora ommalashib bormoqda.
Mazkur tillardagi vositalar zamonaviy kompyuter texnologiyasining
hamma talablarini o‘z ichiga olgan va unda dastur tuzuvchi uchun 
ko‘pgina
qulayliklar yaratilgan.
C++ 1980 yillar boshida Bjarne Stroustrup tomonidan C tiliga
asoslangan tarzda tuzildi. C++ juda ko’p qo’shimchalarni o’z ichiga 
olgan,
lekin eng asosiysi u obyektlar bilan dasturlashga imkon beradi. Dasturlarni tez va sifatli yozish hozirgi kunda katta ahamiyat kasb
etmoqda. Buni ta’minlash uchun obyektli dasturlash g’oyasi ilgari surildi.
Huddi 1970 yillar boshida strukturali dasturlash kabi, dasturlarni
hayotdagi jismlarni modellashtiruvchi obyektlat orqali tuzish dasturlash
sohasida inqilob qildi.
C++ dan tashqari boshqa ko'p obyektli 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 obyektlarga asoslangan. C++
esa gibrid tildir. Unda C tiliga o’hshab strukturali dasturlash obyektlar
bilan dasturlash mumkin.
C++ funksiya va obyektlarning juda boy kutubhonasiga ega. Yani
C++ dasturlash tilida dasturlashni o’rganish ikki qismga bo’linadi.
Birinchisi bu C++ tilini o’zini o’rganish, ikkinchisi esa C++ ning standart
kutubhonasidagi tayyor obyekt va funksiyalarni qo’llashni o’rganishdir.
6
C++ tiliga ko‘plab yangiliklar kiritilgan bo‘lib, tilning imkoniyati
yanada kengaytirilgan. C++ dasturlash tili ham boshqa dasturlash tillari 
kabi
o‘z alfavitiga va belgilariga ega.
   Tillarda mavjud alfavit va leksemalarga quyidagilar kiradi:
1. Katta va kichik lotin alfaviti harflari;
2. Raqamlar - 0,1,2,3,4,5,6,7,8,9;
3. Maxsus belgilar: " {} | [] () + - / % \ ; ' : ? <=>_ ! & ~ # ^ . *
   Alfavit belgilaridan tilning leksemalari shakllantiriladi:
   Identifikatorlar;
   Kalit (xizmatchi yoki zahiralangan) so‘zlar;
   O‘zgarmaslar;
   Amallar belgilanishlari;
   Ajratuvchilar.
Bu tillarda tuzilgan dasturlarda izohlar istalgan joyda berilishi mumkin.
Ular satriy va blokli ko‘rinishlarda bo’ladi. Satriy izohlar uchun “//”, 
blokli
izohlar uchun “/*”, “*/” belgilari ishlatiladi. 1.2.Dastur tuzilmasi
C++ dasturlash tilida dastur quyidagi tarkibda tashkil topadi:
Direktivalar – funksiyalar kutubxonasini chaqirish. Ular maxsus include
katalogida joylashgan va .h kengaytmali fayllar bo’ladi.  С ++ tilida 
masalaning
qo’yilishiga qarab kerakli kutubxonalar chaqiriladi. Bus esa dasturning 
xotirada
egallaydigan joyini minimallashtiradi.
Masalan, ma’lumotlarni kiritish-chiqarish proseduralari uchun:
#include <stdio.h> tizimdan chaqirish
#include “stdio.h” joriy katalogdan chaqirish.
C++ dasturlash tili bilan ishlovchi eng sodda dasturlar Dev C++ va
CodeBlocks dasturlaridir. Ularning tarkibida 300 dan ortiq kutubxonalar
mavjud. Eng ko’p ishlatiladigan kutubxonalar quyidagilar:
#include<iostream.h>,
7
#include <math.h>
#include <conio.h>
#include <graphics.h>
#include <memory.h> va boshqalar
Makrolar (#define) – dastur bajarilishi davomida o’zgaruvchi ko’rsatilgan
qiymatni qabul qilishi uchun (const). Unda makroning nomi va qiymati
ko’rsatiladi.  Масалан :
#define pi 3.1415
#define x 556
#define s[100]
#define M x*x*x
main () funksiyasi– asosiy degan ma’noni anglatadi. Bu funksiya “{“
belgisidan boshlanadi va dasturning asosini tashkil etuvchi 
o’zgaruvchilarning
toifalari ko’rsatiladi. Dastur “}” belgisi bilan yakunlanishi shart. Agar 
dasturda
qism dasturlardan foydalanilayotgan bo’lsa, ularning nomlari va haqiqiqy
parametrlari keltiriladi. So’ngra dasturning asosiy buyruqlari yoziladi. 
Agar
buyruqlar murakkab bo’lsas, ular alohida “{ }” belgilari orasiga olingan 
bo’lishi kerak.
С ++ tilida dasturning asosi bo’lmish buyruqlar kichik harflar bilan
yoziladi. Buyruqlar nuqta-verguk bilan (;) yakunlanadi. Buyruqlar bir 
qator qilib
yozilishi ham mumkin.
C++ dasturlash tilida dastur funksiya va funksiyalardan tashkil topadi.
Agar dastur bir nechta funksiyalardan tashkil topgan bo’lsa, bir 
funksiyaning
nomi main deb nomlanishi shart. Dastur aynan main funksiyasining 
birinchi
operatoridan boshlab bajariladi.
C++ tilidagi dastur ko‘rinishini quyidagi misol yordamida keltirib
o‘tamiz.
#include <iostream.h> // sarlavha faylni qo‘shish
int main () // bosh funksiya tavsifi
8
{ // blok boshlanishi
cout << “Salom Dunyo! “\n”; // satrni chop etish
return 0; // funksiya qaytaradigan qiymat
} // blok tugashi
Dasturning 1-satrida #include direktivasi bo‘lib, dastur kodiga oqimli
o‘qish/yozish funksiyalari va uning o‘zgaruvchilari e’loni joylashgan 
iostream.h
sarlavha faylini qo‘shadi. Keyingi qatorlarda dasturning yagona, asosiy
funksiyasi main() funksiyasi tavsifi keltirilgan. Shuni qayd etish kerakki, 
C++
dasturida albatta main() funksiyasi bo‘lishi shart va dastur shu funksiyani
bajarish bilan o‘z ishini boshlaydi.
Dastur tanasida konsol rejimi (Consol – rejimi bu MS DOS oynasi
ko’rinishiga o’xshash oyna bo’lib, unda foydalanuvchi dastur tuzuishda 
faqat
dastur kodlari bilan ishlaydi. Graphic interface – rejimida esa faqat 
tilning
kodlari bilangina emas muhitning menyulari, komponentalari bilan ham 
ishlashi
mumkin bo’ladi) da belgilar ketma-ketligini oqimga chiqarish amali 
qo‘llanilgan. Ma’lumotlarni standart oqimga (ekranga) chiqarish uchun quyidagi 
format
ishlatilgan:
cout << <ifoda>;
Bu yerda <ifoda> sifatida o‘zgaruvchi yoki sintsksisi to‘g‘ri yozilgan va
qandaydir qiymat qabul qiluvchi til ifodasi kelishi mumkin (keyinchalik, 
burchak
qavs ichiga olingan o‘zbekcha satr ostini til tarkibiga kirmaydigan 
tushuncha deb
qabul qilish kerak).
cin << a;
Ma’lumotlarni klaviatura yordamida kiritish buyrug’i bo’lib, u ham
iostream.h kutubxonasi tarkibidagi funksiya hisoblanadi.
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.
Oqimli   sinfl ar ierarxiyasi
C++da   oqimli   sinflar   kutubxonasi   ikkita   asosiy   ios   va   streambuf
sinflar   asosida   tuzilgan,   streambuf   sinfi   kiritish-chiqarish   fizik
qurilmalari   bilan   xotirada   joylashgan   kiritish-chiqarish   buferlarni
o‘zaro   bo‘g‘lanishini   va   tashkilini   ta’minlaydi.   Streambuf   sinfining
metodlarini va ma’lumotlarini dasturchi ochiq ishlatmaydi. Mavjud
bo‘lgan   sinflar   asosida   yangi   sinflarni   yaratishda   dasturchiga   xam
sinfga   murojaat   etish   ruxat   etilgan.   ios   sinfi
formal   k irit ish   chiqarish   va   xat olarni   t e k shirish   vositalarga ega.
o
Standart oqimlar (istream, ostream, iostream) terminal 
bilan ishlash uchun xizmat qiladi.
o
Satrli oqimlar (istrstream, ostrstream, strstream) xotirada
joylashtirilgan satrli buferlardan kiritish-chiqarish uchun 
xizmat qiladi.
o
Faylli oqimlar(ifstream,   ofstream , fstream) fayllar bilan 
ishlash uchun xizmat qiladi.
Oqimli sinflar, ularning metodlari va ma’lumotlari dasturda 
murojaat etish ruxsatiga ega bo‘ladi, qachonki unga kerakli bosh 
fayl kiritilgan bo‘lsa. 
iostream.h – ios, ostream, istream uchun.

strstream.h – strstream, istrstream,   ostrstream uchun

fstream.h – fstream, ifstream,   ofstream uchun
Quyidagi ob’ekt-oqimlar dasturda main funksiyasini chaqirish 
oldidan avvaldan aniqlangan va ochilgan bo‘ladi:

extern istream cin; //Klaviaturadan   kiritish standart oqimi

extern ostream cout; //Ekranga   chiqarish standart oqimi

extern ostream cerr; //Xatolar xaqidagi xabar chiqarish 
standart oqimi.
Tuple   -ro'yxat – bu tartiblangan elementlar to'plami.  Tushunish oson bo'lishi
uchun xarid qilinishi kerak bo'lgan maxsulotlar ro'yxatini tasavvur qilish 
mumkin.
Python tushunishi uchun elementlar ro'yxati to'rtburchak qavsga olingan 
bo'lishi kerak. Tuzilgan ro'yxatdan qidirish, unga qo'shish va undan olib 
tashlash mumkin.  Ro'yxat bu o'zgaruvchan ma'lumot turi hisoblanadi.
Ro'yxat quyidagicha xosil qilinishi mumkin:
my_list  = [ 'olma' ,  'anor' ,  'shaftoli' ]
# yoki list so'zi yordamida
my_list = list([ 'olma' ,  'anor' ,  'shaftoli' ])
Ro'yxat ob'yekt va klasslarning ishlatilishiga misol bo'la oladi. Python list klasi 
uchun append metodini taqdim etadi. Bu metod yordamida ro'yxat oxiriga 
element qo'shish mumkin. Misol uchun: my_list.append('nok').  O'byekt 
metodiga murojaat qilish uchun nuqta ishlatilishiga e'tibor bering.
Misol: (using_list.py nomi bilan saqlang)
# Bu mening xaridlarim ro'yxati shop_list = [ 'olma' ,  'anor' ,  'shaftoli' ]
print( "Men" , len(shop_list),  "ta xarid qilishim 
kerak" )
print( "Xaridlar:" , end= ' ' )
for  item  in  shop_list:
   print(item, end= ' ' )
print( "\nYana nok ham sotib olish kerak" )
shop_list.append( 'nok' )
print( "Endi xaridlar ro'yxatim quyidagicha:" , 
shop_list)
print( "Ro'yxatimni saralayman" )
shop_list.sort()
print( "Saralangan xaridlar ro'yxati quyidagicha: " , 
shop_list)
print( "Birinchi xarid qilishim kerak bo'lgan narsa 
bu " , shop_list[ 0 ])
old_item = shop_list[ 0 ]
del  shop_list[ 0 ]
print( "Men xarid qildim " , old_item)
print( "Endi xaridlarim ro'yxati: " , shop_list)
Natija:
$ python3 using_list.py
Men 3 ta xarid qilishim kerak
Xaridlar: olma anor shaftoli
Yana nok ham sotib olish kerak
Endi xaridlar ro'yxatim quyidagicha: ['olma', 'anor', 'shaftoli', 'nok']
Ro'yxatimni saralayman
Saralangan xaridlar ro'yxati quyidagicha: ['anor', 'nok', 'olma', 'shaftoli']
Birinchi xarid qilishim kerak bo'lgan narsa bu anor
Men xarid qildim anor
Endi xaridlarim ro'yxati: ['nok', 'olma', 'shaftoli']
Bu qanday ishlaydi:
shop_list o'zgaruvchisi bizning holatda xarid qilinishi kerak bo'lgan narsalar 
nomlaridan tashkil topgan, lekin ro'yxatga ixtiyoriy ob'yekt, son va xatto 
boshqa ro'yxatni ham qo'shish mumkin. for .. in sikli yordamida ro'yxatni iteratsiya qilish 
mumkin.   print   funksiyasidagi   end   kalit argumenti qatorni oddiy probel bilan 
tugatish kerakligini bildiradi.
append   ro'yxat ob'yekti metodi yordamida ro'yxatga element qo'shamiz. 
So'ngra haqiqatda qo'shilganligini tekshirish uchun uni ekranga chop qilamiz.
Keyin biz   sort   metodi yordamida ro'yxatni saralaymiz.
So'ngra birinchi element xarid qilinganidan keyin uni ro'yxatdan   del   operatori
yordamida o'chirib tashlaymiz.
Ushbu ro'yxat   to'liqsiz ; yordam berishingiz mumkin   etishmayotgan narsalarni 
qo'shish   bilan   ishonchli manbalar .
A   yopiq stek kutubxonasi   keng jamoatchilik tomonidan ko'rish yoki 
ko'rib chiqish uchun mavjud bo'lmagan kitoblar va boshqa narsalarni 
o'z ichiga oladi. Ko'plab muhim kutubxonalar o'zlarining yopilish 
joylarini yopadi   vayronalar   faqat professional kutubxona xodimlariga 
murojaat qilishni cheklaydigan kitoblarni ommaga etkazish 
(to'plamlardan kim foydalanishi mumkinligi to'g'risidagi qoidalar 
turlicha). Ochiq stekka ega bo'lgan xususiy, yirik davlat va universitet / 
akademik / tadqiqot kutubxonalarining aksariyati yopiq bo'lgan maxsus 
to'plamlarga ega. Yopiq stakka ega bo'lish sabablari har xil bo'lib, ular 
o'g'irlanishning oldini olish va qayta ishlashdagi xatolarni 
minimallashtirishni o'z ichiga oladi.
1. ^   "Yopiq stek" . dictionary.com. Olingan   2015-07-10.   Kutubxona 
xodimlari yoki cheklangan kutubxona foydalanuvchilar guruhi uchun 
cheklangan to'plamlarga kirish huquqi.
2. ^   [1]   Boston Afinaumning tadqiqotlari uchun maxsus kollektsiyalarni 
o'qish xonasi uchun tayinlash haqida ma'lumot
3. ^   "Fales kutubxonasi va maxsus to'plamlar" .   Fales kutubxonasi . 
Olingan   2015-07-01.   Kitoblar, arxiv va qo'lyozmalar to'plamlari va 
ommaviy axborot vositalariga ilmiy kirish uchun biz yopiq stack o'qish 
zalini saqlaymiz.
4. ^   [2]   Frick Library kutubxonasi ma'lumotnomasi.
5. ^   [3]   Frik kutubxonasi aylanma bo'lmagan materiallarga havola
6. ^   [4]   Kongress kutubxonasida yopiq steklardan foydalanish haqida 
ma'lumot
7. ^   Qo'shma Shtatlardagi besh million jilddan ortiq kutubxonalar 
ro'yxati   Kongressning kutubxonasi nashr etilgan
8. ^   [5]   Nyu-York ommaviy kutubxonasining tadqiqot bo'limlari
9. ^   [6]   Avstraliya Milliy kutubxonasi faktlar va raqamlar 10. ^   [7]   Finlyandiya Milliy kutubxonasi o'z veb-saytida o'zining yopiq 
to'plamlarini eslatib o'tadi
11. ^   "Kitob do'konlariga kirish" .   Noyob kitob va qo'lyozmalar 
kutubxonasi . Olingan   2015-07-01.   ... Illinoys Universitetining 
professor-o'qituvchilari va aspirantlari va maxsus kirish kartalari 
bo'lgan homiylar ushbu hududga kirish huquqini cheklashadi
12. ^   [8]   Chikago universiteti maxsus kollektsiyalari
13. ^   "Mudd kutubxonasi qoidalari va qoidalari" .   Princeton 
universiteti . Arxivlandi   asl nusxasi   2015-04-08 da. Olingan   2015-07-
01.   To'plamlar muomalaga kirmaydi va faqat belgilangan o'qish 
zallarida qo'llaniladi.
14. ^   [9]   Buffaloning Universitetidagi to'plamlar siyosati sahifasi, shu 
jumladan yopiq stek siyosati.
15. ^   [10]   Yopiq stek tizimidan foydalangan Nyu-York universiteti 
Tamiment kutubxonasiga havola
16. ^   [11]   Alberta Universitetidagi Bryus Pilning maxsus to'plamlari 
kutubxonasi
C++ dasturlash tilida STL kutubxonasidagi dinamik strukturalar 
o’rganib chiqildi (ro’yxat, stek, navbat). O’quv materiallarini 
tayyorlash jarayoni o’rganilgan. O’quv materiallarini tayyorlashda 
foydalaniladigan dasturiy ta’minotlar o’rganildi va shular asosida 
o’quv materiallar tayyorlangan. C++ dasturlash tili, dinamik 
strukturalar, o’quv materiallarini tayorlashda foydalaniladigan 
dasturiy ta’minotlar.  C++ dasturlash tilida STL kutubxonasidagi 
dinamik strukturalarni o’rgatishda eng samarali usul va metodlarni 
ishlab chiqish va undan o’quv materiallarini tayyorlashda 
foydalanish.

Mavzu:C++ dasturlash tilining streambuf, tuple va stack kutubxonalari funksiyalari. I KIRISH 1. C++ dasturlash tili va uning vazifalari II ASOSIY QISM Nazariy qism 1. C++ kutubxonalari va xossalari 2. Streambuf va tuple kutubxonalari haqida malumot 3. Stack kutubxonasi. Amaliy qism III XULOSA 1. C++ kutubxonalari ahamiyati Hozirgi kunda juda ko‘p algoritmik tillar mavjud. Bular ichida Java va C++ dasturlash tillari universal tillar hisoblanib, boshqa tillarga qaraganda imkoniyatlari kengroqdir. So‘ngi yillarda Java va C++ dasturlash tillari juda takomillashib, tobora ommalashib bormoqda. Mazkur tillardagi vositalar zamonaviy kompyuter texnologiyasining hamma talablarini o‘z ichiga olgan va unda dastur tuzuvchi uchun ko‘pgina qulayliklar yaratilgan. C++ 1980 yillar boshida Bjarne Stroustrup tomonidan C tiliga asoslangan tarzda tuzildi. C++ juda ko’p qo’shimchalarni o’z ichiga olgan, lekin eng asosiysi u obyektlar bilan dasturlashga imkon beradi.

Dasturlarni tez va sifatli yozish hozirgi kunda katta ahamiyat kasb etmoqda. Buni ta’minlash uchun obyektli dasturlash g’oyasi ilgari surildi. Huddi 1970 yillar boshida strukturali dasturlash kabi, dasturlarni hayotdagi jismlarni modellashtiruvchi obyektlat orqali tuzish dasturlash sohasida inqilob qildi. C++ dan tashqari boshqa ko'p obyektli 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 obyektlarga asoslangan. C++ esa gibrid tildir. Unda C tiliga o’hshab strukturali dasturlash obyektlar bilan dasturlash mumkin. C++ funksiya va obyektlarning juda boy kutubhonasiga ega. Yani C++ dasturlash tilida dasturlashni o’rganish ikki qismga bo’linadi. Birinchisi bu C++ tilini o’zini o’rganish, ikkinchisi esa C++ ning standart kutubhonasidagi tayyor obyekt va funksiyalarni qo’llashni o’rganishdir. 6 C++ tiliga ko‘plab yangiliklar kiritilgan bo‘lib, tilning imkoniyati yanada kengaytirilgan. C++ dasturlash tili ham boshqa dasturlash tillari kabi o‘z alfavitiga va belgilariga ega.  Tillarda mavjud alfavit va leksemalarga quyidagilar kiradi: 1. Katta va kichik lotin alfaviti harflari; 2. Raqamlar - 0,1,2,3,4,5,6,7,8,9; 3. Maxsus belgilar: " {} | [] () + - / % \ ; ' : ? <=>_ ! & ~ # ^ . *  Alfavit belgilaridan tilning leksemalari shakllantiriladi:  Identifikatorlar;  Kalit (xizmatchi yoki zahiralangan) so‘zlar;  O‘zgarmaslar;  Amallar belgilanishlari;  Ajratuvchilar. Bu tillarda tuzilgan dasturlarda izohlar istalgan joyda berilishi mumkin. Ular satriy va blokli ko‘rinishlarda bo’ladi. Satriy izohlar uchun “//”, blokli izohlar uchun “/*”, “*/” belgilari ishlatiladi.

1.2.Dastur tuzilmasi C++ dasturlash tilida dastur quyidagi tarkibda tashkil topadi: Direktivalar – funksiyalar kutubxonasini chaqirish. Ular maxsus include katalogida joylashgan va .h kengaytmali fayllar bo’ladi. С ++ tilida masalaning qo’yilishiga qarab kerakli kutubxonalar chaqiriladi. Bus esa dasturning xotirada egallaydigan joyini minimallashtiradi. Masalan, ma’lumotlarni kiritish-chiqarish proseduralari uchun: #include <stdio.h> tizimdan chaqirish #include “stdio.h” joriy katalogdan chaqirish. C++ dasturlash tili bilan ishlovchi eng sodda dasturlar Dev C++ va CodeBlocks dasturlaridir. Ularning tarkibida 300 dan ortiq kutubxonalar mavjud. Eng ko’p ishlatiladigan kutubxonalar quyidagilar: #include<iostream.h>, 7 #include <math.h> #include <conio.h> #include <graphics.h> #include <memory.h> va boshqalar Makrolar (#define) – dastur bajarilishi davomida o’zgaruvchi ko’rsatilgan qiymatni qabul qilishi uchun (const). Unda makroning nomi va qiymati ko’rsatiladi. Масалан : #define pi 3.1415 #define x 556 #define s[100] #define M x*x*x main () funksiyasi– asosiy degan ma’noni anglatadi. Bu funksiya “{“ belgisidan boshlanadi va dasturning asosini tashkil etuvchi o’zgaruvchilarning toifalari ko’rsatiladi. Dastur “}” belgisi bilan yakunlanishi shart. Agar dasturda qism dasturlardan foydalanilayotgan bo’lsa, ularning nomlari va haqiqiqy parametrlari keltiriladi. So’ngra dasturning asosiy buyruqlari yoziladi. Agar buyruqlar murakkab bo’lsas, ular alohida “{ }” belgilari orasiga olingan bo’lishi

kerak. С ++ tilida dasturning asosi bo’lmish buyruqlar kichik harflar bilan yoziladi. Buyruqlar nuqta-verguk bilan (;) yakunlanadi. Buyruqlar bir qator qilib yozilishi ham mumkin. C++ dasturlash tilida dastur funksiya va funksiyalardan tashkil topadi. Agar dastur bir nechta funksiyalardan tashkil topgan bo’lsa, bir funksiyaning nomi main deb nomlanishi shart. Dastur aynan main funksiyasining birinchi operatoridan boshlab bajariladi. C++ tilidagi dastur ko‘rinishini quyidagi misol yordamida keltirib o‘tamiz. #include <iostream.h> // sarlavha faylni qo‘shish int main () // bosh funksiya tavsifi 8 { // blok boshlanishi cout << “Salom Dunyo! “\n”; // satrni chop etish return 0; // funksiya qaytaradigan qiymat } // blok tugashi Dasturning 1-satrida #include direktivasi bo‘lib, dastur kodiga oqimli o‘qish/yozish funksiyalari va uning o‘zgaruvchilari e’loni joylashgan iostream.h sarlavha faylini qo‘shadi. Keyingi qatorlarda dasturning yagona, asosiy funksiyasi main() funksiyasi tavsifi keltirilgan. Shuni qayd etish kerakki, C++ dasturida albatta main() funksiyasi bo‘lishi shart va dastur shu funksiyani bajarish bilan o‘z ishini boshlaydi. Dastur tanasida konsol rejimi (Consol – rejimi bu MS DOS oynasi ko’rinishiga o’xshash oyna bo’lib, unda foydalanuvchi dastur tuzuishda faqat dastur kodlari bilan ishlaydi. Graphic interface – rejimida esa faqat tilning kodlari bilangina emas muhitning menyulari, komponentalari bilan ham ishlashi mumkin bo’ladi) da belgilar ketma-ketligini oqimga chiqarish amali qo‘llanilgan.

Ma’lumotlarni standart oqimga (ekranga) chiqarish uchun quyidagi format ishlatilgan: cout << <ifoda>; Bu yerda <ifoda> sifatida o‘zgaruvchi yoki sintsksisi to‘g‘ri yozilgan va qandaydir qiymat qabul qiluvchi til ifodasi kelishi mumkin (keyinchalik, burchak qavs ichiga olingan o‘zbekcha satr ostini til tarkibiga kirmaydigan tushuncha deb qabul qilish kerak). cin << a; Ma’lumotlarni klaviatura yordamida kiritish buyrug’i bo’lib, u ham iostream.h kutubxonasi tarkibidagi funksiya hisoblanadi. 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