Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 10000UZS
Размер 68.2KB
Покупки 0
Дата загрузки 06 Ноябрь 2026
Расширение docx
Раздел Курсовые работы
Предмет Информатика и ИТ

Продавец

Bohodir Jalolov

Chrono kutubxonasi va uning funksiyalari

Купить
Chrono kutubxonasi va uning funksiyalari  
MUNDARIJA:
Kirish…………………………………………………………………………... 3
I.BOB C++ DASTURLASH TILIDA VAQT BILAN ISHLASH VA 
CHRONO KUTUBXONASINING PAYDO BO‘LISHI
1.1 D asturlarda vaqt bilan ishlashning ahamiyati   ………………………............... 6
1.2 C ++ tilida vaqt bilan ishlashga ilk yondashuvlar  …………………………….. 9
II.BOB CHRONO KUTUBXONASINING ASOSIY TUSHUNCHALARI 
VA FUNKSIYALARI
2.1  C hrono kutubxonasining asosiy komponentlari 
…………………………….... 11
2.2 V aqtni o‘lchash va konvertatsiya qilish ……………................................. 14
2.3  Foydali funksiyalar va keng 
qo‘llanilishi ………....................................... 18
III. BOB  CHRONO KUTUBXONASINING AMALIY 
QO‘LLANILISHI
3.1 A goritmlarni test qilish va samaradorlikni o‘lchash…………………….. 20
3.2  Interfaol dasturlarda vaqtga asoslangan kutish  ……..…………………... 23
3.3  V aqt muhrlari (timestamp) yaratish ….........................................……….. 26
3.4 Real hayotda qo‘llanilish misollari  …….…...………………………….. 30
Xulosa……………………………………………………………......………… 32
Foydalanilgan adabiyotlar…………………………………………......……… 35 Kirish
C++  dasturlash  tili   keng  qamrovli   imkoniyatlar   bilan  ta’minlagan, samarali
va   yuqori   unumdorlikka   ega   bo‘lgan   tizim   dasturlarini   ishlab   chiqish   uchun
mukammal   vosita   hisoblanadi.   C++11   versiyasida   kiritilgan   chrono   kutubxonasi
vaqt   bilan   ishlashda   yangi   imkoniyatlarni   taqdim   etdi.   Ushbu   kutubxona,
dasturlarda   vaqtni   o‘lchash,   vaqt   birligidan   foydalanish   va   vaqtni   manipulyatsiya
qilish uchun qulay va samarali vositalarni taklif etadi.
Zamonaviy dasturlar ko‘pincha aniq vaqtni hisoblash, uning o‘tish vaqtlarini
tahlil   qilish   va   tizim   ishlashining   samaradorligini   baholashga   muhtoj.   Dasturda
vaqt   bilan   ishlashning   aniqligi   va   samaradorligi   uning   ishlash   tezligini   va
foydalanuvchiga   xizmat   ko‘rsatish   sifatini   bevosita   ta’sir   qiladi.   chrono
kutubxonasi yordamida dasturchilar yuqori aniqlikdagi vaqtni o‘lchash, vaqtni har
xil   birliklarga   konvertatsiya   qilish   va   tizimdagi   harakatlarni   aniqlashda   muhim
vositalardan foydalana oladilar.
C++ dasturlash tilida chrono kutubxonasi  yordamida vaqtni manipulyatsiya
qilish   va   vaqtga   asoslangan   operatsiyalarni   amalga   oshirish   imkoniyati,   dastur
samaradorligini yaxshilash, uning ishlashini sinovdan o‘tkazish, va foydalanuvchi
talablariga moslashish  imkonini  beradi. Bu kutubxona o‘zining keng qamrovli  va
aniq   sintaksisi   bilan   vaqtni   o‘lchashni   osonlashtirib,   dasturchilarga   vaqtga
asoslangan algoritmlarni yaratishda yordam beradi.
Ushbu   kurs   ishi   davomida   chrono   kutubxonasining   imkoniyatlari,   asosiys
komponentlari   va   funksiyalari   haqida   batafsil   ma'lumot   beriladi.   Shuningdek,
uning   amaliy   qo‘llanilishi   va   real   hayotdagi   dasturlarda   qanday   ishlatilishi   tahlil
qilinadi.
Kurs   ishining   maqsadi:   C++   dasturlash   tilida   chrono   kutubxonasining
imkoniyatlarini  o‘rganish,  uning asosiy  funksiyalarini  va metodlarini  tahlil  qilish,
shuningdek,   vaqtni   boshqarish   va   bajarilish   vaqtini   o‘lchash   jarayonlaridagi
ahamiyatini   ko‘rsatishdir.   C++   dasturlash   tilidagi   chrono   kutubxonasi,
dasturchilarga   vaqtni   o‘lchash,   vaqt   birliklarini   konvertatsiya   qilish,   va   vaqtga
asoslangan amallarni samarali va aniq bajarish imkoniyatini taqdim etadi.
3 Kurs ishining obekti:   vaqtni  boshqarish bilan bog‘liq amallarni  o‘z ichiga
olgan   barcha   jarayonlar,   ya'ni   vaqtni   o‘lchash   va   uni   manipulyatsiya   qilishning
turli   metodlari,   kutubxonaning   imkoniyatlari   va   funksiyalarini   o‘z   ichiga   oladi.
Bunday   imkoniyatlar   chrono   kutubxonasining   asosiy   komponentlari   —   duration,
time_point, clock kabi tushunchalar orqali amalga oshiriladi.
Kurs   ishining   dolzarbligi:   Dasturlar   ko‘pincha   aniq   vaqtni   hisoblash,
vaqtning o‘tishini  o‘lchash va tizim ishlash samaradorligini tahlil qilish zaruratini
tug‘diradi.   C++   dasturlash   tilida   chrono   kutubxonasi   vaqtni   o‘lchash,   vaqtga
asoslangan   operatsiyalarni   amalga   oshirish   va   tizimning   samaradorligini   aniqlash
uchun qulay va samarali vositalarni taqdim etadi.
C++   dasturlash   tili   bo‘yicha   chrono   kutubxonasining   dolzarbligi   nafaqat
yuqori aniqlikdagi vaqtni boshqarish imkoniyatlari bilan, balki turli platformalarda
va   operatsion   tizimlarda   muammosiz   ishlashi   bilan   ham   alohida   ahamiyatga   ega.
Bugungi   kunda   turli   tizimlarda   vaqtni   samarali   boshqarish,   ko‘p   vazifali
dasturlarni   optimallashtirish   va   dasturlarni   real   vaqt   rejimida   sinovdan   o‘tkazish
zarurati paydo bo‘lmoqda.
Shu   bilan   birga,   chrono   kutubxonasi   o‘zining   oddiy   va   intuitiv   sintaksisi
yordamida   dasturlash   jarayonini   ancha   soddalashtiradi,   dasturchilarga   vaqtni
o‘lchash   va   manipulyatsiya   qilish   jarayonini   to‘liq   nazorat   qilish   imkoniyatini
beradi.   Bu   kutubxona   yordamida   samarali   va   aniq   vaqt   boshqaruvini   amalga
oshirish   mumkin,   bu   esa   dasturlarni   yanada   tezroq   va   samarali   qilishga   imkon
yaratadi. Shuning uchun chrono kutubxonasining dolzarbligi yuqori bo‘lib, har bir
C++ dasturchisi uchun muhim vosita hisoblanadi
Kurs   ishining   predmeti:   C++   dasturlash   tilidagi   chrono   kutubxonasining
ishlash prinsipi, uning imkoniyatlari va amaliy qo‘llanilishidir. chrono kutubxonasi
vaqtni   o‘lchash,   vaqt   birliklarini   konvertatsiya   qilish,   va   vaqtga   asoslangan
operatsiyalarni amalga oshirishda dasturchilarga zarur vositalarni taqdim etadi.
Kurs   ishida   chrono   kutubxonasining   asosiy   funksiyalari   va   metodlari,
xususan, duration, time_point, va clock kabi komponentlarning ishlash jarayoni va
ularning   dasturlarda   qo‘llanilishi   tahlil   qilinadi.   Bundan   tashqari,   chrono
4 kutubxonasi   yordamida   vaqt   o‘lchash,   vaqtning   o‘tish   vaqtini   hisoblash,   va   turli
platformalarda   vaqtga   asoslangan   amallarni   qanday   bajarish   mumkinligi
o‘rganiladi.
Kurs   ishing   hajmi:   Ushbu   Kurs   ishi   kirish,   3   ta   bob,   9   ta   reja,   xulosa   va
foydalanilgan adabiyotlar qismidan iborat.
5 I.BOB C++ DASTURLASH TILIDA VAQT BILAN ISHLASH VA CHRONO
KUTUBXONASINING PAYDO BO‘LISHI
1.1    D asturlarda vaqt bilan ishlashning ahamiyati   
Dasturlar   ko‘p   hollarda   o‘z   ishlash   jarayonlarini,   resurs   sarfini,   va   boshqa
tizim parametrlari bilan bog‘liq vaqtni hisoblash va tahlil qilishga muhtoj.   Dastur
samaradorligini   oshirish,   tizimni   optimallashtirish   va   foydalanuvchining
ehtiyojlarini   qondirish   uchun   vaqtni   aniq   va   to‘g‘ri   boshqarish   zarur.   Vaqt   bilan
ishlash,   ayniqsa,   tizimlar   orasida   muvofiqlashtirish   va   ko‘p   vazifali
(multithreading) dasturlar yaratishda juda muhim hisoblanadi 
Bundan   tashqari,   real   vaqt   rejimida   ishlovchi   dasturlarni   ishlab   chiqishda
vaqtning aniq o‘lchovlari zarur bo‘ladi. Misol uchun, tarmoq aloqalarini sinovdan
o‘tkazishda   yoki   vaqtga   asoslangan   kutish   (timing)   jarayonlari   uchun   aniq   vaqt
hisoblari kerak bo‘ladi. Dasturlarda vaqt bilan ishlashning ahamiyati nafaqat tizim
samaradorligini   oshirishda,   balki   foydalanuvchilarga   qulaylik   yaratishda   ham
ko‘rinadi.
C++   dasturlash   tili   bo‘yicha   vaqtni   boshqarishning   muhimligi,   ayniqsa,
chrono kutubxonasi bilan chuqur bog‘liqdir. chrono kutubxonasi, vaqtni o‘lchash,
vaqtni   manipulyatsiya   qilish   va   turli   vaqt   birligini   konvertatsiya   qilish   imkonini
beradi. Bu kutubxona yordamida dasturlashda aniq vaqt o‘lchashni amalga oshirish
mumkin   bo‘lib,   tizim   ishlashini   yanada   samarali   va   optimallashtirilgan   holda
kuzatish mumkin .
Dasturlarda   vaqtni   aniq   boshqarishning   muhimligi   nafaqat   texnik   jihatdan,
balki foydalanuvchilar uchun tizimni ishonchli va tez ishlashini ta’minlashda ham
alohida   o‘rin   tutadi.   Buning   uchun   vaqtni   boshqarishning   yuqori   darajadagi
metodlari va kutubxonalariga ehtiyoj bor. C++ tilidagi chrono kutubxonasi vaqtni
boshqarishning yangi darajasini taqdim etib, zamonaviy dasturlarning ehtiyojlarini
qondirish imkoniyatini yaratadi
6 1.2  C ++ tilida vaqt bilan ishlashga ilk yondashuvlar
C++ dasturlash tilida vaqt bilan ishlashning dastlabki  yondashuvlari  asosan
oddiy   metodlar   va   kutubxonalar   orqali   amalga   oshirilgan.   Dastlabki   versiyalarda
vaqtni   o‘lchash   uchun   faqat   time.h   kutubxonasi   mavjud   bo‘lib,   bu   kutubxona
orqali vaqtni olish va uni o‘lchashning oddiy usullari taqdim etilgan.  Misol uchun,
time() funksiyasi vaqtni o‘lchash uchun eng keng tarqalgan usul edi.
Dastlab,   C++   dasturlashda   vaqt   bilan   ishlash   uchun   faqatgina   quyidagi
metodlar mavjud edi:
1. time() funksiyasi:  Bu funksiya dastlab C tilida mavjud bo‘lib, vaqti hozirgi
aniq   vaqtni   sonli   ko‘rinishda   (sekundlarda)   qaytaradi.   Vaqtni   o‘lchashning
eng sodda usuli edi, ammo bu usulda vaqtning aniqligi cheklangan va faqat
vaqtni sekunda o‘lchashga imkon berardi.
Misol:
#include <iostream>
#include <ctime>
int main() {
    std::time_t start = std::time(nullptr);
    // Dastur kodi
    std::time_t end = std::time(nullptr);
    std::cout << "Vaqt: " << difftime(end, start) << " sekund" << std::endl;
     return 0;
}
2. c lock()   funksiyasi:   Bu   funksiya   dasturdagi   kodning   bajarilish   vaqti   (CPU
vaqti)ni   o‘lchash   uchun   ishlatilgan.   clock()   faqat   CPU   ishlash   vaqtini
qaytaradi,   shuning   uchun   real   vaqtni   o‘lchashda   uning   foydalanish
imkoniyati cheklangan.
Misol:
#include <iostream>
#include <ctime>
7 int main() {
    clock_t start = clock();
    // Dastur kodi
    clock_t end = clock();
    std::cout << "Vaqt: " << (end - start) / CLOCKS_PER_SEC << " sekund"
<< std::endl;
    return 0;
}
Ushbu   dastlabki   yondashuvlar   asosan   vaqtni   o‘lchashning   oddiy   metodlari
bo‘lib,   aniqlik   va   samaradorlik   masalalarini   hal   qilishda   muammolarni   keltirib
chiqargan. Masalan, time() faqat sekundlar bo‘yicha o‘lchash imkonini berar edi va
aniqroq vaqtni talab qiladigan vazifalar uchun foydalanuvchilarga qoniqarli javob
bera   olmaydi.   Bundan   tashqari,   clock()   funksiyasi   faqat   CPU   vaqti   bo‘yicha
ishlaydi   va   real   vaqtni   aniqlashda   foydalanuvchilarga   yetarli   bo‘lmagan
ma'lumotlarni taqdim etadi.
Shu   sababli,   C++   ning   yangi   versiyalarida   vaqt   bilan   ishlashni   yanada
yaxshilash   va   qo‘shimcha   imkoniyatlar   yaratish   uchun   chrono   kutubxonasi
kiritildi.   Bu   kutubxona   aniqroq   vaqtni   o‘lchash   va   vaqtga   asoslangan
manipulyatsiyalarni amalga oshirish uchun mo‘ljallangan edi.
8 II.  BOB CHRONO KUTUBXONASINING ASOSIY TUSHUNCHALARI VA
FUNKSIYALARI
2.1   C hrono kutubxonasining asosiy komponentlari
C++   dasturlash   tilida   vaqtni   aniq   va   samarali   boshqarish   uchun   chrono
kutubxonasi   taqdim   etilgan   bo‘lib,   uning   asosiy   komponentlari   vaqtni   o‘lchash,
saqlash va manipulyatsiya qilish imkoniyatlarini taqdim etadi.  Chrono  kutubxonasi
uch   asosiy   komponentdan   tashkil   topgan:   duration,   time_point,   va   clock .   Ushbu
komponentlar   birgalikda   vaqtni   boshqarishning   eng   samarali   va   aniq   usullarini
taqdim etadi.
1. duration
duration   -   bu   vaqt   o‘lchovlari   birligi,   ya'ni   vaqtni   o‘lchashda   ishlatiladigan
asosiy   komponentdir.   U   vaqtning   uzunligini   yoki   davomiyligini   ifodalaydi.
duration  turli vaqt birliklarida (sekund, minut, soat va boshqalar) o‘lchangan vaqtni
saqlaydi.   duration   obyekti   ikki  parametrni  qabul   qiladi:   vaqtni  o‘lchash  birligi  va
vaqtning qiymati.
Misol uchun, quyidagi kodda  duration  5 sekundni ifodalaydi:
cpp
КопироватьРедактировать
#include <iostream>
#include <chrono>
int main() {
    std::chrono::seconds sec(5);  // 5 sekund
    std::cout << "Vaqt davomiyligi: " << sec.count() << " sekund" << std::endl;
     return 0;
}
 duration   obyekti   turli   vaqt   birligi   (masalan,   seconds,   milliseconds,
microseconds) bilan yaratilishi mumkin.
 count()  metodidan foydalanib, vaqtning qiymatini olish mumkin.
2. time_point
9 time_point   -   bu   muayyan   vaqt   nuqtasini   ifodalovchi   komponentdir.
time_point   biror   vaqt   momentini,   masalan,   tizimning   hozirgi   vaqtini   yoki
boshlang‘ich   nuqtadan   boshlab   o‘tgan   vaqtni   ifodalaydi.   Bu   komponent   duration
bilan birga ishlaydi va vaqtni belgilashda ishlatiladi.
Misol uchun, hozirgi vaqtni olish uchun quyidagi kodni ko‘rish mumkin:
 
#include <iostream>
#include <chrono>
int main() {
    auto now = std::chrono::system_clock::now();  // Hozirgi vaqt
        std::cout   <<   "Hozirgi   vaqt:   "   <<   now.time_since_epoch().count()   <<   "
birlik" << std::endl;
     return 0;
}
 time_point   obyekti   system_clock   yoki   steady_clock   kabi   turli   soatlar   bilan
bog‘lanishi mumkin.
3. clock
Clock  - bu vaqtni olish va vaqtni o‘lchash uchun ishlatiladigan tizim soatining
turidir.  chrono  kutubxonasida bir nechta turdagi soatlar mavjud, masalan:
 system_clock :   Bu   haqiqiy   vaqtni   ifodalovchi   soat.   system_clock   tizim
vaqtini, ya'ni kompyuterning real vaqtini o‘lchaydi.
 steady_clock :   Bu   soat   vaqt   o‘tishini   aniq   va   uzluksiz   o‘lchash   imkonini
beradi, lekin haqiqiy vaqtni o‘lchamaydi. U, asosan, vaqtni o‘lchashda yoki
algoritmlarning bajarilish vaqtini o‘lchashda ishlatiladi.
 high_resolution_clock : Bu soat  eng yuqori  aniqlikka ega bo‘lib, eng kichik
vaqt oraliqlarini o‘lchash uchun ishlatiladi.
Misol:
#include <iostream>
#include <chrono>
10 int main() {
        auto   start   =   std::chrono::high_resolution_clock::now();     //   Yangi   soatni
boshlash
    // Ba'zi kod
        auto   end   =   std::chrono::high_resolution_clock::now();     //   Yangi   soatni
tugatish
        std::chrono::duration<double>   elapsed   =   end   -   start;     //   O‘tgan   vaqtni
hisoblash
    std::cout << "Vaqt: " << elapsed.count() << " soniya" << std::endl;
     return 0;
}
 high_resolution_clock   yordamida vaqtni juda aniq o‘lchash mumkin, bu esa
dastur tezligini baholash uchun foydalidir
11 2.2  V aqtni o‘lchash va konvertatsiya qilish
Chrono   kutubxonasi   yordamida   C++   dasturlarida   vaqtni   o‘lchash   va
konvertatsiya   qilish   juda   qulay   va   samarali   amalga   oshiriladi.   Bu   jarayonlarda
asosan duration, time_point, va clock komponentlari ishlatiladi. Vaqtni o‘lchash va
uni   bir   vaqt   birliklaridan   boshqasiga   o‘zgartirish   (konvertatsiya   qilish)   zaruriy
amaliyotlarni o‘z ichiga oladi.
1. Vaqtni o‘lchash
Vaqtni   o‘lchash   —   bu   dasturda   bajarilgan   ishning   davomiyligini   yoki   aniq
vaqtni   aniqlash   jarayonidir.   Chrono   kutubxonasi   yordamida   vaqtni   o‘lchashning
eng asosiy usuli clock yordamida amalga oshiriladi.
 system_clock — tizim vaqtini ifodalovchi soat. Bu soat orqali haqiqiy vaqtni
o‘lchash mumkin.
 steady_clock   —   bu   soat   faqat   vaqt   o‘tishini   o‘lchaydi   va   kompyuterning
