Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr


 Katta sonlarni faktorialini hisoblash



Download 5,36 Mb.
Pdf ko'rish
bet147/335
Sana02.08.2021
Hajmi5,36 Mb.
#136132
1   ...   143   144   145   146   147   148   149   150   ...   335
Bog'liq
Dasturlash asoslari(O'zbekcha)

4.3. Katta sonlarni faktorialini hisoblash 
 
Agar biz yuqoridagi dasturdagi n ning  qiymatiga  katta sonni  kiritsak,  masalan 
n=100 
bo‘lsa, 
shu 
sonni 
faktorialini 
hisoblashni 
so‘rasak, 
biz 
System.OverflowException  natija  olamiz,  ya’ni  qiymat  decimal  tipidan  ham  oshib 
ketadi.  


Dasturlash tillari va axborot-kommunikatsiya texnologiyalari                                                              1-semestr
 
 
136 
 
Demak biz bu kabi misollarni yechishda bu dastur kodini qo‘llay olmaymiz.     
Agar  biz  100!  ni  hisoblashni  xoxlasak  BigInteger  tipidan  foydalanamiz  (.NET  
Framework    4.0  versiyasida  bor  boshqa  versiyalarida  mavjud  emas).  Bu  tip  butun 
tipning  (int)  kengaytirilgan  varianti  bo‘lib  (  100,000  ta  raqamdan  iborat),  u  juda 
katta. Ushbu BigInteger klassida cheklanmagan miqdordagi raqamlar yozilgan. 
BigInteger  dan  foydalanish  uchun,  biz  o‘z  loyihamizdan  add  a  reference  ni 
tanlash  orqali  System.Numerics.dll  kutubxonani  qo‘shishimiz  kerak  (bu  juda  katta 
sonlar bilan ishlashdagi .NET kutubxonasini standarti bo‘lib, VS loyihasida bu ishni bu 
kutubxonani qo‘shmasdan bajarib bo‘lmaydi) . Visual Studio dagi Solution Explorer 
oynasidan sichqonchaning o‘ng tugmasini bosib, Adding a reference ni tanlaymiz va 
u quyidagicha: 
Biz  ro‘yxatdan  assembly  System.Numerics.dll  kutubxonani  topamiz  va 
tanlaymiz: 
 


Dasturlash tillari va axborot-kommunikatsiya texnologiyalari                                                              1-semestr
 
 
137 
 
 
 
Agar biz bu kutubxonani topa olmasak, bu shuni anglatadiki Visual  Studio da 
NET  FRAMEWORK    4.0  o‘rnatilmagan  yoki  bizning  Visual    Studio  eski  versiyadir  va 
versiyasini yangi versiyaga almashtirishimiz kerak.  
 
 


Dasturlash tillari va axborot-kommunikatsiya texnologiyalari                                                              1-semestr
 
 
138 
 
So‘ngra  biz  “using  System.Numerics;”ni  qo‘shishimiz  zarur,  shunda  decimal  
o‘rnini BigInteger egallaydi. Dastur esa quyidagicha bo‘ladi: 
Yuqoridagi  dastur  natijasi  n=100  bo‘lsa,  100!  ning  qiymatini  quyidagicha 
olamiz, natijada 158-xonali son hosil bo‘ladi. 
 
 
 
BigInteger  da  siz  1000!  ni  ham,  10000!  va  hattoki  100000!  hisoblay  olsiz.  Bu 
biroz vaqt oladi, ammo OverflowException natija paydo bo‘lmaydi. BigInteger klassi 
katta imkoniyatlarga ega, ammo int va long ga qaraganda sekin  ishlaydi. Bizda "big 

Download 5,36 Mb.

Do'stlaringiz bilan baham:
1   ...   143   144   145   146   147   148   149   150   ...   335




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish