C++ dasturlash tilida kompleks sonlar va ular ustida amallar bajaradigan sinfni ishlab chiqish

C++ dasturlash tilida kompleks sonlar va ular ustida amallar bajaradigan 
sinfni ishlab chiqish
Mundarija
Kirish 3
I. Kompleks sonlar nazariyasiga qisqacha kirish 4
1.1 Kompleks sonlar tushunchasi 4
1.2 Kompleks sonlar ustida bajariladigan asosiy amallar 7
II. Kompleks sonlar ustida amallar bajarish metodlarini yaratish 10
2.1 Kompleks sonlar sinfi 10
2.2 Operatorlarni ortiqcha yuklash 17
                2.3 Amaliy misol(main funksiyada)……………………………………………………………….. 20
   Xulosa 22
   Foydalanilgan adabiyotlar va internet resurslari 23 Kirish
 Mavzuning dolzarbligi.
Bugungi kunda dasturlash texnologiyalarining jadal rivojlanishi turli xil matematik
masalalarni   kompyuter   orqali   tez   va   aniq   yechish   imkoniyatini   yaratmoqda.   Ayniqsa,
murakkab   matematik   strukturalar   –   vektorlar,   matritsalar   va   kompleks   sonlar   bilan
ishlash   ko‘plab   ilmiy,   texnik   va   injiniring   sohalarida   keng   qo‘llaniladi.   Kompleks
sonlar,   asosan,   elektr   muhandisligi,   to‘lqinlar   fizikasi,   signalni   qayta   ishlash,   kvant
mexanikasi   va   boshqalar   sohalarda   qo‘llanilib,   dasturchilar   uchun   ham   muhim
hisoblanadi.
Kompleks   sonlar   oddiy   real   sonlar   orqali   ifodalanmaydigan   fizik   holatlarni
ifodalashga   xizmat   qiladi.   Bunday   sonlar   bilan   ishlash   uchun   ularning   maxsus
strukturasi   talab   etiladi.   Bu   esa   ularni   dasturlashda   sinflar   orqali   model   qilishni   talab
etadi.   C++   dasturlash   tili   –   obyektga   yo‘naltirilgan   yondashuvni   qo‘llab-quvvatlagani
sababli, kompleks sonlar sinfini yaratish uchun ayni muddao hisoblanadi.
C++   tilidagi   sinflar   yordamida   kompleks   sonlar   uchun   konstruktorlar,   metodlar,
operatorlarni   ortiqcha   yuklash   (overloading)   kabi   qulayliklar   orqali   qulay   va   samarali
dasturiy   model   yaratish   mumkin.   Bu   esa   nafaqat   nazariy   bilimlarni   mustahkamlash,
balki amaliy dasturiy loyihalar ishlab chiqish uchun ham muhim hisoblanadi.
Shu   jihatdan,   “C++   dasturlash   tilida   kompleks   sonlar   va   ular   ustida   amallar
bajaradigan   sinfni   ishlab   chiqish”   mavzusi   dolzarb   bo‘lib,   dasturchilar   va   talabalar
uchun katta ahamiyat kasb etadi
          Kurs ishining maqsadi va vazifalari .
Ushbu kurs ishining asosiy maqsadi — C++ dasturlash tilida kompleks sonlar bilan
ishlashga   mo‘ljallangan   sinfni   yaratish   va   uning   yordamida   turli   amallarni   bajaruvchi
dasturiy modul ishlab chiqishdan iborat. Bu orqali nafaqat kompleks sonlar nazariyasini
mustahkamlash,   balki   C++   tilining   obyektga   yo‘naltirilgan   imkoniyatlarini   amalda
qo‘llash ham ko‘zda tutilgan.
                         
2                        I.Kompleks sonlar nazariyasiga qisqacha kirish
1.1 Kompleks sonlar tushunchasi
     Matematikada sonlar nazariyasi chuqur va boy fan sohalaridan biridir. Real sonlar 
to‘plami ko‘plab muammolarni yechishda yetarli bo‘lsa-da, ayrim tenglamalarni 
yechishda real sonlar yetarli bo‘lmaydi. Masalan,  tenglamaning real sonlar to‘plamida 
hech qanday yechimi yo‘q. Chunki hech bir haqiqiy sonni kvadrat qilib manfiy son 
olishning iloji yo‘q. Shuning uchun matematiklar yangi sonlar – kompleks sonlar 
tushunchasini kiritishga majbur bo‘lishgan.
     Kompleks sonlar haqidagi dastlabki tushunchalar XVII asrga borib taqaladi. Dastlab 
bu tushuncha faqat riyozatdagi xatolik deb qaralgan bo‘lsa-da, vaqt o‘tishi bilan uning 
amaliy qiymati va nazariy asoslari aniqlandi. Bugungi kunda kompleks sonlar nafaqat 
matematika, balki fizika, elektrotexnika, signalni qayta ishlash, kvant mexanikasi va 
boshqa ko‘plab sohalarda keng qo‘llaniladi.
    Kompleks son – bu ikki haqiqiy sonning kombinatsiyasi bo‘lib, quyidagi ko‘rinishda 
yoziladi:
z = a + bi
Bu yerda:
 a – kompleks sonning haqiqiy (real) qismi,
 b – mavhum (imaginär) qismning koeffitsienti,
 i – mavhum birlik bo‘lib, i 2 
= -1 shartini qanoatlantiradi.
 Kompleks sonlar odatda quyidagi ko‘rinishlarda yoziladi:
Algebraik shakl: 
Trigonometriya shakli: 
Eksponensial shakl: , bu yerda , 
     Kompleks sonlar to‘plami odatda  ℂ  harfi bilan belgilanadi. Har bir kompleks son 
tekislikdagi biror nuqta bilan mos tushadi. Bu tekislik Argand diagrammasi deb ataladi.
     Kompleks sonlar – bu matematikada haqiqiy va imtiyozli sonlarni birlashtirgan 
sonlar to'plamidir. Ular ko'pincha haqiqiy sonlar (R) va tasavvur (imaginar) sonlar (I) ni
birlashtirgan holda ifodalanadi. Quyidagi ma'lumotlar kompleks sonlar tushunchasini 
yanada yaxshiroq tushunishga yordam beradi:
3  1. Kompleks Sonlar Tushunchasi
Haqiqiy va Tasavvur Sonlar:
    Haqiqiy sonlar: Bu sonlar haqiqatda mavjud bo'lib, ko'pincha o'lchovlarda, masofa va
vaqt kabi tushunchalarda ishlatiladi.
    Tasavvur sonlar: Bu sonlar haqiqiy dunyoda mavjud emas, lekin ular matematikada 
va fizikada foydalidir. Tasavvur sonlari "i" bilan ifodalanadi, bu esa i^2 = -1 
tenglamasiga asoslanadi.
    Kompleks Sonlar Formulasi:
   Kompleks sonlar z = a + bi shaklida yoziladi, bu erda:
     a – haqiqiy qism (real part),
     b – tasavvur qism (imaginary part),
     i – tasavvur birlik (imaginary unit), va i^2 = -1.
Kompleks Sonlar To'plami (C):
    Kompleks sonlar to'plami C haqiqiy sonlar to'plami R va tasavvur sonlari to'plami I 
ni birlashtiradi. Ya'ni, C = R + I deb ifodalanadi.
 2. Kompleks Sonlarning Asosiy Xususiyatlari
 Kompleks Sonlarning Qo‘shilishi va Ayiruvlar:
 Qo‘shish: (a + bi) + (c + di) = (a + c) + (b + d)i
 Ayirish: (a + bi) - (c + di) = (a - c) + (b - d)i
Kompleks Sonlarning Ko‘paytirilishi va Bo‘linishi:
   Ko‘paytirish: (a + bi)(c + di) = (ac - bd) + (ad + bc)i
    Bo‘lish: (a + bi) / (c + di) bo‘lish operatsiyasi uchun avvalo divisor (c + di) ni 
konjugatiga ko‘paytirish lozim, ya'ni a + bi va c + di ning bo‘lishi kompleks sonlarni 
algebrada ishlov berish uchun alohida metodlarga ega.
Kompleks Sonlarning Moduli:
     Moduli yoki uzunligi: |z| = √(a² + b²). Bu kompleks sonning haqiqiy qismidan va 
tasavvur qismidan tashkil topgan geometrik masofani bildiradi.
Kompleks Sonlarning Konjugati:
4     Konjugat:   = a - bi. Bu kompleks sonning tasavvur qismidagi belgini teskari z̅
o‘zgartiradi.
 3. Kompleks Sonlar Geometrik Tushunchasi va Qollanishi
Kompleks Sonlar Reja:
   Kompleks sonlar kompleks tekislikda (argand diagram) tasvirlanadi, bunda:
     X-o‘qi haqiqiy qismni (a),
     Y-o‘qi tasavvur qismni (b) ifodalaydi.
Polar Ko‘rinish:
     Kompleks sonlar polar shaklda ham ifodalanishi mumkin: z = r(cos(θ) + i sin(θ)), bu 
yerda r = √(a² + b²) (modul), θ esa kompleks sonning fazoviy burchagi.
     Polar ko‘rinishda kompleks sonlar kiritilgan burchak orqali kuzatish osonroq bo‘ladi,
ayniqsa matematik va fizikada.
Kompleks Sonlarning Foydalanish So‘halari:
     Fizika va Injeneriya: Kompleks sonlar sinusoidal to‘lqinlar va elektr tarmoqlarida 
qo‘llaniladi. Masalan, AC (alternating current) tarmoqlarini tahlil qilishda yoki signalni 
filtrlashtirishda foydalaniladi.
     Nazariy Fizika: Kompleks sonlar kvant mexanikasi, relativistik fizikada va boshqa 
ko‘plab fizika sohalarida qo‘llaniladi.
     Matematika: Kompleks sonlar algebrada, differensial tenglamalarda, va integral 
hisoblashda ishlatiladi. Ular analitik funksiya va reziduarlar nazariyasida ham zarurdir.
     Kompleks sonlar matematikani rivojlantirishda juda muhim ahamiyatga ega. Ular 
ko'plab matematik va fizika masalalarini aniq va samarali hal qilishga imkon beradi.
5 2.1 Kompleks sonlar ustida bajariladigan asosiy amallar
Kompleks Sonlar Ustida Bajariladigan Asosiy Amallar
    Kompleks sonlar bilan ishlashda bir nechta asosiy amallarni bajarish mumkin. Ushbu 
amallar matematikada va fizikada ko‘plab masalalarni hal qilishda keng qo‘llaniladi. 
Kompleks sonlar ustida bajariladigan amallar haqidagi tushuncha ularni qo‘llashda 
yordam beradi va kompleks sonlarni aniqroq, samaraliroq ishlatish imkonini yaratadi. 
Kompleks sonlar ustida bajariladigan asosiy amallarni quyidagi bo‘limlarga bo‘lish 
mumkin: qo‘shish, ayirish, ko‘paytirish, bo‘lish, modulni topish, va kompleks sonning 
konjugatini olish.
 1. Kompleks Sonlar ustida Qo‘shish va Ayirish