tizim   vaqtini   hisoblamaydi.   Bu   soat   real   vaqtni   o‘lchashda   ishlatilmaydi,
balki dastur ishlashining davomiyligini o‘lchashda foydalidir.
Misol: Vaqtni o‘lchash
Quyidagi   misolda   steady_clock   yordamida   dastur   bajarilishining   vaqtini
o‘lchash ko‘rsatilgan:
#include <iostream>
#include <chrono>
int main() {
    auto start = std::chrono::steady_clock::now();  // Vaqtni boshlash
    // Dastur kodi (masalan, ba'zi hisoblashlar)
    auto end = std::chrono::steady_clock::now();    // Vaqtni tugatish
12         std::chrono::duration<double>   elapsed   =   end   -   start;     //   O‘tgan   vaqtni
hisoblash
    std::cout << "Dastur bajarilish vaqti: " << elapsed.count() << " soniya" <<
std::endl;
    return 0;
}
Yuqoridagi   misolda,   steady_clock   yordamida   vaqtni   o‘lchab,   dastur
bajarilishining davomiyligini soniyalar ko‘rinishida olish mumkin.
2. Vaqtni konvertatsiya qilish
Chrono   kutubxonasida   vaqtni   konvertatsiya   qilish   —   bu   vaqt   birligini
boshqa   birligiga   o‘zgartirish   jarayonidir.   Misol   uchun,   vaqtni   sekunddan
millisekundga yoki soatdan minutga o‘zgartirish.
duration obyekti turli vaqt  birliklari bilan ishlashni  qo‘llab-quvvatlaydi. Bu
yordamida vaqtni turli birliklarga o‘zgartirish mumkin.
Misol: Vaqtni konvertatsiya qilish
Quyidagi   misolda   duration   obyekti   yordamida   vaqtni   sekunddan
millisekundga va mikrosekundga o‘zgartirish ko‘rsatilgan:
#include <iostream>
#include <chrono>
int main() {
    std::chrono::seconds sec(10);  // 10 sekund
13     // Sekundni millisekundga o‘zgartirish
        std::chrono::milliseconds   ms   =
std::chrono::duration_cast<std::chrono::milliseconds>(sec);
    std::cout << "10 sekund = " << ms.count() << " millisekund" << std::endl;
    // Sekundni mikrosekundga o‘zgartirish
        std::chrono::microseconds
std::chrono::duration_cast<std::chrono::microseconds>(sec);
        std::cout   <<   "10   sekund   =   "   <<   us.count()   <<   "   mikrosekund"   <<
std::endl;
    return 0;
}
Yuqoridagi   misolda   duration_cast   yordamida   duration   obyekti   sekunddan
millisekund   va   mikrosekundga   o‘zgartirilgan.   duration_cast   metodini   ishlatish,
duration obyekti orasidagi konvertatsiyani amalga oshiradi.
Vaqt birligini aniq ko‘rsatish
C++   chrono   kutubxonasi   yordamida   har   bir   duration   obyekti   o‘zining
birligiga ega. Misol uchun, quyidagi kodda turli birliklarni ko‘rsataylik:
#include <iostream>
#include <chrono>
14 int main() {
    std::chrono::hours h(2);  // 2 soat
        std::chrono::minutes
mstd::chrono::duration_cast<std::chrono::minutes>(h);
        std::chrono::seconds
sstd::chrono::duration_cast<std::chrono::seconds>(h);
    std::cout << "2 soat = " << m.count() << " minut" << std::endl;
    std::cout << "2 soat = " << s.count() << " sekund" << std::endl;
    return 0;
}
Bu yerda, hours birligini minut va sekundga o‘zgartirish orqali vaqt birligini
aniq konvertatsiya qilamiz.
15 2.3  Foydali funksiyalar va keng qo‘llanilishi
C++   dasturlash   tilidagi   chrono   kutubxonasi   vaqtni   o‘lchash   va   boshqarish
bo‘yicha juda ko‘p foydali funksiyalarni taqdim etadi. Ushbu funksiyalar turli vaqt
birliklarida vaqtni o‘lchash, manipulyatsiya qilish, konvertatsiya qilish va turli vaqt
operatsiyalarini   bajarish   imkonini   beradi.   Quyida   chrono   kutubxonasidagi   eng
foydali funksiyalar va ularning keng qo‘llanilishi haqida batafsil ma'lumot beriladi.
1. duration va duration_cast funksiyalari
duration   va   duration_cast   -   bu   vaqt   birligida   vaqt   o‘lchashning   asosiy
vositalaridir.   duration   o‘z   ichiga   vaqtning   qiymatini   va   uning   birligini   oladi,
masalan,   sekundlar,   minutlar,   va   boshqa   birliklar.   duration_cast   esa   bir   vaqt
birligini boshqa birligiga o‘zgartirish imkoniyatini beradi.
Misol:
#include <iostream>
#include <chrono>
int main() {
    std::chrono::milliseconds ms(5000);  // 5000 millisekund
        std::chrono::seconds
std::chrono::duration_cast<std::chrono::seconds>(ms);
    std::cout << ms.count() << " millisekund = " << sec.count() << " sekund"
<< std::endl;
     return 0;
}
 duration_cast   yordamida   vaqtni   bir   birlikdan   boshqa   birlikka   konvertatsiya
qilish oson.
2. system_clock va steady_clock
system_clock   tizimning   hozirgi   vaqtini   olish   uchun   ishlatiladi,   ya'ni
kompyuterning haqiqiy vaqtini ko‘rsatadi. steady_clock esa, tizimning real vaqtini
o‘lchamaydi,   balki   o‘tgan   vaqtni   aniq   va   uzluksiz   o‘lchash   uchun   ishlatiladi.   Bu
16 soat   dasturdagi   vaqtni   o‘lchashda   juda   foydali,   masalan,   algoritmlarning
samaradorligini o‘lchashda.
Misol:
#include <iostream>
#include <chrono>
int main() {
    auto start = std::chrono::steady_clock::now();
    // Ba'zi kod
    auto end = std::chrono::steady_clock::now();
    std::chrono::duration<double> elapsed = end - start;
    std::cout << "Vaqt: " << elapsed.count() << " soniya" << std::endl;
     return 0;
}
 steady_clock   yordamida   dasturdagi   vaqtni   aniq   o‘lchash   mumkin,   bu   esa
ko‘p vazifali dasturlar va tizimlarni optimallashtirishda foydalidir.
3. time_point
time_point obyekti muayyan vaqt nuqtasini ifodalaydi. Bu vaqtni o‘lchashda
va   uni   belgilashda   foydalidir.   time_point   yordamida,   masalan,   biror   vaqt
momentini yoki vaqtning o‘tgan nuqtasini olish mumkin.
Misol:
#include <iostream>
#include <chrono>
int main() {
    auto now = std::chrono::system_clock::now();
        std::cout   <<   "Hozirgi   vaqt:   "   <<   now.time_since_epoch().count()   <<   "
birlik" << std::endl;
     return 0;
}
17  time_point yordamida tizimning hozirgi vaqtini olish mumkin.
4. high_resolution_clock
high_resolution_clock   —   bu   eng   yuqori   aniqlikka   ega   bo‘lgan   soat   bo‘lib,
juda kichik vaqt oraliqlarini o‘lchash imkoniyatini beradi. Dastur tezligini, o‘tgan
vaqtni aniq o‘lchash uchun bu soat ishlatiladi.
Misol:
#include <iostream>
#include <chrono>
int main() {
    auto start = std::chrono::high_resolution_clock::now();
    // Ba'zi kod
    auto end = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double> elapsed = end - start;
    std::cout << "Dastur bajarilish vaqti: " << elapsed.count() << " soniya" <<
std::endl;
     return 0;
}
 high_resolution_clock   yordamida   dastur   kodining   aniq   ishlash   vaqtini
o‘lchash   mumkin,   bu   ayniqsa   algoritmlar   samaradorligini   baholashda
foydalidir.
5. Vaqtni ko‘rsatuvchi funksiyalar
C++   dasturlarida   vaqtni   ko‘rsatish   uchun   ko‘plab   turli   metodlar   mavjud.
chrono   kutubxonasi   yordamida   vaqtni   aniq   formatda   chiqarish   yoki   o‘lchash
mumkin.
Misol:
#include <iostream>
#include <chrono>
#include <ctime>
18 int main() {
        std::time_t
std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
    std::cout << "Hozirgi vaqt: " << std::ctime(&t) << std::endl;
     return 0;
}
 to_time_t   funksiyasi   yordamida   tizim   vaqtini   time_t   formatida   olish   va
