C# dasturlash tilida katta sonlar ustida amallar bajarish

O’ZBEKISTON RESPUBLIKASI OLIY TA’LIM, FAN VA 
INNOVATSIYALAR VAZIRLIGI MIRZO ULUG’BEK NOMIDAGI
O’ZBEKISTON MILLIY UNIVERSITETI
AMALIY MATEMATIKA VA INTELLEKTUAL TEXNOLOGIYALAR
FAKULTETI AMALIY MATEMATIKA YO’NALISHI 24-01 GURUH
TALABASINING ALGORITMIK TILLAR VA DASTURLASH FANIDAN
KURS ISHI
MAVZU:  C# dasturlash tilida katta sonlar ustida amallar bajarish
TOSHKENT-2026 KURS ISHI REJASI 
KIRISH 
I BOB. NAZARIY ASOSLAR 
1.1 Katta sonlar tushunchasi va ahamiyati 1.2 
Katta sonlar bilan ishlash usullari 
1.3 BigInteger sinfi va uning imkoniyatlari II 
BOB. MODELLASH VA LOYIHALASH 2.1 
Katta sonlar ustida asosiy amallar 
2.2 BigInteger yordamida amallar bajarish 2.3 
int va BigInteger taqqoslash 
III BOB. DASTURIY AMALGA OSHIRISH 
3.1 Dastur kodi (C#) 
3.2 Dastur interfeysi tavsifi 
3.3 Natijalar va tahlil 
XULOSA 
FOYDALANILGAN ADABIYOTLAR 
ILOVA  KIRISH 
Zamonaviy   axborot   texnologiyalari   rivojlanib   borayotgan   davrda   katta
hajmdagi   ma’lumotlar   bilan   ishlash   masalasi   muhim   ahamiyat   kasb   etmoqda.
Ayniqsa,   dasturlash   jarayonida   oddiy   son   turlari   (int,   long   va   boshqalar)   orqali
ifodalab   bo‘lmaydigan   juda   katta   qiymatlar   bilan   ishlash   zarurati   tez-tez   uchrab
turadi.   Bunday   holatlarda   katta   sonlar   ustida   amallar   bajarish   masalasi   dolzarb
hisoblanadi. 
Katta   sonlar   ustida   amallar   bajarish   kriptografiya,   ilmiy   hisoblashlar,
moliyaviy   tizimlar   hamda   turli   matematik   modellashtirish   jarayonlarida   keng
qo‘llaniladi. Oddiy ma’lumot turlari cheklangan xotira hajmiga ega bo‘lgani sababli
juda katta sonlarni qayta ishlashda  maxsus yondashuv va vositalardan foydalanish
talab etiladi. 
C# dasturlash tilida katta sonlar bilan ishlash uchun maxsus BigInteger sinfi
mavjud bo‘lib, u istalgan kattalikdagi butun sonlar ustida amallar bajarish imkonini
beradi. Ushbu sinf  yordamida qo‘shish, ayirish, ko‘paytirish va boshqa matematik
amallarni bajarish ancha osonlashadi. 
Mazkur   kurs   ishining   maqsadi   —   C#   dasturlash   tilida   katta   sonlar   ustida
amallar   bajarish   usullarini   o‘rganish,   BigInteger   sinfining   imkoniyatlarini   tahlil
qilish   hamda   amaliy   dastur   orqali   ushbu   amallarni   bajarishni   ko‘rsatib   berishdan
iborat. 
Kurs ishining vazifalari quyidagilardan iborat: 
 katta sonlar tushunchasi va ularning ahamiyatini o‘rganish; 
 katta sonlar bilan ishlash usullarini tahlil qilish; 
 BigInteger sinfining imkoniyatlarini ko‘rib chiqish; 
 katta sonlar ustida asosiy amallarni bajarishni o‘rganish; 
 C# dasturlash tilida amaliy dastur yaratish va natijalarni tahlil qilish. 
Ushbu   kurs   ishi   kirish,   uchta   bob,   xulosa,   foydalanilgan   adabiyotlar   va
ilovadan   iborat   bo‘lib,   unda   katta   sonlar   ustida   amallar   bajarishning   nazariy   va
amaliy jihatlari yoritilgan.  I BOB. NAZARIY ASOSLAR 
1.1Katta sonlar tushunchasi va ahamiyati 
Katta   sonlar   —   bu   oddiy   ma’lumot   turlari   (masalan,   int   yoki   long)   orqali
ifodalab   bo‘lmaydigan   yoki   ularning   chegarasidan   oshib   ketadigan   sonlardir.
Dasturlashda har bir ma’lumot turi ma’lum bir diapazonga ega bo‘ladi. Masalan, int
turi   taxminan   −2   milliarddan   +2   milliardgacha   bo‘lgan   sonlarni   saqlay   oladi.
Bundan katta qiymatlar uchun esa boshqa yondashuv zarur bo‘ladi. 
Katta sonlar bilan ishlash zarurati ko‘plab sohalarda uchraydi. Jumladan: 
 kriptografiyada juda katta sonlar bilan hisoblashlar amalga oshiriladi; 
 ilmiy hisoblashlarda yuqori aniqlik talab qilinadi; 
 moliyaviy tizimlarda katta miqdordagi qiymatlar bilan ishlashga to‘g‘ri 
keladi; 
 matematik modellashtirishda murakkab hisoblashlar bajariladi. 
Oddiy   ma’lumot   turlarining   cheklanganligi   sababli,   katta   sonlar   bilan
ishlashda   maxsus   usullar   yoki   kutubxonalar   qo‘llaniladi.   C#   dasturlash   tilida   bu
muammoni   hal   qilish   uchun   BigInteger   sinfi   mavjud   bo‘lib,   u   juda   katta   butun
sonlarni saqlash va ular ustida amallar bajarish imkonini beradi. 
Katta   sonlar   ustida   amallar   bajarish   jarayoni   oddiy   sonlarga   nisbatan
murakkabroq   bo‘lishi   mumkin,   chunki   bu   yerda   xotira   sarfi   va   hisoblash   tezligi
muhim   rol   o‘ynaydi.   Shu   sababli   samarali   algoritmlar   va   optimallashtirilgan
usullardan foydalanish talab etiladi. 
Umuman olganda, katta sonlar tushunchasi zamonaviy dasturlashning muhim
yo‘nalishlaridan   biri   bo‘lib,   u   murakkab   hisoblashlarni   amalga   oshirishda   keng
qo‘llaniladi va amaliy ahamiyatga ega.  1.2 Katta sonlar bilan ishlash usullari 
Katta   sonlar   bilan   ishlashda   turli   usullardan   foydalaniladi.   Oddiy   ma’lumot
turlari   chegaralangan   bo‘lgani   sababli,   katta   sonlarni   qayta   ishlash   uchun   maxsus
yondashuvlar   qo‘llaniladi.   Ushbu   usullar   dastur   samaradorligi   va   aniqligini
ta’minlashda muhim rol o‘ynaydi. 
Katta sonlar bilan ishlashning asosiy usullaridan biri — sonlarni satr (string)
ko‘rinishida   saqlashdir.   Bu   usulda   sonlar   alohida   belgilar   sifatida   qaraladi   va
amallar bosqichma-bosqich bajariladi. Masalan, qo‘shish yoki ko‘paytirish amallari
maktabdagi   usulga   o‘xshash   tarzda   amalga   oshiriladi.   Bu   yondashuv   oddiy   va
tushunarli bo‘lsa-da, dastur yozish jarayoni biroz murakkablashadi. 
Yana bir usul — katta sonlarni massiv (array) yordamida ifodalashdir. Bunda
sonning   har   bir   raqami   alohida   element   sifatida   saqlanadi.   Ushbu   usul   yordamida
arifmetik   amallarni   aniq   va   nazorat   ostida   bajarish   mumkin.   Ammo   bu   usul   ham
ko‘proq kod yozishni talab qiladi va samaradorlik masalalarini hisobga olish zarur. 
Zamonaviy   dasturlash   tillarida   katta   sonlar   bilan   ishlashni   osonlashtiruvchi
maxsus   kutubxonalar   mavjud.   C#   dasturlash   tilida   bu   vazifani   BigInteger   sinfi
bajaradi. Ushbu sinf yordamida katta sonlar ustida qo‘shish, ayirish, ko‘paytirish va
bo‘lish kabi amallarni oddiy sonlar kabi bajarish mumkin. 
BigInteger sinfi dasturchiga qo‘shimcha murakkabliklarsiz katta sonlar bilan
ishlash   imkonini   beradi.   Bu   esa   dastur   yozish   jarayonini   ancha   soddalashtiradi   va
xatolik ehtimolini kamaytiradi. 
Shuningdek,   katta   sonlar   bilan   ishlashda   algoritm   tanlash   ham   muhim
ahamiyatga   ega.   Samarali   algoritmlar   yordamida   hisoblash   tezligini   oshirish   va
xotira sarfini kamaytirish mumkin. Shu sababli katta sonlar ustida ishlashda nafaqat
vositalar, balki to‘g‘ri yondashuv ham muhim hisoblanadi.  1.3 BigInteger sinfi va uning imkoniyatlari 
C#   dasturlash   tilida   katta   sonlar   bilan   ishlash   uchun   BigInteger   sinfi
qo‘llaniladi. Ushbu sinf System.Numerics nomlar  fazosiga tegishli bo‘lib, istalgan
kattalikdagi butun sonlar ustida amallar bajarish imkonini beradi. Oddiy ma’lumot
turlaridan farqli ravishda, BigInteger xotira chegarasi bilan deyarli cheklanmaydi va
juda katta sonlarni ham saqlay oladi. 
BigInteger yordamida quyidagi amallarni bajarish mumkin: 
 qo‘shish, ayirish, ko‘paytirish, bo‘lish; 
 darajaga oshirish; 
 qoldiq olish; 
 katta sonlarni taqqoslash. 
 1.1-jadval – Oddiy turlar va BigInteger taqqoslanishi 
Ma’lumot turi Maksimal qiymat
(taxminan) Xususiyati
int ±2 milliard Tez, lekin cheklangan
long ±9 kvintillion Kattaroq, lekin limit bor
BigInteger Cheklanmagan Juda katta sonlar bilan
ishlaydi(Jadval 1.1)
 Oddiy misol 
Quyidagi katta sonlar berilgan: 
A = 999999999999999999999999999 
B = 888888888888888888888888888 
Ko‘paytirish amalini bajaramiz: 
A × B = 888888888888888888888888887111111111111111111111111112
Bunday katta sonlarni oddiy int yoki long orqali hisoblashning imkoni yo‘q,
chunki   ular   bu   qiymatni   sig‘dira   olmaydi.   Ammo   BigInteger   yordamida   bu   kabi
hisoblashlar oson va aniq bajariladi.   Izoh 
 BigInteger juda katta sonlar bilan ishlash imkonini beradi 
 Hisoblash aniqligi yuqori bo‘ladi 
 Moliyaviy, ilmiy va kriptografik hisoblashlarda keng qo‘llaniladi 
Umuman olganda, BigInteger sinfi katta sonlar bilan ishlashda eng qulay 
vositalardan biri bo‘lib, dasturchiga murakkab hisoblashlarni sodda va aniq bajarish
imkonini beradi.  II BOB. MODELLASH VA LOYIHALASH 
2.1 Katta sonlar ustida asosiy amallar 
Katta sonlar ustida asosiy arifmetik amallar — qo‘shish, ayirish va 
ko‘paytirish hisoblanadi. Ushbu amallar oddiy sonlarda qanday bajarilsa, katta 
sonlarda ham xuddi shunday bajariladi, faqat sonlarning hajmi katta bo‘lgani sababli
maxsus yondashuv talab etiladi. 
Katta sonlarni qo‘shishda raqamlar o‘ngdan chapga qarab qo‘shiladi va zarur
hollarda   keyingi   razryadga   o‘tish   (carry)   amalga   oshiriladi.   Ayirish   amalida   esa
qarz   olish   (borrow)   jarayoni   yuz   beradi.   Ko‘paytirish   amalida   esa   har   bir   raqam
alohida ko‘paytirilib, natijalar yig‘indisi olinadi. 
 Misollar 
 Qo‘shish: 
A = 555555555555555555 
B = 444444444444444444 
A + B = 999999999999999999 
 Ayirish: 
A = 1000000000000000000 
B = 111111111111111111 
A − B = 888888888888888889 
 Ko‘paytirish: 
A = 111111111111111111 
B = 3 
A × B = 333333333333333333 
 2.1-jadval – Asosiy amallar xususiyatlari 
Amal Tavsif Qiyinchilik darajasi
Qo‘shish Raqamlar yig‘indisi Oson
Ayirish Qarz olish mumkin O‘rtacha
Ko‘paytirish Ko‘p bosqichli hisoblash Murakkab(Jadval 2.1) Katta sonlar ustida amallar bajarishda asosiy qiyinchilik — ularning hajmi 
bilan bog‘liq. Shu sababli bunday hisoblashlarda samarali algoritmlar yoki maxsus 
kutubxonalar
(masalan, BigInteger) dan foydalanish maqsadga muvofiq
hisoblanadi.  2.2 BigInteger yordamida amallar bajarish 
C#   dasturlash   tilida   katta   sonlar   ustida   amallar   bajarish   uchun   BigInteger
sinfi   eng   qulay   vositalardan   biri   hisoblanadi.   Ushbu   sinf   yordamida   juda   katta
sonlarni   saqlash   va   ular   ustida   matematik   amallarni   oddiy   sonlar   kabi   bajarish
mumkin. 
BigInteger yordamida qo‘shish, ayirish va ko‘paytirish amallari hech qanday
qo‘shimcha   murakkabliksiz   amalga   oshiriladi.   Dasturchi   faqat   sonlarni   kiritadi   va
kerakli amalni bajaradi, qolgan hisoblashlar avtomatik tarzda bajariladi. 
 Misol 
Quyidagi katta sonlar berilgan: 
A = 123456789123456789123456789 
B = 987654321987654321987654321 
Qo‘shish amalini bajaramiz: 
A + B = 1111111111111111111111111110 
Ko‘paytirish amalini bajaramiz: 
A × B = 121932631356500531591068431581771069347203169112635269
Rasm 2.1 – BigInteger orqali katta sonlar bilan ishlash (Rasm 2.1)  2.2-jadval – BigInteger imkoniyatlari 
Amal Tavsif
Qo‘shish Katta sonlarni qo‘shadi
Ayirish Katta sonlarni ayiradi
Ko‘paytirish Katta sonlarni ko‘paytiradi
Bo‘lish Katta sonlarni bo‘ladi
Taqqoslash Sonlarni solishtiradi(Jadval 2.2)
BigInteger sinfi katta sonlar bilan ishlashni sezilarli darajada osonlashtiradi. 
U yordamida murakkab hisoblashlarni aniq va tez bajarish mumkin bo‘ladi. Shu 
sababli zamonaviy dasturlashda katta sonlar bilan ishlashda ushbu sinf keng 
qo‘llaniladi.  2.3 int va BigInteger taqqoslash 
Dasturlashda   sonlar   bilan   ishlashda   turli   xil   ma’lumot   turlaridan
foydalaniladi.   Eng   ko‘p   ishlatiladigan   turlar   —   bu   int,   long   va   BigInteger
hisoblanadi.   Ularning   har   biri   o‘zining   xususiyatlari,   chegaralari   va   qo‘llanish
sohalariga ega. 
int   va   long   kabi   oddiy   ma’lumot   turlari   tez   ishlaydi   va   kam   xotira   talab
qiladi.  Biroq  ular  qat’iy  chegaralangan  bo‘lib,  juda  katta  sonlarni  saqlay   olmaydi.
Masalan,   int   turi   taxminan   ±2   milliardgacha   bo‘lgan   sonlarni,   long   esa   undan
kattaroq qiymatlarni saqlay oladi, lekin baribir limit mavjud. 
BigInteger   esa   bu   muammoni   hal   qiladi.   U   istalgan   kattalikdagi   butun
sonlarni saqlash imkonini beradi. Shu sababli katta sonlar bilan ishlashda aynan shu
sinfdan   foydalanish   maqsadga   muvofiq   bo‘ladi.   Biroq,   BigInteger   oddiy   turlarga
qaraganda   ko‘proq   xotira   talab   qiladi   va   hisoblash   tezligi   biroz   sekinroq   bo‘lishi
mumkin. 
2.3-jadval – int va BigInteger taqqoslanishi 
Mezoni int BigInteger
Maksimal qiymat Cheklangan Cheklanmagan
Tezlik Juda tez Nisbatan sekin
Xotira sarfi Kam Ko‘proq
Qo‘llanish Oddiy hisoblashlar Juda katta sonlar(Jadval 2.3)
 Tahlil 
Taqqoslash   natijasiga   ko‘ra,   agar   hisoblashlar   oddiy   va   kichik   sonlar   bilan
bog‘liq   bo‘lsa,   int   yoki   long   turlaridan   foydalanish   maqsadga   muvofiq.   Ammo
sonlar   juda   katta   bo‘lsa   yoki   chegaradan   oshib   ketsa,   BigInteger   sinfidan
foydalanish zarur bo‘ladi.
Shunday qilib, har bir tur ma’lum vazifalar uchun qulay bo‘lib, to‘g‘ri tanlov 
dastur samaradorligini oshirishda muhim rol o‘ynaydi.  III BOB. DASTURIY AMALGA OSHIRISH 
3.1 Dastur kodi (C#) 
Ushbu bo‘limda katta sonlar ustida amallar bajaruvchi dastur C# dasturlash 
tilida ishlab chiqildi. Dasturda BigInteger sinfidan foydalanib qo‘shish, ayirish va 
ko‘paytirish amallari bajariladi. 
using System; 
using System.Numerics;
Console.Write("Birinchi katta sonni kiriting: "); 
BigInteger a = 
BigInteger.Parse(Console.ReadLine());
Console.Write("Ikkinchi katta sonni kiriting: "); 
BigInteger b = 
BigInteger.Parse(Console.ReadLine());
BigInteger sum = a + b; 
BigInteger diff = a - b; 
BigInteger mul = a * b;
Console.WriteLine("\n--- Natijalar ---"); 
Console.WriteLine("Qo‘shish: " + sum); 
Console.WriteLine("Ayirish: " + diff); 
Console.WriteLine("Ko‘paytirish: " + mul); 3.2 Dastur interfeysi tavsifi 
Ushbu bo‘limda ishlab chiqilgan dastur interfeysi va uning ishlash prinsipi 
batafsil ko‘rib chiqiladi. Dastur C# dasturlash tilida yozilgan bo‘lib, u konsol 
(console) ilovasi ko‘rinishida amalga oshirilgan. Konsol ilovasi oddiy va qulay 
interfeysga ega bo‘lib, foydalanuvchi bilan to‘g‘ridan-to‘g‘ri muloqot qilish 
imkonini beradi. 
 Rasm 3.1 – Konsol interfeysi umumiy ko‘rinishi (Rasm 3.1) 
Dastur ishga tushirilgandan so‘ng foydalanuvchiga katta sonlarni kiritish taklif 
etiladi. Foydalanuvchi birinchi va ikkinchi katta sonni klaviatura orqali kiritadi. 
Kiritilgan qiymatlar satr ko‘rinishida olinib, BigInteger turiga o‘tkaziladi. Bu 
jarayon katta sonlarni hech qanday cheklovlarsiz qayta ishlash imkonini beradi. 
Interfeysning asosiy vazifasi foydalanuvchi kiritgan ma’lumotlarni qabul qilish va 
natijalarni tushunarli ko‘rinishda chiqarishdan iborat. Dastur quyidagi bosqichlarda 
ishlaydi:   foydalanuvchidan birinchi katta sonni kiritish so‘raladi; 
 foydalanuvchidan ikkinchi katta sonni kiritish so‘raladi; 
 kiritilgan sonlar ustida qo‘shish, ayirish va ko‘paytirish amallari bajariladi; 
 natijalar ekranga tartibli va tushunarli shaklda chiqariladi. 
 3.2-jadval – Interfeys elementlari tavsifi 
Element Tavsifi
Kiritish qatori Foydalanuvchi sonlarni kiritadi
Console oynasi Natijalar ko‘rsatiladi
Matnli izohlar Amal natijalarini tushuntiradi
Natija chiqarish Hisoblangan qiymatlar aks etadi(Jadval 3.2)
Dastur   interfeysi   sodda   bo‘lishiga   qaramay,   u   foydalanuvchi   uchun   yetarli
darajada qulay hisoblanadi. Har bir amal natijasi alohida satrda chiqariladi, bu esa
natijalarni   o‘qishni   osonlashtiradi.   Bundan   tashqari,   matnli   izohlar   yordamida
foydalanuvchiga qaysi amal bajarilgani aniq ko‘rsatib beriladi. 
Konsol  interfeysining  yana bir  afzalligi  — uning tez  ishlashi  va kam  resurs
talab   qilishidir.   Grafik   interfeysga   nisbatan   konsol   ilovalari   sodda   tuzilishga   ega
bo‘lib,   dastur   yaratish   jarayonini   ham   soddalashtiradi.   Shu   sababli   dastlabki
bosqichlarda   yoki   algoritmlarni   sinovdan   o‘tkazishda   aynan   konsol   ilovalar   keng
qo‘llaniladi. 
Shuningdek,   dasturda   foydalanuvchi   kiritgan   ma’lumotlarning   to‘g‘riligini
tekshirish   imkoniyati   ham   mavjud.   Agar   noto‘g‘ri   qiymat   kiritilsa,   dastur   xatolik
yuzaga   kelishi   mumkin,   shuning   uchun   kelajakda   ushbu   dasturga   qo‘shimcha
tekshiruv   mexanizmlarini   qo‘shish   mumkin.   Masalan,   foydalanuvchi   faqat   son
kiritishini nazorat qilish orqali dastur yanada mukammallashtiriladi. 
Interfeysni   yanada   rivojlantirish   uchun   menyu   qo‘shish,   foydalanuvchiga
amal   turini   tanlash   imkonini   berish   yoki   grafik   interfeys   (Windows   Forms   yoki
WPF) yaratish mumkin. Bu esa dasturdan foydalanishni yanada qulay va interaktiv
qiladi.  Umuman   olganda,   ishlab   chiqilgan   dastur   interfeysi   sodda,   tushunarli   va
amaliy jihatdan foydali bo‘lib, katta sonlar ustida amallar bajarishni samarali tarzda
amalga oshiradi.  3.3 Natijalar va tahlil 
Mazkur bo‘limda ishlab chiqilgan dastur orqali olingan natijalar tahlil 
qilinadi hamda, katta sonlar ustida amallar bajarish jarayonining samaradorligi 
baholanadi. Dastur Visual Studio muhitida ishga tushirilib, foydalanuvchi 
tomonidan kiritilgan katta sonlar ustida qo‘shish, ayirish va ko‘paytirish amallari 
muvaffaqiyatli bajarildi. 
Amaliy  sinovlar   davomida  turli  kattalikdagi  sonlar   kiritilib,  dastur   natijalari
tekshirildi. Natijalar shuni ko‘rsatdiki, BigInteger sinfi yordamida juda katta sonlar
ustida   ham   aniq   va   ishonchli   hisoblashlarni   amalga   oshirish   mumkin.   Oddiy
ma’lumot   turlari   bilan   solishtirganda,   BigInteger   hech   qanday   qiymat   chegarasiga
ega emasligi bilan ajralib turadi. 
Dastur natijalari quyidagi jihatlar asosida baholandi: 
 hisoblashning aniqligi; 
 dastur ishlash tezligi; 
 xotira sarfi; 
 foydalanuvchi uchun qulaylik darajasi. 
Aniqlik   jihatidan   dastur   juda   yuqori   natija   ko‘rsatdi.   Har   qanday   katta   son
ustida   bajarilgan   amallar   to‘g‘ri   natijani   berdi.   Bu   esa   BigInteger   sinfining   asosiy
afzalliklaridan biri hisoblanadi. Ayniqsa, ko‘p xonali sonlar bilan ishlashda xatolik
yuzaga kelmadi. 
Tezlik   masalasiga   keladigan   bo‘lsak,   oddiy   int   yoki   long   turlariga   nisbatan
BigInteger   biroz   sekinroq   ishlashi   kuzatildi.   Biroq   bu   sekinlik   katta   sonlar   bilan
ishlash imkoniyati evaziga qabul qilinadigan holat hisoblanadi. Amaliy jihatdan bu
farq sezilarli muammo tug‘dirmaydi. 
Xotira   sarfi   ham   muhim   omillardan   biri   hisoblanadi.   BigInteger   katta
sonlarni saqlash uchun ko‘proq xotira talab qiladi, chunki u sonning har bir qismini
alohida   qayta   ishlaydi.   Shunga   qaramay,   zamonaviy   kompyuterlar   uchun   bu
muammo deyarli sezilmaydi.   3.3-jadval – Natijalarni umumiy baholash 
Mezoni Baho Izoh
Aniqlik Juda yuqori Xatolarsiz hisoblash
Tezlik O‘rtacha Oddiy turlardan sekinroq
Xotira sarfi Yuqori Katta sonlar uchun 
ko‘proq joy
Qulaylik Yuqori Foydalanish oson
 Rasm 3.2 – Dastur natijasi (console oynasi) (Rasm 3.2) 
Olingan   natijalar   asosida   shuni   aytish   mumkinki,   ishlab   chiqilgan   dastur
katta sonlar bilan ishlashda samarali va ishonchli hisoblanadi. Dastur foydalanuvchi
tomonidan kiritilgan qiymatlarni to‘g‘ri qabul qiladi va natijalarni aniq ko‘rsatadi. 
Shuningdek,   dasturdan   foydalanish   jarayoni   oddiy   va   tushunarli   bo‘lib,   har
qanday   foydalanuvchi   undan   bemalol   foydalanishi   mumkin.   Konsol   interfeysi
minimalistik bo‘lishiga qaramay, u barcha zarur funksiyalarni o‘z ichiga olgan. 
Kelgusida dastur imkoniyatlarini yanada kengaytirish mumkin. Masalan: 
 bo‘lish amalini qo‘shish; 
 darajaga oshirish funksiyasini qo‘shish;   foydalanuvchi xatolarini tekshirish (validation); 
 grafik interfeys yaratish. 
Umuman   olganda,   ushbu   dastur   katta   sonlar   ustida   amallar   bajarishni
muvaffaqiyatli   amalga   oshiradi   va   BigInteger   sinfining   amaliy   imkoniyatlarini
yaqqol namoyon etadi.  XULOSA 
Mazkur kurs ishida C# dasturlash tilida katta sonlar ustida amallar bajarish 
masalasi har tomonlama o‘rganildi. Ish davomida katta sonlar tushunchasi, ularning
ahamiyati hamda oddiy ma’lumot turlarining chegaralari tahlil qilindi. Shuningdek, 
katta sonlar bilan ishlashda qo‘llaniladigan asosiy usullar ko‘rib chiqildi va ularning
afzallik hamda kamchiliklari yoritildi. 
Nazariy   qismda   katta   sonlar   bilan   ishlashning   zaruriyati   asoslab   berildi.
Ayniqsa,   zamonaviy   axborot   tizimlarida,   ilmiy   hisoblashlarda,   moliyaviy
operatsiyalarda va kriptografiyada katta sonlar bilan ishlash muhim o‘rin egallashi
ko‘rsatildi. Oddiy int va long kabi ma’lumot turlari cheklanganligi sababli, ulardan
katta qiymatlar uchun foydalanib bo‘lmasligi aniqlandi. 
Amaliy   qismda   esa   C#   dasturlash   tilining   BigInteger   sinfi   yordamida   katta
sonlar   ustida   qo‘shish,   ayirish   va   ko‘paytirish   amallari   bajarildi.   Dastur   Visual
Studio muhitida ishlab chiqilib, foydalanuvchi kiritgan katta sonlar asosida natijalar
olindi.   Olingan   natijalar   algoritmlarning   to‘g‘ri   ishlashini   va   BigInteger   sinfining
samaradorligini tasdiqladi. 
Tahlil   natijalariga   ko‘ra,   BigInteger   sinfi   katta   sonlar   bilan   ishlashda   juda
qulay   va   ishonchli   vosita   ekanligi   aniqlandi.   U   yordamida   istalgan   kattalikdagi
sonlar   ustida   aniq   hisoblashlarni   amalga   oshirish   mumkin.   Biroq,   uning   oddiy
ma’lumot   turlariga  nisbatan   biroz   sekinroq  ishlashi   va   ko‘proq  xotira  talab   qilishi
ham kuzatildi. 
Shuningdek, kurs ishida ishlab chiqilgan dastur interfeysi sodda va tushunarli
bo‘lib, foydalanuvchi uchun qulay ishlash imkonini beradi. Dastur natijalari konsol
oynada   aniq   va   tartibli   ko‘rinishda   chiqarildi,   bu   esa   foydalanuvchiga   hisoblash
natijalarini oson tahlil qilish imkonini berdi. 
Umuman   olganda,   ushbu   kurs   ishi   davomida   katta   sonlar   ustida   amallar
bajarishning   nazariy   va   amaliy   jihatlari   chuqur   o‘rganildi.   Olingan   bilimlar
kelajakda   murakkab   hisoblashlar   bilan   bog‘liq   dasturlar   yaratishda   muhim
ahamiyatga ega bo‘ladi.  FOYDALANILGAN ADABIYOTLAR 
1.  Abduqodirov A.A., Xudoyberganov D.X.  Algoritmlar va ma’lumotlar 
tuzilmasi . – Toshkent: O‘qituvchi, 2020. 
2.  Sedgewick R., Wayne K.  Algorithms (4th Edition) . – Addison-Wesley, 
2011. 
3.  Cormen T.H., Leiserson C.E., Rivest R.L., Stein C.  Introduction to 
Algorithms . – MIT Press, 2009. 
4.  Knuth D.E.  The Art of Computer Programming . – Addison-Wesley, 1997.
5.  Microsoft Documentation.  C# Programming Guide va BigInteger 
kutubxonasi . 
6.  W3Schools.  C# Tutorial . 
7.  GeeksforGeeks.  BigInteger va katta sonlar ustida amallar .  ILOVA 
Mazkur kurs ishining ilova qismida quyidagi qo‘shimcha materiallar 
keltiriladi: 
 C# dastur kodi (katta sonlar ustida amallar bajarish); 
 Visual Studio muhitida olingan skrinshotlar; 
 dastur natijalari (console oynasi); 
 qo‘shimcha misollar va tushuntirishlar. 
Ilova kurs ishining amaliy qismini to‘ldiradi va unda keltirilgan natijalarni 
tasdiqlovchi materiallar sifatida xizmat qiladi.

MUNDARIJA

KIRISH

I BOB. NAZARIY ASOSLAR

1.1 Katta sonlar tushunchasi va ahamiyati

1.2 Katta sonlar bilan ishlash usullari

1.3 BigInteger sinfi va uning imkoniyatlari

II BOB. MODELLASH VA LOYIHALASH

2.1 Katta sonlar ustida asosiy amallar

2.2 BigInteger yordamida amallar bajarish

2.3 int va BigInteger taqqoslash

III BOB. DASTURIY AMALGA OSHIRISH

3.1 Dastur kodi (C#)

3.2 Dastur interfeysi tavsifi

3.3 Natijalar va tahlil

XULOSA

FOYDALANILGAN ADABIYOTLAR

ILOVA