Kompleks Sonlarning Qo‘shilishi:
     Kompleks sonlarni qo‘shish, ularning haqiqiy va tasavvur qismlarini alohida 
qo‘shish orqali amalga oshiriladi. Agar bizda ikkita kompleks son bo‘lsa:
 z_1 = a + bi
 z_2 = c + di
Ularning qo‘shilishi quyidagicha bo‘ladi:
z_1 + z_2 = (a + bi) + (c + di) = (a + c) + (b + d)i
    Ya'ni, haqiqiy qismlar va tasavvur qismlarini alohida qo‘shamiz. Bu amaliyot 
kompleks sonlarni oddiy arifmetik qo‘shish shaklida bajariladi.
Kompleks Sonlarning Ayirilishi:
    Kompleks sonlarning ayirilishi ham shunga o‘xshash tarzda amalga oshiriladi. Agar 
ikkita kompleks son:
 z_1 = a + bi
 z_2 = c + di
Bo‘lsa, ularning ayirilishi:
z_1 - z_2 = (a + bi) - (c + di) = (a - c) + (b - d)i
Bu yerda ham haqiqiy qismlar va tasavvur qismlarini alohida ajratib, ularni ayiramiz.
 2. Kompleks Sonlarning Ko‘paytirilishi
6     Kompleks sonlarni ko‘paytirish ko‘proq hisob-kitobni talab qiladi, chunki ikkita 
kompleks sonni ko‘paytirishda kengaytirish qo‘llaniladi. Misol uchun, agar:
 z_1 = a + bi
 z_2 = c + di
Ko‘paytirish quyidagicha amalga oshiriladi:
z_1 \times z_2 = (a + bi)(c + di)
Bu ifodani kengaytirib yozamiz:
z_1 \times z_2 = ac + adi + bci + bdi^2
Chunki i^2 = -1, bu ifoda quyidagicha soddalashadi:
z_1 \times z_2 = (ac - bd) + (ad + bc)i
     Demak, kompleks sonlarni ko‘paytirishda haqiqiy qismlar va tasavvur qismlari 
alohida ko‘paytiriladi va keyin ularning natijalari qo‘shiladi. Shuningdek, tasavvur 
qismidagi 
i^2 ni -1 ga almashtirish zarur.
 3. Kompleks Sonlarning Bo‘lishi
Kompleks sonlarning bo‘lishi ko‘proq diqqatni talab qiladi. Agar:
 z_1 = a + bi
 z_2 = c + di
    Bo‘lish operatsiyasini amalga oshirish uchun avvalo z_2 ning konjugatini topishimiz 
kerak. z_2 ning konjugati \overline{z_2} = c - di bo‘ladi. Bo‘lishning umumiy 
formulasi quyidagicha:
\frac{z_1}{z_2} = \frac{a + bi}{c + di} = \frac{(a + bi)(c - di)}{(c + di)(c - di)}
     Demak, yuqoridagi ifodada numinatorni kengaytirib va denominatorni ko‘paytirib, 