ctime yordamida uni o‘qish mumkin.
Keng qo‘llanilishi:
1. Tizim   monitoringi   va   profilingi:   Dastur   ishlash   vaqtini   o‘lchashda   va
tizimning samaradorligini tahlil qilishda chrono kutubxonasidan foydalanish
keng   tarqalgan.   Bu   yordamida   resurslar   sarfi   va   ishlash   samaradorligini
o‘lchash mumkin.
2. Multithreading   (ko‘p   vazifali   ishlash):   C++   da   ko‘p   vazifali   dasturlar
yaratishda,   vaqtni   boshqarish   va   kutish   vaqtlarini   o‘lchash   zarur   bo‘ladi.
steady_clock va high_resolution_clock bu jarayonda muhim rol o‘ynaydi.
3. Simulyatsiyalar   va   o‘yinlar:   O‘yinlarda   yoki   simulyatsiyalarda   vaqtni
boshqarish   va   uni   aniq   o‘lchash   muhim   hisoblanadi.   Vaqtni   aniqlik   bilan
o‘lchash   o‘yin   ishining   tezligini   va   unumdorligini   optimallashtirishda
yordam beradi
19 III. BOB  CHRONO KUTUBXONASINING AMALIY QO‘LLANILISHI
3.1  A goritmlarni test qilish va samaradorlikni o‘lchash  
Algoritmlarning samaradorligini o‘lchashda asosiy parametrlar — vaqt va resurslar
sarfi hisoblanadi. Samaradorlikni o‘lchash uchun, C++ da chrono kutubxonasi 
yordamida vaqtni o‘lchash imkoniyatiga egamiz. Vaqt o‘lchovlari algoritmning 
ishlash vaqtini baholashda qo‘llaniladi.
Samaradorlikni o‘lchashning umumiy yondashuvi:
 Algoritmning boshlanish va tugash vaqtini o‘lchash.
 O‘tgan vaqtni hisoblash va samaradorlikni baholash.
 Yirik ma'lumotlar to‘plami bilan algoritmni test qilish.
Misol:
Quyidagi misolda, bir nechta raqamlarning yig‘indisini hisoblaydigan oddiy 
algoritmning samaradorligi o‘lchanmoqda:
#include <iostream>
#include <chrono>
#include <vector>
int main() {
    // 1 dan 10^6 gacha bo'lgan sonlar ro'yxati
    std::vector<int> numbers(1000000);
    for (int i = 0; i < 1000000; ++i) {
        numbers[i] = i + 1;
    }
    // Algoritmning boshlanish va tugash vaqtlari
    auto start = std::chrono::high_resolution_clock::now();
    
    long long sum = 0;
    for (int num : numbers) {
        sum += num;
20     }
    auto end = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double> elapsed = end - start;  // O‘tgan vaqtni hisoblash
    std::cout << "Yig'indi: " << sum << std::endl;
    std::cout << "Algoritm bajarilish vaqti: " << elapsed.count() << " soniya" << 
std::endl;
    return 0;
}
Bu kodda, million elementdan iborat ro‘yxatni yig‘ib, uning yig‘indisini hisoblash 
vaqti o‘lchanmoqda. high_resolution_clock yordamida vaqtni aniq o‘lchash va 
elapsed.count() yordamida bu vaqtni soniya sifatida olish mumkin.
2. Algoritm samaradorligini o‘lchash uchun murakkab usullar
Algoritm samaradorligini o‘lchashda ko‘p holatlarda vaqt o‘lchashdan tashqari, 
resurslar sarfi va ma'lumotlar tuzilmasi kabi boshqa omillar ham hisobga olinadi. 
Algoritmlarning samaradorligini o‘lchashning boshqa murakkab usullari 
quyidagilar:
 Algoritmlarni turli ma'lumotlar to‘plamlarida test qilish: Yirik va kichik 
ma'lumotlar bilan algoritmni test qilib, uning ishlash samaradorligini 
baholash mumkin.
 Resurslarni o‘lchash: Dastur yoki algoritmning xotira va protsessor 
resurslarini qanday ishlatayotganini o‘lchash. Bu uchun, masalan, valgrind, 
gprof yoki perf kabi tashqi vositalar ishlatilishi mumkin.
 An'anaviy va parallellashtirilgan algoritmlar: Parallellashgan algoritmlarning
samaradorligini o‘lchashda chrono kutubxonasidan foydalanish yordamida 
ishlash vaqtining qisqarishi aniqlanishi mumkin.
3. Test qilish uchun algoritmlarni optimallashtirish
Algoritmni test qilish jarayonida uning samaradorligini oshirish uchun 
optimallashtirish qilish zarur bo‘ladi.  Algoritmni optimallashtirishning asosiy 
yo‘llari quyidagilar:
21  Ma'lumotlar tuzilmasini yaxshilash: Algoritm samaradorligi ma'lumotlar 
tuzilmasiga bog‘liq. Misol uchun, tartiblash algoritmlarini yaxshilashda turli 
algoritmlarni (masalan, QuickSort va MergeSort) taqqoslash mumkin.
 Memoriyadan samarali foydalanish: Xotira sarfini kamaytirish uchun 
dynamic programming yoki greedy yondashuvlarini qo‘llash mumkin.
 Parallel ishlash: Dasturda ko‘p vazifali (multithreading) ishlash yordamida 
algoritm samaradorligini oshirish mumkin.  Bu ko‘p yadroli protsessorlarda 
samarali ishlashga yordam beradi.
Misol: Parallel hisoblash
Quyidagi misolda, OpenMP yordamida parallel hisoblash amalga oshirilmoqda:
#include <iostream>
#include <chrono>
#include <vector>
#include <omp.h>
int main() {
    // 1 dan 10^6 gacha bo'lgan sonlar ro'yxati
    std::vector<int> numbers(1000000);
    for (int i = 0; i < 1000000; ++i) {
        numbers[i] = i + 1;
    }
    auto start = std::chrono::high_resolution_clock::now();
    
    long long sum = 0;
    #pragma omp parallel for reduction(+:sum)
    for (int i = 0; i < numbers.size(); ++i) {
        sum += numbers[i];
    }
22     auto end = std::chrono::high_resolution_clock::now();
    
    std::chrono::duration<double> elapsed = end - start;
    std::cout << "Yig'indi: " << sum << std::endl;
    std::cout << "Algoritm bajarilish vaqti (parallel): " << elapsed.count() << " 
soniya" << std::endl;
    return 0;
}
Bu misolda, OpenMP yordamida ko‘p yadroli hisoblash ishlari parallel tarzda 
bajariladi, bu esa vaqtni sezilarli darajada qisqartiradi.
4. Vaqt va samaradorlikni taqqoslash
Algoritmlarni taqqoslashda eng oddiy metod — ularning ishlash vaqtini 
taqqoslash. Dastur yoki algoritmni optimallashtirishda vaqtni o‘lchash asosiy 
yondashuv bo‘lib, samaradorlikni aniqlash uchun yordam beradi.
Misol: Algoritmlarni taqqoslash
#include <iostream>
#include <chrono>
#include <vector>
#include <algorithm>
// Oddiy tartiblash algoritmi (Bubble Sort)
void bubbleSort(std::vector<int>& arr) {
    int n = arr.size();
    for (int i = 0; i < n-1; ++i) {
        for (int j = 0; j < n-i-1; ++j) {
            if (arr[j] > arr[j+1]) {
                std::swap(arr[j], arr[j+1]);
            }
        }
23     }
}
// Tez tartiblash algoritmi (QuickSort)
void quickSort(std::vector<int>& arr, int low, int high) {
    if (low < high) {
        int pivot = arr[high];
        int i = low - 1;
        for (int j = low; j < high; ++j) {
            if (arr[j] < pivot) {
                ++i;
                std::swap(arr[i], arr[j]);
            }
        }
        std::swap(arr[i+1], arr[high]);
        quickSort(arr, low, i);
        quickSort(arr, i+2, high);
    }
}
int main() {
    std::vector<int> arr1(100000);
    std::vector<int> arr2(100000);
    for (int i = 0; i < 100000; ++i) {
        arr1[i] = rand() % 100000;
        arr2[i] = arr1[i];
    }
    // Bubble Sort
24     auto start = std::chrono::high_resolution_clock::now();
    bubbleSort(arr1);
    auto end = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double> bubbleSortTime = end - start;
    // Quick Sort
    start = std::chrono::high_resolution_clock::now();
    quickSort(arr2, 0, arr2.size() - 1);
    end = std::chrono::high_resolution_clock::now();
    std::chrono::duration<double> quickSortTime = end - start;
    std::cout << "Bubble Sort vaqti: " << bubbleSortTime.count() << " soniya" << 
std::endl;
    std::cout << "Quick Sort vaqti: " << quickSortTime.count() << " soniya" << 
std::endl;
    return 0;
}
25 3.2  Interfaol dasturlarda vaqtga asoslangan kutish
Interfaol   dasturlar   (yoki   "interactive   programs")   foydalanuvchi   bilan   doimiy
aloqada   bo‘lishi   va   ularning   harakatlariga   javob   berishi   kerak.   Bu   turdagi
dasturlarda, ayniqsa, foydalanuvchidan kutilayotgan javoblarni olish uchun vaqtga
asoslangan   kutish   usullari   zarur   bo‘ladi.   Vaqtga   asoslangan   kutish   dasturda
foydalanuvchi tomonidan amalga oshirilgan harakatlarni kutish yoki boshqa vaqtga
bog‘liq vazifalarni bajarish uchun muhimdir. Chrono kutubxonasi va C++ tilining
boshqa vositalari yordamida bunday kutishlarni samarali amalga oshirish mumkin.
1. Vaqtga asoslangan kutish: Nima uchun kerak?
Interfaol dasturlarda vaqtga asoslangan kutish ko‘plab vazifalarni bajarish zarur.
  Masalan:
Foydalanuvchidan kiritish ma'lumotini kutish (masalan, matn kiritilishi yoki
tugma bosilishi).
 Foydalanuvchi uchun kutish vaqtini (masalan, 5 soniya kutish) belgilash.
 Dastur ishlashini doimiy yangilash (masalan, animatsiyalar yoki o‘yinlarda).
 Tizim yoki serverga bog‘langan kutish (masalan, tarmoqdan ma'lumot olish
uchun kutish).
Vaqtga   asoslangan   kutish   jarayonida   chrono   kutubxonasi   va
std::this_thread::sleep_for  funksiyasi  keng qo‘llaniladi. Bu  funksiyalar  yordamida
vaqtni aniqlash va kutish vaqtlarini belgilash osonlashadi.
2. C++ da vaqtga asoslangan kutish
C++   da   vaqtga   asoslangan   kutishni   amalga   oshirish   uchun
std::this_thread::sleep_for   funksiyasi   va   chrono   kutubxonasi   yordamida   vaqtni
o‘lchash va kutish jarayonini amalga oshirish mumkin.
std::this_thread::sleep_for   funksiyasi   ko‘rsatilgan   vaqt   davomida   dastur
bajarilishini   vaqtincha   to‘xtatadi.   Bu   vaqtni   std::chrono   kutubxonasi   yordamida
aniqlash mumkin.
Misol:
Quyidagi misolda, dastur foydalanuvchidan 5 soniya kutishni talab qiladi, shundan
so‘ng dasturning natijasi ko‘rsatiladi:
26 #include <iostream>
#include <chrono>
#include <thread>
int main() {
    std::cout << "Dastur 5 soniya kutadi..." << std::endl;
    // 5 soniya kutish
    std::this_thread::sleep_for(std::chrono::seconds(5));
    std::cout << "5 soniya o‘tib, dastur davom etadi." << std::endl;
    return 0;
}
Bu misolda std::this_thread::sleep_for funksiyasi orqali dastur 5 soniya kutmoqda.
Kutish tugagach, dastur davom etadi.
3. Foydalanuvchi harakatlarini kutish
Interfaol dasturlarda, foydalanuvchining harakatlarini kutish juda muhim. Masalan,
foydalanuvchi   tugmani   bosganini   kutish,   ma'lum   bir   kiritish   kutilayotgan   vaqtni
belgilash   kabi   vazifalar   uchun   vaqtga   asoslangan   kutish   qo‘llaniladi.   Bunday
holatlarda   std::cin   yordamida   foydalanuvchidan   ma'lumot   kiritishni   kutish   va
ma'lum   vaqt   ichida   kiritilmasa,   boshqa   ishlarni   bajarish   uchun
std::this_thread::sleep_for funksiyasidan foydalanish mumkin.
Misol: Foydalanuvchidan kiritishni kutish (timeout bilan)
#include <iostream>
#include <chrono>
#include <thread>
#include <mutex>
#include <condition_variable>
std::mutex mtx;
27 std::condition_variable cv;
bool user_input_received = false;
void wait_for_user_input() {
    std::this_thread::sleep_for(std::chrono::seconds(5)); // 5 soniya kutish
    if (!user_input_received) {
                std::cout   <<   "Vaqt   tugadi,   foydalanuvchi   hech   qanday   kiritish   amalga
oshirmadi!" << std::endl;
    }
}
int main() {
    std::cout << "Iltimos, matn kiriting (5 soniya ichida): ";
    // Foydalanuvchi kiritish kutilmoqda
    std::thread timer(wait_for_user_input);
    std::string user_input;
    std::getline(std::cin, user_input);  // Foydalanuvchi kiritishi
    {
        std::lock_guard<std::mutex> lock(mtx);
        user_input_received = true;
    }
    cv.notify_one();
    
    // Timer thread-ni kutib olish
    timer.join();
    if (user_input_received) {
28         std::cout << "Foydalanuvchi kiritdi: " << user_input << std::endl;
     }
    return 0;
}
Bu misolda:
 std::this_thread::sleep_for yordamida 5 soniya kutish amalga oshirilmoqda.
 Agar   foydalanuvchi   5   soniya   ichida   kiritishni   amalga   oshirsa,
user_input_received flagi o‘zgaradi va kiritilgan matn ekranga chiqariladi.
 Agar   5   soniya   o‘tsagina,   foydalanuvchi   kiritishni   amalga   oshirsa,   vaqt
tugagani haqida xabar beriladi.
4. Animatsiya yoki yangilanishni kutish
Ko‘plab   interfaol   dasturlarda   animatsiyalar   yoki   foydalanuvchi   interfeysini
yangilash   uchun   vaqtga   asoslangan   kutish   zarur   bo‘ladi.   Misol   uchun,   o‘yinlarda
yoki   grafikalarda,   har   bir   kadrlarda   animatsiya   yoki   interfeysning   yangilanishi
uchun kutish talab qilinadi. Bu jarayonda std::this_thread::sleep_for yordamida har
bir kadri kutib, yangilanish vaqti belgilanishi mumkin.
Misol: Animatsiya uchun vaqtga asoslangan kutish
#include <iostream>
#include <chrono>
#include <thread>
void animate() {
     for (int i = 0; i < 10; ++i) {
        std::cout << "Animatsiya: " << i + 1 << std::endl;
                std::this_thread::sleep_for(std::chrono::milliseconds(500));     //   500
millisekund
    }
}
29 int main() {
    std::cout << "Animatsiya boshladi..."  << std::endl;
     animate();
    std::cout << "Animatsiya tugadi." << std::endl;
    return 0;
}
Bu misolda:
 std::this_thread::sleep_for   yordamida   har   bir   animatsiya   kadri   orasida   500
millisekund kutish amalga oshiriladi.
 Har bir yangi kadrdan keyin animatsiya ekranda yangilanadi.
5. Keng qo‘llanilishi
 O‘yinlar   va   animatsiyalar:   O‘yinlar   yoki   interfaol   ilovalarda
foydalanuvchining   harakatlarini   kutish,   animatsiyalarni   yangilash   vaqti
o‘lchamlarini sozlash uchun vaqtga asoslangan kutish ishlatiladi.
 Grafik   foydalanuvchi   interfeyslari   (GUI):   GUI   ilovalarida   foydalanuvchi
kiritishlarini   kutish   va   ekran   yangilanishlarini   boshqarish   uchun   vaqtga
asoslangan kutish ishlatiladi.
 Tarmoq   dasturlari:   Server   yoki   boshqa   tizimlardan   ma'lumot   olish   uchun
kutish vaqtlarini sozlashda qo‘llaniladi, masalan, tarmoqdan ma'lumot olish
va foydalanuvchiga xabar berish.
 Resurslar   monitoringi:   Tizim   resurslarini   monitoring   qilishda   yoki   maxsus
so‘rovlar amalga oshirilayotganida vaqtni boshqarish zarur.
30 3.3  Vaqt muhrlari (timestamp) yaratish   
Vaqt muhrlari (timestamp) — bu aniq bir vaqtni, odatda, aniq sana va vaqtni
ifodalovchi   raqamli   qiymat   yoki   string   bo‘lib,   tizimlarda   ma'lumotlar   saqlash   va
ularga   tahlil   qilishda   keng   qo‘llaniladi.   Vaqt   muhrlari   ko‘pincha   fayl   tizimlarida,
ma'lumotlar   bazalarida,   tarmoq   ilovalarida   va   dasturlarda   ma'lumotlar   yaratish,
yangilash va o‘chirish vaqtini kuzatishda qo‘llaniladi.
C++   dasturlash   tilida   chrono   kutubxonasi   yordamida   vaqt   muhrlarini
yaratish va ularni formatlash mumkin. Quyida C++ da vaqt muhrlarini yaratishning
ba'zi usullari va ularni qanday ishlatish haqida batafsil tushuntirish beriladi.
1. C++ da vaqt muhrlarini yaratish
C++   ning   chrono   kutubxonasi   yordamida,   tizim   vaqtini   olish   va   vaqt
muhrlarini   yaratish   mumkin.   Buning   uchun   std::chrono::system_clock   yoki
std::chrono::steady_clock   kabi   vaqt   o‘lchovlari   ishlatiladi.   system_clock   tizim
vaqtiga mos keladi, ya'ni, kompyuterning hozirgi vaqtini ko‘rsatadi.
Misol: Vaqt muhrini olish
#include <iostream>
#include <chrono>
#include <ctime>
int main() {
    // Hozirgi vaqtni olish
    auto now = std::chrono::system_clock::now();
    // Vaqtni sekundga o‘tkazish
    std::time_t now_time_t = std::chrono::system_clock::to_time_t(now);
    // Vaqtni chiqarish
    std::cout << "Hozirgi vaqt (timestamp): " << std::ctime(&now_time_t) <<
std::endl;
31      return 0;
}
Bu misolda:
 std::chrono::system_clock::now() yordamida hozirgi tizim vaqti olinadi.
 std::chrono::system_clock::to_time_t()   yordamida   tizim   vaqtini   std::time_t
formatiga o‘tkazamiz, bu esa aniq sana va vaqtni olish imkonini beradi.
 std::ctime()   esa   uni   o‘qilishi   oson   formatga   (odatda,   string)   aylantiradi   va
ekranga chiqaradi.
2. Vaqtni formatlash
Vaqt   muhrlarini   yaratgandan   so‘ng,   ular   ko‘pincha   oson   o‘qilishi   uchun
formatlanadi.   Misol   uchun,   sana   va   vaqtni   "yyyy-mm-dd   hh:mm:ss"   formatida
chiqarish uchun strftime funksiyasi ishlatilishi mumkin. Bu usul C++ 11 va undan
yuqori versiyalarida qo‘llaniladi.
Misol: Vaqt muhrini formatlash
#include <iostream>
#include <chrono>
#include <ctime>
#include <iomanip>
int main() {
    // Hozirgi vaqtni olish
    auto now = std::chrono::system_clock::now();
    std::time_t now_time_t = std::chrono::system_clock::to_time_t(now);
    // Sana va vaqtni formatlash
    std::tm* now_tm = std::localtime(&now_time_t); // local time
    std::cout << "Vaqt muhrining formatlangan ko'rinishi: "
                            <<   std::put_time(now_tm,   "%Y-%m-%d   %H:%M:%S")   <<
std::endl;
32      return 0;
}
Bu misolda:
 std::put_time   funksiyasi   yordamida   vaqtni   ko‘rsatilgan   formatda   chiqarish
mumkin. Format "%Y-%m-%d %H:%M:%S" quyidagi ma'nolarga ega:
o %Y — yil (to‘liq).
o %m — oy (1 dan 12 gacha).
o %d — kun (1 dan 31 gacha).
o %H — soat (0 dan 23 gacha).
o %M — daqiqa (0 dan 59 gacha).
o %S — soniya (0 dan 59 gacha).
Natijada, vaqt muhrini formatlangan ko‘rinishda ekranga chiqaramiz.
3. Unix vaqt muhrlari
Unix   vaqt   muhrlari   —   bu   1970-yil   1-yanvar,   UTC   (Coordinated   Universal
Time)   dan   boshlab   o'tgan   soniyalarni   o‘lchaydi.   Unix   vaqti   tizimlarda   keng
qo‘llaniladi. std::chrono::system_clock yordamida Unix vaqt muhrini olish va uni
ko‘rsatish mumkin.
Misol: Unix vaqt muhrini olish
#include <iostream>
#include <chrono>
int main() {
    // Hozirgi vaqtni olish
    auto now = std::chrono::system_clock::now();
       auto epoch = now.time_since_epoch(); // 1970-01-01 dan boshlab o‘tgan
vaqt
        auto   timestamp   =
std::chrono::duration_cast<std::chrono::seconds>(epoch).count();
33        std::cout << "Unix vaqt muhriga o‘xshash vaqt (soniya): " << timestamp
<< std::endl;
     return 0;
}
Bu misolda:
 time_since_epoch()  funksiyasi   yordamida  tizim  vaqti   1970-yil   1-yanvardan
boshlab o‘tgan vaqtni beradi.
 std::chrono::duration_cast<std::chrono::seconds>   yordamida   uni
sekundlarga aylantiramiz.
 count()   funksiyasi   yordamida   soniya   bo‘yicha   Unix   vaqt   muhrini   olish