ifodaning qiymatini topish mumkin. Denominatorni hisoblash uchun, (c + di)(c - di) = 
c^2 + d^2 (ya'ni, bu haqiqiy son bo‘ladi). Kengaytirilgan formulada esa quyidagi 
natijani olamiz:
\frac{z_1}{z_2} = \frac{(ac + bd) + (bc - ad)i}{c^2 + d^2}
    Bu erda haqiqiy qismni \frac{ac + bd}{c^2 + d^2}, tasavvur qismni esa \frac{bc - ad}
{c^2 + d^2} shaklida ifodalash mumkin.
7  4. Kompleks Sonlarning Moduli
    Kompleks sonning moduli uning haqiqiy va tasavvur qismlarining kvadratlari 
yig‘indisining ildiziga tengdir. Agar:
 z = a + bi
Bo‘lsa, uning moduli (ya'ni, uzunligi) quyidagicha hisoblanadi:
|z| = \sqrt{a^2 + b^2}
    Modulni topish kompleks sonning geometrik uzunligini yoki masofasini hisoblashda 
qo‘llaniladi. Misol uchun, kompleks sonlar kompleks tekislikda tasvirlanganida, modul 
ular orasidagi masofani bildiradi.
 5. Kompleks Sonning Konjugati
Kompleks sonning konjugati uning tasavvur qismidagi belgini teskari o‘zgartirishdir. 
Agar:
 z = a + bi
Bo‘lsa, uning konjugati:
\overline{z} = a - bi
    Kompleks sonlarning konjugatlari ko‘pincha bo‘lish amallarida va modulli 
hisoblashlarda ishlatiladi. Masalan, agar biz kompleks sonni bir-biriga bo‘lsak, 
konjugatni ishlatib denominatorni soddalashtirish mumkin.
 6. Kompleks Sonlar va Polar Ko‘rinish
     Kompleks sonlar polar shaklda ifodalanishi mumkin. Polar shaklda kompleks son 
quyidagicha ifodalanadi:
z = r(\cos \theta + i \sin \theta)
             II. Kompleks sonlar ustida amallar bajarish metodlarini yaratish.
                           2.1 Kompleks sonlar sinfi.
    Kompleks sonlar matematikada keng qo‘llaniladigan, ikki qismdan iborat sonlardir: 
haqiqiy va tasavvuriy qismlar. Bu sonlar ko‘plab matematik va ilmiy sohalarda, ayniqsa
fizika, muhandislik, va signalni qayta ishlash kabi sohalarda katta ahamiyatga ega. 
Kompleks sonlar o‘zining asosiy xususiyatlari, amallari va geometriyasi bilan ajralib 
turadi. Ushbu maqolada kompleks sonlarning tarixi, xususiyatlari, amallari, geometrik 
8 va algebraik talqinlari, hamda ular bilan bog‘liq matematik nazariyalar haqida batafsil 
ma'lumot keltirilgan.
 1. Kompleks Sonlarning Tarixi
    Kompleks sonlar dastlab XVII asrda matematiklar tomonidan joriy etilgan. Birinchi 
marta kompleks sonlarning haqiqiy qism va tasavvuriy qismini ajratish haqida 
o‘ylashda Rafael Bombelli (1572) muhim o‘rin tutgan. U, ikki marta ildiz olish amali 
orqali, yangi turdagi sonlarni ko‘rgan va ularni matematika tizimiga kiritish zarurligini 
ta'kidlagan.
     Biroq, kompleks sonlarning to‘liq nazariyasi faqat XIX asrda shakllandi. Karl Fridrix
Gauss kompleks sonlarni geometriyada tasvirlashni boshladi, bu esa ularni yanada 
chuqurroq tushunishga olib keldi. Gaussning bu nazariyasi kompleks sonlarni 
"kompleks tekislik"da tasvirlashni ko‘zda tutadi, bunda haqiqiy qism x-o‘q bo‘yicha, 
tasavvuriy qism esa y-o‘q bo‘yicha joylashadi. Ushbu nazariya kompleks sonlarning 
geometrik tasvirlarini va ularning fazoviy xususiyatlarini tushunishga yordam berdi.
 2. Kompleks Sonlarning Asosiy Xususiyatlari
Kompleks sonlarning eng muhim xususiyatlari quyidagilardan iborat:
    Kompleks Sonning Asosiy Tanishuvi: Kompleks sonlarni quyidagi shaklda yozish 
mumkin:
  z = a + bi
  bu yerda:
  a — haqiqiy qism (real son),
  b — tasavvuriy qism (imaginar son),
  i — tasavvuriy birlik bo‘lib, $i^2 = -1$.
    Modul (uzunlik): Kompleks sonning modulini (uzunligini) quyidagi formulada 
hisoblash mumkin:
  |z| = \sqrt{a^2 + b^2}
     Bu, kompleks sonning haqiqiy va tasavvuriy qismlarining kvadratlarining 
yig‘indisining ildizidir va u kompleks sonning geometrik uzunligini bildiradi.
    Kompleks Konjugat: Kompleks sonning konjugati uning tasavvuriy qismidagi 
belgilarning teskari qiymatini olish orqali hosil bo‘ladi. Agar $z = a + bi$, unda \
overline{z} = a - bi bo‘ladi.
9     Argumend: Kompleks sonning argumenti uning fazoviy burchagi, ya'ni kompleks 
tekislikda haqiqiy o‘q bilan kompleks son orasidagi burchakdir. Bu burchakni 
quyidagicha hisoblash mumkin:
  \theta = \tan^{-1}\left(\frac{b}{a}\right)
  Bu burchak, kompleks sonni polar shaklda ifodalashda kerak bo‘ladi.
 3. Kompleks Sonlarning Geometrik Talqini
    Kompleks sonlarni geometrik nuqtai nazardan tasvirlash uchun, ular kompleks 
tekislik**da (yoki Argand-Gauss tekisligi) tasvirlanadi. Kompleks sonlarning haqiqiy 
va tasavvuriy qismlari geometrik jihatdan x- (haqiqiy) va y- (tasavvuriy) o‘qlari 
bo‘yicha joylashgan nuqtalar sifatida qaraladi.
Haqiqiy qism a — x-o‘q bo‘yicha joylashadi.
 Tasavvuriy qism b — y-o‘q bo‘yicha joylashadi.
Kompleks son z = a + bi kompleksson tekisligida (a, b) nuqtasi sifatida tasvirlanadi.
    Modul (uzunlik): Kompleks sonning modulini (yoki uzoqligini) hisoblash uchun, z = 
a + bi sonining kompleks tekislikdagi nuqtadan, (0, 0) nuqtasigacha bo‘lgan masofasini 
hisoblash kerak. Bu masofa quyidagi formulada ifodalanadi:
  |z| = \sqrt{a^2 + b^2}
    Geometrik jihatdan, bu kompleks sonning (haqiqiy va tasavvuriy qismlari) 
koordinatalari bo‘yicha tekislikda joylashgan nuqtasidan (0, 0) nuqtasigacha bo‘lgan 
masofani bildiradi.
     Argument (burchak): Kompleks sonning argumenti uning fazoviy burchagi bo‘lib, 
kompleks tekislikda haqiqiy o‘q bilan kompleks son orasidagi burchakni ifodalaydi. 
Ushbu burchakni $\theta = \tan^{-1}\left(\frac{b}{a}\right)$ formulasi yordamida 
hisoblash mumkin. Bu burchakni topish, kompleks sonni polar shaklga o‘tkazishda 
muhimdir.
 4. Kompleks Sonlar bilan Amallar
    Kompleks sonlar bilan amallarni bajarish real sonlar bilan amallarga o‘xshash tarzda 
amalga oshiriladi, lekin ularning tasavvuriy qismlari ham hisobga olinadi. Quyida 
kompleks sonlar bilan eng asosiy amallarni ko‘rib chiqamiz:
10     Qo‘shish: Kompleks sonlarni qo‘shish uchun ularning haqiqiy qismlarini va 
tasavvuriy qismlarini alohida qo‘shish kerak. Agar z_1 = a + bi va z_2 = c + di bo‘lsa, 
ularning yig‘indisi:
  z_1 + z_2 = (a + c) + (b + d)i
 Ayirish: Kompleks sonlarni ayirishda ham haqiqiy qismlar va tasavvuriy qismlarni 
alohida ayiramiz:
  z_1 - z_2 = (a - c) + (b - d)i
 Ko‘paytirish: Kompleks sonlarni ko‘paytirish uchun distributivlik qonunini qo‘llaymiz:
  z_1 \cdot z_2 = (a + bi)(c + di) = (ac - bd) + (ad + bc)i
     Bo‘lish: Kompleks sonlarni bo‘lishda ko‘proq algebraik manipulyatsiya kerak. z_1 =
a + bi va z_2 = c + di bo‘lsa, ularning bo‘linmasi quyidagicha hisoblanadi:
  \frac{z_1}{z_2} = \frac{(a + bi)(c - di)}{c^2 + d^2}
     Bu yerda c - di — z_2 ning konjugat soni, va bo‘lishni oddiy real va tasavvuriy 
qismlarga ajratib bajarish kerak.
 5. Kompleks Sonlarning Polar Shakli
     Kompleks sonlarni polar shaklda ifodalash juda muhim, chunki bu shakl ko‘plab 
amallarni soddalashtiradi, ayniqsa ko‘paytirish va bo‘lishda. Polar shaklni quyidagicha 
yozish mumkin:
z = r (\cos\theta + i\sin\theta)
Bu yerda:
 r = |z| = \sqrt{a^2 + b^2} — kompleks sonning moduli,
 \theta = \tan^{-1}\left(\frac{b}{a}\right) — kompleks sonning argumenti (fazoviy 
burchagi).
    Kompleks sonning polar shakli orqali ularning ko‘paytirilishi va bo‘lishi yanada 
osonlashadi:
    Kompleks sonlarni ko‘paytirish: Agar z_1 = r_1 (\cos\theta_1 + i\sin\theta_1) va z_2 
= r_2 (\cos\theta_2 + i\sin\theta_2) bo‘lsa, ularning ko‘paytmasi quyidagicha bo‘ladi:
  z_1 z_2 = r_1 r_2 [\cos(\theta_1 + \theta_2) + i\sin(\theta_1 + \theta_2)]
11      Kompleks sonlarni bo‘lish: Agar z_1 = r_1 (\cos\theta_1 + i\sin\theta_1) va z_2 = 
r_2 (\cos\theta_2 + i\sin\theta_2) bo‘lsa, ularning bo‘linmasi quyidagicha bo‘ladi:
  \frac{z_1}{z_2} = \frac{r_1}{r_2} [\cos(\theta_1 - \theta_2) + i\sin(\theta_1 - \
theta_2)]
 6. Kompleks Sonlarning Amaliy Qo‘llanilishi
     Kompleks sonlar nafaqat matematikada, balki real hayotda, ayniqsa ilm-fan va 
texnologiya sohalarida keng qo‘llaniladi. Ular elektr toki, signalni qayta ishlash, kvant 
mexanikasi, nazariy fizikada hamda boshqalarida keng tarqalgan. Misol uchun:
     Elektronika va elektr toki: Kompleks sonlar elektr toki va signalni qayta ishlashda, 
ayniqsa, fazoviy hisob-kitoblarda qo‘llaniladi.
     Fizika: Kompleks sonlar kvant mexanikasi, elektromagnit to‘lqinlari, va to‘lqinlar 
nazariyasida ishlatiladi.
    Muhandislik: Signalni qayta ishlashda, tarmoq analizi va boshqalarda kompleks 
sonlar yordamida yechimlar topiladi.
    Kompleks sonlar matematik va ilmiy sohalarda juda katta ahamiyatga ega. Ularning 
asosiy xususiyatlari, geometrik talqinlari, va amallari ular bilan ishlashni osonlashtiradi.
Kompleks sonlarni to‘g‘ri tushunish va qo‘llash, turli murakkab masalalarni hal qilishda
katta yordam beradi.
7. Kompleks sonlarning tarixiy rivojlanishi
     Kompleks sonlar tarixi XVII asrga borib taqaladi. Dastlab ular faqat matematik 
muammolarni hal qilish uchun kiritilgan, ammo keyinchalik ular to‘liq bir matematik 
tushunchaga aylanishdi. Renessans davrida matematik olimlar (masalan, Rafael 
Bombelli) kompleks sonlarni hisoblash amallarini rivojlantirishga qaratilgan tadqiqotlar
olib borishdi.
     XIX asrda, matematik olimlar kompleks sonlarni yanada chuqurroq o‘rganishdi. Karl
Fridrix Gauss va Augustin-Louis Cauchy kabi matematiklar kompleks sonlarning keng 
ko‘lamda qo‘llanilishini izchil ko‘rsatdilar. Gauss, o‘zining "kompleks tekislik" 
tushunchasini ishlab chiqdi, va bu orqali kompleks sonlarning geometriyasi haqida 
yangi nazariyalar paydo bo‘ldi.
8. Kompleks sonlarning amaliy qo‘llanilishi
Kompleks sonlar turli sohalarda keng qo‘llaniladi:
12     Fizika: Kompleks sonlar fizika ilmida, ayniqsa kvant mexanikasi va elektr toki 
nazariyasida keng qo‘llaniladi. Elektrik tok va signalning fazoviy tahlilida kompleks 
sonlar orqali yechimlar topiladi.
Muhandislik: Signalni qayta ishlash, telekommunikatsiya va boshqalar.
Matematika: Kompleks tahlil, differensial tenglamalar, va qatorlar nazariyasi.
     Kompleks sonlar (yoki kompleks sonlar) – bu real va mantiqiy sonlarni o'z ichiga 
olgan sonlar bo'lib, ular shaklida ifodalanadi:
z = a + bi
Bu yerda:
a — real qism (real son),
b — mantiqiy qism (real son),
i — mantiqiy birlik, ya'ni i^2 = -1
Kompleks sonlarning sinfi ikki qismga bo'linadi:
1. Real qism (a) — bu kompleks sonning real qismi.
2. Mantiqiy qism (b) — bu kompleks sonning mantiqiy qismi.
 Kompleks sonlarning qollanilishi:
Kompleks sonlar turli sohalarda keng qo'llaniladi. Ularning ayrim asosiy qollanilishi 
quyidagilar:
1. Matematika va algebra:
    Kompleks sonlar ko'pincha algebraik tenglamalarni yechishda ishlatiladi, chunki ba'zi
tenglamalar faqat kompleks sonlar yordamida yechiladi (masalan, x^2 + 1 = 0).
    Kompleks sonlar analizda va differensial tenglamalarni yechishda ham muhim rol 
o'ynaydi.
2. Fizika:
    Kompleks sonlar kvant mexanikasida, elektromagnit to'lqinlarining tavsifida, 
energiya va kuchlarning o'zgarishini hisoblashda ishlatiladi.
    Kompleks sonlar signalni analiz qilish va yoritish texnologiyalarida, masalan, tezlik, 
amplituda, faza va vaqt o'zgarishlarini ifodalashda qo'llaniladi.
13 3. Mühendislik:
    Elektronika va kuchlanishlar nazariyasida kompleks sonlar kuchlanishlar va 
oqimlarni ta'riflashda ishlatiladi.
    Sog'lom tizimlar nazariyasi, ayniqsa, sanoat muhandisliklarida signalni tahlil qilishda 
ham kompleks sonlar muhim hisoblanadi.
4. Kompyuter fanlari:
    Kompleks sonlar, ayniqsa, algoritmlar va raqamli signallarni tahlil qilishda 
ishlatiladi.
    Kompyuter grafikasi va tasvirni qayta ishlashda ham kompleks sonlardan 
foydalaniladi, masalan, "Fourier transform" kabi metodlarda.
5. Ikkinchi darajali tenglamalar va ildizlar:
    Kompleks sonlar, masalan, kvadrat ildizlar va xususan, real sonlarning ildizlari 
mavjud bo'lmagan holatlarda qo'llaniladi.
 Kompleks sonlarni ifodalash usullari:
1. Ko'rsatilgan shakl (a + bi): Bu eng ko'p ishlatiladigan ifoda.
2. Modul va faza shakli: Kompleks sonni poliar shaklda, ya'ni z = r (\cos \theta + i \sin \
theta) ko'rinishida ifodalash mumkin, bunda r – kompleks sonning moduli, va \theta – 
uning fazasi.
Kompleks sonlar nafaqat matematikada, balki kundalik hayotda va texnologiya 
sohalarida keng qo'llaniladi, ularning ko'p qirralari juda muhim.
                                   2.2 Operatorlarni ortiqcha yuklash
       Zamonaviy dasturlash tillari, ayniqsa C++, Python kabi obyektga yo‘naltirilgan 
dasturlash (OOP – Object-Oriented Programming) tillarida  operatorlarni ortiqcha 
yuklash (operator overloading)  konsepsiyasi muhim o‘rin tutadi. Bu uslub orqali 
dasturchi o‘ziga xos ma'lumot turlariga (klasslarga) oddiy operatorlar kabi harakat qilish
imkoniyatini beradi. Oddiy qilib aytganda, dasturchi o‘z sinflari uchun  + ,  - ,  * ,  ==  kabi 
operatorlarga yangi ma'no yuklashi mumkin.
Operatorlarni ortiqcha yuklash nima?
14     Operatorlarni ortiqcha yuklash – bu obyektlarga nisbatan  standart operatorlar (a 
rifmetik, taqqoslash, mantiqiy va h.k.)  qanday amal qilishini aniqlash uchun maxsus 
funksiyalar orqali operatorlarga yangi ta'rif berishdir.
Misol:
Complex a(3, 4), b(1, 2);
Complex c = a + b;
      Bu yerda  +  operatori  Complex  klassiga qanday amal qilishini dasturchi belgilashi 
kerak. Aks holda,  +  operatori oddiy sonlarga amal qiladi, obyektlarga emas.
1. Kodni o‘qiluvchanligini oshiradi.  Klasslar bilan ishlayotganda funksiyalar 
o‘rniga oddiy operatorlardan foydalanish kodni sodda va tushunarli qiladi.
2. Modullikni ta'minlaydi.  Har bir klass o‘ziga xos operatorlarni ta’riflab, mustaqil
ishlashi mumkin.
3. Moslashuvchanlik yaratadi.  Har xil ma’lumot turlariga mos ravishda harakat 
qiluvchi operatorlar tuzish imkonini beradi.
C++ dasturlash tilida operatorlarni ortiqcha yuklash
       C++ dasturlash tilida operatorlar maxsus  operator  kalit so‘zi yordamida ortiqcha 
yuklanadi. Masalan,  +  operatorini yuklash uchun quyidagi shakldan foydalaniladi:
class Complex {
private:
    float real, imag;
public:
    Complex(float r = 0, float i = 0) : real(r), imag(i) {}
    Complex operator + (const Complex& other) {
        return Complex(real + other.real, imag + other.imag);
    }
    void display() {
        std::cout << real << " + " << imag << "i" << std::endl;
    }
};
Endi  Complex  obyektlariga  +  operatori oddiy sonlardek amal qiladi.
Yuklash mumkin bo’lgan operatorlar.
C++ dasturlash tilida quyidagi operatorlarni ortiqcha yuklash mumkin:
 Arifmetik operatorlar:  + ,  - ,  * ,  / ,  %
 Mantiqiy operatorlar:  && ,  || ,  !
15  Taqqoslash operatorlari:  == ,  != ,  < ,  > ,  <= ,  >=
 Inkremet/dekrement operatorlari:  ++ ,  --
 Kirish-chiqarish operatorlari:  << ,  >>
 Qavs va ko‘rsatkich operatorlari:  () ,  [] ,  ->
 Belgilash operatorlari:  = ,  += ,  -= , va hokazo
Yuklab bo’lmaydigan operatorlar.
Quyidagi operatorlarni ortiqcha yuklash  mumkin emas :
 ::  (scope resolution)
 .  (dot operator)
 .*  (pointer-to-member)
 sizeof
 typeid  (RTTI)
 ?:  (ternary operator)
Misol : Tenglik operatorini ortiqcha yuklash.
class Point {
    int x, y;
public:
    Point(int x1, int y1) : x(x1), y(y1) {}
    bool operator==(const Point& other) {
        return x == other.x && y == other.y;
    }
};
Point p1(3, 4), p2(3, 4);
if (p1 == p2) {
    std::cout << "Nuqtalar teng." << std::endl;
}
Operator ortiqcha yuklashning kamchiliklari.
16 1. Keraksiz murakkablik:  Har bir operator uchun qo‘shimcha kod yozish kerak, 
bu esa xatolarga sabab bo‘lishi mumkin.
2. Noto‘g‘ri ishlatilsa, chalkashliklar tug‘diradi:   +  operatori har doim yig‘indi 
emas, boshqa ma'no olishi mumkin, bu esa dasturchilarni chalg‘itadi.
3. Yuklab bo‘lmaydigan operatorlar mavjud:  Ba'zi hollarda istalgan operatorni 
moslashtirish imkoni yo‘q.
     Operatorlarni ortiqcha yuklash – bu obyektga yo‘naltirilgan dasturlashda qulaylik va 
kodni tabiiy ifodalash uchun ishlatiladigan muhim vosita. U kodni o‘qiluvchan, 
tushunarli va modulli qiladi. Ammo bu imkoniyatni ehtiyotkorlik bilan ishlatish lozim, 
chunki noto‘g‘ri yoki haddan ziyod yuklash kod murakkabligini oshirishi va xatoliklarni
ko‘paytirishi mumkin.
17                                2.3 Amaliy misol(main funksiyada).
Kompleks sonlar uchun kutubxona
#include <iostream>
#in ч clude <complex>  
using namespace std;
  Misol 1 : Kompleks sonni yaratish va chiqarish
int main() {
    complex<double> z(3.0, 4.0);  // z = 3 + 4i
    cout << "Kompleks son z = " << z << endl;
    cout << "Re(z) = " << real(z) << ", Im(z) = " << imag(z) << endl;
    return 0;
}
Izoh:
 complex<double> — bu yerda kompleks sonlar haqiqiy (double) koeffitsiyentlar bilan.
 real(z) va imag(z) funksiyalari orqali haqiqiy va mavhum qismlarni ajratib oldik.
 Natija:
  Kompleks son z = (3,4)
  Re(z) = 3, Im(z) = 4
   Misol 2 : Kompleks sonlar qo‘shilishi
int main() {
    complex<double> a(2.0, 3.0);  // 2 + 3i
    complex<double> b(1.0, -4.0); // 1 - 4i
    complex<double> sum = a + b;
18     cout << "Yig'indi: " << sum << endl;
    return 0;
}
Izoh:
* (2 + 3i) + (1 - 4i) = (3 - 1i)
* Natija: (3, -1)
  Misol 3 : Kompleks sonlar ko‘paytmasi
int main() {
    complex<double> a(2, 1);   // 2 + i
    complex<double> b(1, -3);  // 1 - 3i
    complex<double> res = a * b;
    cout << "Ko‘paytma: " << res << endl;
    return 0;
}
Izoh:
* (2 + i)(1 - 3i) = 2 - 6i + 1i -3i² = 2 - 5i + 3 = 5 - 5i
* Natija: (5, -5)
   Misol 4 : Kompleks sonlar bo‘lishi
int main() {
    complex<double> a(4, 2);  // 4 + 2i
    complex<double> b(1, -1); // 1 - i
    complex<double> res = a / b;
    cout << "Bo‘linma: " << res << endl;
    return 0;
}
Izoh
19 \frac{4 + 2i}{1 - i} = \frac{(4 + 2i)(1 + i)}{(1 - i)(1 + i)} = \frac{(4 + 4i + 2i + 2i^2)}{1
+ 1} = \frac{(4 + 6i - 2)}{2} = \frac{2 + 6i}{2} = 1 + 3i
* Natija: (1, 3)
  Misol 5 : Kompleks modul va faza (argument)
#include <cmath>  // fabs, arg uchun
int main() {
    complex<double> z(3, 4);  // 3 + 4i
    double modulus = abs(z);      // |z| = sqrt(3^2 + 4^2) = 5
    double argument = arg(z);     // arctan(4/3)
    cout << "Modul |z| = " << modulus << endl;
    cout << "Faza arg(z) = " << argument << " radian" << endl;
    return 0;
}
Izoh:
abs(z) — kompleks sonning moduli.
arg(z) — faza (burchak) radianlarda.
Misol 6: Kompleks sonning konjugati (teskari kompleksi)
int main() {
    complex<double> z(2, 5);         // 2 + 5i
    complex<double> z_conj = conj(z); // 2 - 5i
    cout << "Konjugat: " << z_conj << endl;
     return 0;
}
Izoh:
 conj(z) funksiyasi yordamida teskari kompleks son olinadi.
C++ da complex kutubxonasi yordamida:
20  Kompleks sonlarni yaratish
 Ularni qo‘shish, ayirish, ko‘paytirish, bo‘lish
 Moduli, fazasi, va konjugatini hisoblash
  mumkin bo‘ladi.
                                                                   Xulosa .
Ushbu kurs ishida matematikada muhim o‘rin tutuvchi  kompleks sonlar  tushunchasi, 
ular bilan bog‘liq asosiy amallar hamda bu sonlar asosida qurilgan  kompleks sonlar 
sinfi  atroflicha ko‘rib chiqildi. Kompleks sonlar matematik analiz, fizikada to‘lqin 
jarayonlarini tahlil qilish, elektr zanjirlarini modellashtirish, boshqaruv tizimlari va 
signalni qayta ishlash kabi ko‘plab sohalarda keng qo‘llaniladi.
Kompleks sonlar haqiqiy sonlar to‘plamini kengaytirish orqali olinadi va ularni 
quyidagicha ifodalash mumkin:
z = a + bi , bu yerda  a  — haqiqiy qism,  b  — mavhum qism,  i  — ixtiyoriy birlik son 
bo‘lib,  i² = -1  tenglikni qanoatlantiradi.
Kurs ishida quyidagi asosiy amallar va xossalarga alohida e’tibor berildi:
 Qo‘shish va ayirish:  Kompleks sonlar ustida amallar haqiqiy qismlar va 
mavhum qismlar bo‘yicha alohida bajariladi.
 Ko‘paytirish:  Algebrik shaklda ko‘paytirishda distributivlik qoidasidan 
foydalaniladi va i² = -1 tengligi qo‘llaniladi.
 Bo‘lish:  Kompleks sonlarni bo‘lish uchun ulardan biri modulining kvadratiga 
ko‘paytirilgan kompleks kon’yugat orqali ifodalanadi.
 Modul va argument:  Kompleks sonning moduli uning koordinata tekisligidagi 
uzunligini bildiradi, argument esa asosiy burilishni ko‘rsatadi.
 Trigonometriya va eksponensial shakl:  Euler formulasi orqali kompleks sonlar 
trigonometriya shaklida ifodalanib, amallarni soddalashtirish imkonini beradi.
 Kon’yugat (qarama-qarshi son):  Kompleks sonning kon’yugati uning mavhum 
qismini qarama-qarshi ishoraga almashtirish bilan olinadi.
Kompleks sonlar sinfi (klass) tushunchasi esa dasturlash nuqtai nazaridan o‘rganildi. Bu
orqali kompleks sonlar ustida amallarni avtomatlashtirish, ularni obyekt sifatida saqlash,
metodlar orqali amallar bajarish imkoniyati yaratildi. OOP (Obyektga Yo‘naltirilgan 
Dasturlash) asosida kompleks sonlar uchun sinf tuzish, bu sinfda konstruktor, qo‘shish, 
ayirish, ko‘paytirish va bo‘lish metodlarini yozish amaliy jihatdan muhim bo‘ldi.
Xulosa qilib aytganda, kompleks sonlar nafaqat matematik nazariyada, balki amaliy 
sohalarda ham chuqur o‘rganilishi va qo‘llanilishi zarur bo‘lgan mavzulardan biridir. 
21 Ularga oid tushunchalarni chuqur o‘zlashtirish talabalarga kelgusida ilmiy izlanishlar va
real muammolarni yechishda katta yordam beradi.
22                                 Foydalanilgan adabiyotlar va internet resurslari.
1. G.M. Fikhtengolts. Differensial va integral hisob kursi. 1-qism. – Toshkent: 
“O‘qituvchi”, 1980.
2. K.F. Vorobyev. Murakkab sonlar nazariyasi va amaliyoti. – Moskva: Nauka, 
1986.
3. V.A. Ilyin, E.G. Poznyak. Chiziqli algebra va matematik analiz asoslari. – 
Moskva: Nauka, 1985.
4. А.Н. Колмогоров, С.В. Фомин. Элементы теории функций и 
функционального анализа. – Москва: Наука, 1976.
5.Brown, J.W., Churchill, R.V. Complex Variables and Applications. – New York: 
McGraw-Hill, 2009.
6. Kreyszig, E. Advanced Engineering Mathematics. – John Wiley & Sons, 10th 
edition, 2011.
7. O‘zbekiston Milliy Ensiklopediyasi. Kompleks sonlar maqolasi.
8. Internet manbalari:
https://mathworld.wolfram.com/ComplexNumber.html
https://en.wikipedia.org/wiki/Complex_number
23