mumkin.
4. Nano va mikrosaniyalarni qo‘llash
C++   da   chrono   kutubxonasi   yordamida   nanosekundalarda   va
mikrosaniyalarda   ham   vaqtni   o‘lchash   mumkin.   Agar   aniqroq   vaqt   muhrini
yaratmoqchi   bo‘lsangiz,   nanosekundalarda   yoki   mikrosaniyalarda   vaqtni   olish
mumkin.
Misol: Nano va mikrosaniyalar bilan vaqt muhrini olish
#include <iostream>
#include <chrono>
int main() {
    // Hozirgi vaqtni olish
    auto now = std::chrono::system_clock::now();
       auto epoch = now.time_since_epoch(); // 1970-01-01 dan boshlab o‘tgan
vaqt
    // Nano va mikrosaniyalarni olish
     std::chrono::duration_cast<std::chrono::nanoseconds>(epoch).count();
34         auto
std::chrono::duration_cast<std::chrono::microseconds>(epoch).count();
        std::cout   <<   "Unix   vaqt   muhrini   nanosekunda:   "   <<   timestamp_ns   <<
std::endl;
        std::cout   <<   "Unix   vaqt   muhrini   mikrosekunda:   "   <<   timestamp_us   <<
std::endl;
     return 0;
}
Bu misolda:
 std::chrono::duration_cast<std::chrono::nanoseconds>   yordamida
nanosekundalarda Unix vaqt muhrini olish.
 std::chrono::duration_cast<std::chrono::microseconds>   yordamida
mikrosaniyalarni olish.
5. Vaqt muhrlarini saqlash va taqqoslash
Vaqt   muhrlarini   tizimda   saqlash   va   taqqoslash   uchun
std::chrono::system_clock::now()   ni   boshqa   vaqt   muhrlari   bilan   taqqoslash   va
kelajakdagi   yoki   o‘tmishdagi   voqealarni   aniqlash   mumkin.   Masalan,
std::chrono::duration yordamida vaqtni taqqoslash mumkin.
Misol: Vaqt muhrlarini taqqoslash
#include <iostream>
#include <chrono>
int main() {
    auto start = std::chrono::system_clock::now();
    std::this_thread::sleep_for(std::chrono::seconds(3)); // 3 soniya kutish
    auto end = std::chrono::system_clock::now();
35         auto   duration   =   std::chrono::duration_cast<std::chrono::seconds>(end   -
start).count();
    std::cout << "Kutish vaqti: " << duration << " soniya" << std::endl;
     return 0;
}
Bu misolda:
 Dastur 3 soniya kutadi va keyin boshlanish va tugash vaqtlarini taqqoslaydi.
 std::chrono::duration_cast<std::chrono::seconds>   yordamida   vaqt   farqini
soniyalarda o‘lchaydi.
36 3.4  Real hayotda qo‘llanilish misollari   
Real   hayotda   chrono   kutubxonasining   eng   keng   tarqalgan   qo‘llanilishi,   tizim
ishlashini   va   kod   samaradorligini   tahlil   qilishda.   Dasturchilar   o‘z   dasturlarining
tezligini   o‘lchash   uchun   chrono   yordamida   vaqt   intervallarini   o‘lchaydilar.
Masalan,   biror   algoritmning   ishlash   vaqtini   o‘lchashda,   agar   kod   ko‘p   vaqt   talab
qilsa, dasturchi uni optimallashtirishga urinadi.
Bu   holatda   chrono   yordamida   kodning   qaysi   qismi   ko‘p   vaqt   sarflayotganini
aniqlash   va   shu   bo‘limni   optimallashtirish   mumkin.   Bu   jarayon   ishlab   chiqarish
jarayonini   tezlashtirish   va   tizimni   samarali   ishlashini   ta’minlash   uchun   muhim
ahamiyatga ega.
chrono kutubxonasi vaqtni o‘lchash, manipulyatsiya qilish va tahlil qilishda real
hayotda   keng   qo‘llaniladi.   Uning   qo‘llanilishi   nafaqat   dasturlashda,   balki   ishlab
chiqarish,   tibbiyot,   sport   va   boshqa   sohalarda   tizim   samaradorligini   oshirishga
yordam beradi. chrono yordamida vaqtni aniq o‘lchash va optimallashtirish muhim
ahamiyatga   ega,   chunki   bu   tizimlarni   tezlashtirish   va   samarali   ishlashini
ta’minlaydi.
 
37 Xulosa.
Chrono   kutubxonasi   dasturchilarga   vaqtni   o‘lchash,   uning   turli   formatlar
orasida   konvertatsiya   qilish,   vaqti   bilan   bog‘liq   jarayonlarni   test   qilish   va
samaradorlikni   tahlil   qilish   imkonini   beradi.   Bu   kutubxona   nafaqat   tizim
resurslarini   boshqarish   va   algoritmlarni   optimallashtirishda,   balki   real   hayotdagi
turli   masalalar,   masalan,   interfaol   dasturlarda   kutish   vaqtlarini   boshqarish,   vaqt
muhrlari   yaratish   va   vaqtga   asoslangan   boshqa   operatsiyalarni   amalga   oshirishda
keng qo‘llaniladi.
Chrono   kutubxonasi   yordamida   vaqtni   aniq   o‘lchash   va   manipulyatsiya
qilish   imkoniyatlari   yaratildi,   bu   esa   dastur   samaradorligini   oshirish   va   tizim
ishlashini yanada samarali qilish imkoniyatini taqdim etdi. O‘zining yuqori aniqligi
va keng qo‘llanilishi tufayli chrono kutubxonasi bugungi kunda C++ dasturlash tili
uchun muhim vosita hisoblanadi.
Umuman olganda, chrono kutubxonasi C++ tilida vaqtni boshqarish va tahlil
qilishda katta ahamiyatga ega bo‘lib, uning amaliy qo‘llanilishi turli sohalarda, shu
jumladan   dasturlash,   tizim   optimallashtirish,   ishlab   chiqarish   va   real   hayotdagi
boshqa   vazifalarni   hal   qilishda   keng   imkoniyatlar   yaratadi.   Bu   kutubxona   vaqtni
o‘lchash   va   manipulyatsiya   qilishda   samaradorlikni   ta’minlaydi,   shu   bilan   birga
dasturchilarga vaqtga asoslangan masalalarni hal qilishda katta yordam beradi.
38 Foydalanilgan adabiyotlar
1.Maqsadov, S. (2019). C++ dasturlash tili: Asoslar va amaliyot. Tashkent:
O‘zbekiston Respublikasi O‘quv Adabiyoti Noshirligi.
2.Abduvaxidov,   M.   (2017).   Dasturlash   asoslari:   C++   tilida   (2-nashr).
Tashkent: Texnologiya Noshirligi.
3.Islomov,   A.   (2020).   Dasturlashda   samaradorlik   va   resurslarni
optimallashtirish. Tashkent: O‘quv Adabiyoti Noshirligi.
4.Azimov,   F.   (2021).   C++   dasturlash   tili:   Dasturlarni   tahlil   qilish   va
optimallashtirish. Tashkent: Innovatsion Noshirlik.
5.Jumayev,   A.   (2022).   Algoritmlar   va   ma'lumotlar   tuzilmalari.   Tashkent:
O‘zbekiston Yozuvchilar Uyushmasi.
6.   Xolmurodov,   S.   (2018).   O‘rganish   uchun   C++   dasturlash   tili.   Tashkent:
Sharq Noshirligi.
39

Chrono kutubxonasi va uning funksiyalari

Купить
  • Похожие документы

  • 3d-max dasturida obektlarni yaratish
  • Algoritm va ma’lumotlar strukturasi
  • 3D-MAX dasturi haqida
  • 3D Studio MAX dasturiga kirish. 3D Studio MAX dasturi haqida tushuncha
  • Adobe photoshop dasturida tasvirlarda ishlov berish,taqdimot yaratish

Подтвердить покупку

Да Нет

© Copyright 2019-2026.

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha