O’nlik sanoq sistemasidan turli xil 2 lik, 8 lik, 16 lik sanoq sistemalariga o’tuvchi dastur C#

O’ZBEKISTON RESPUBLIKASI OLIY VA O’RTA
MAXSUS TA’LIMVAZIRLIGI
URGANCH DAVLAT UNIVERSITETI
“FIZIKA-MATEMATIKA” FAKULTETI “AXBOROT
TEXNOLOGIYALARI” KAFEDRASI “AXBOROT
TEXNOLOGIYASI VA DASTURLASH”
FANIDAN KURS ISHI
Mavzu : ”  O’nlik sanoq sistemasidan turli xil 2 lik, 8 lik, 
16 lik sanoq sistemalariga o’tuvchi dastur ”
5130300 – “ Matematik injinering (Ishlab chiqarish 
sohalari boyicha)”
Bajardi : 1-kurs  Rahimberdiyeva Xilolaxon Mansur qizi
Ilmiy rahbari: _________________________________
Topshirgan sanasi: ____________________________
Himoya qilgan sanasi: __________________________
Baho:_____
1 Urganch – 2023- yil
Mundarija
 Kirish
         I-BOB. C # dasturlash tili
         1.1. C# dasturlash tili tarixi
         1.2. C# dasturi va uning imkoniyatlari.
         II- BOB. Dasturlashning asosiy qismi
         2.1. Sanoq sistemalari turlari 
         2.2. 10, 8, 2 lik sanoq sistemalari haqida
         tushuncha.
         2.3. Sanoq sistemalarida amallar bajarish
         Xulosa
         Foydalanilgan adabiyotlar.
2 KIRISH
Sanoq   tizimi   —  sonlarni   maxsus   belgilar   (raqamlar)   toʻplami
yordamida   yozish   usuli.   Sanoq   tizimining   pozitsion   va
nopozitsion   koʻrinishlari   mavjud.   Nopozitsion   Sanoq   tizimi
rim raqamlari bilan, pozitsion  Sanoq tizimi esa biz oʻrgangan
va   arab   raqamlari   (aslida   hind   raqamlari)   deb   ataladigan
belgilar   bilan   yoziladi[1].   Pozitsion   Sanoq   tizimida   oʻrniga
qarab raqamning qiymati oʻzgarib boradi. Masalan, 34 soni 4
ta   birlik   va   3   ta   oʻnlikni   bildiradi.   Agar   ularning   oʻrni
almashtirilsa 43 soni hosil boʻladi. Bu sonda 3 ta birlik va 4 ta
oʻnlik   mavjud,   yaʼni   3   ning   qiymati   10   marta   kamaydi   va
aksincha   4   ning   qiymati   10   barobar   oshdi.   Bunday   oʻnlik
Sanoq   tizimidagi   sonlarning   raqamlari   uni   10   lik   asos
darajalari   yigʻindisida   tasvirlashning   koeffitsiyentlari
hisoblanadi.   Hisoblash   mashinalarida,   odatda,   G.V.   Leybnits
taklif qilgan ikkilik sanoq sistemasi ishlatiladi. Bunday sonlarni
tasvirlash uchun 2 ta — 0 va 1 raqamlaridan foydalaniladi. 2
lik   Sanoq   tizimining   ishlatilishi   EHMlar   quriladigan
elementlarning faqat 2 ta turgʻun ishchi holatda boʻlishi bilan
bogʻliq. Bu elementlar kalitlarga oʻxshash boʻlib, ular yozilgan
yoki   oʻchirilgan   holatlarda   boʻladi.   Uchinchi   holat   yoʻq.   Bu
holatlarning   biriga   1,   2siga   0   mos   qoʻyilsa,   bunday
elementlarning ketma-ketligi 2 lik Sanoq tizimidagi songa mos
keladi.
3 C# DASTURLASH TILI
C#   ( Si   Sharp   —   deb   talaffuz   qilinadi )   leksik   jihatdan
kengaytirilgan,   imperativ,   deklarativ,   funksional,   umumiy,
obyektga   yoʻnaltirilgan   (sinfga   asoslangan)   va
komponentlarga   yoʻnaltirilgan   dasturlash   fanlarini   oʻz   ichiga
olgan   umumiy   maqsadli,   koʻp   paradigmali   dasturlash   tili.   U
2000- yilda   Microsoft   tomonidan   . NET   tashabbusi   doirasida
ishlab chiqilgan va keyinchalik Ecma (ECMA-334) va ISO (ISO /
IEC   23270:   2018)   to monidan   xalqaro   standart   sifatida
tasdiqlangan.
Misol
Console . WriteLine ( "Salom, dunyo!" );
1.1.C# dasturlash tili tarixi.
Kompyuter   tillari   oʻz-oʻzidan   emas,   balki   oʻzaro   bir-biriga
bogʻliqlikda   mavjud   boʻladi.   Har   qanday   yangi   til   u   yoki   bu
shaklda   oldingi   yaratilgan   tillarning   xossalarini   oʻziga   meros
qilib   oladi,   yaʼni   ketma-ketlik   prinsipi   amalga   oshiriladi.
Natijada   bitta   tilning   imkoniyatlari   boshqalari   tomonidan
foydalaniladi (masalan, yangi xususiyatlar mavjud kontekstga
birlashtiriladi,   tilning   eski   tuzilishlari   esa   oʻchirib   yuboriladi).
Kompyuter   tillarining   evolyutsiyasi   shunday   tarzda   roʻy
beradi   va   dasturlash   mahorati   takomillashtiriladi.   C#   tili
yuqoridagilardan istisno emas, u boshqa dasturlash tillarining
koʻplab   foydali   imkoniyatlarini   meros   qilib   oldi   va   dunyoda
eng   koʻp   qoʻllaniladigan   ikkita   kompyuter   tillari   —   C,   C++,
4 shuningdek   Java   tili   bilan   uzviy   bogʻliqdir.   C#   tili   1972-yilda
Nyu-Djersi   shtatining   Myurrey-xill   shahrida   Bell   Laboratories
kompaniyasining   tizimli   dastur   tuzuvch isi   Dennis
Richie   tomonidan   yaratilgan.   Bu   til   oʻzini   shunchalik   yaxshi
koʻrsatdiki,   oxir   oqibatda   unda   Unix   operatsion   tizimlarining
90   %   yadro   kodlari   yozildi   (oldin   quyi   darajadagi   til
assemblerda   yozilgan).   C#   ning   vujudga   kelishidan   oldinroq
yaratilgan   tillardan,   ( Pascal   ulardan   eng   mashhuri
hisoblanadi),   yetarli   darajada   muvaffaqiyat li   foydalanilgan,
lekin   aynan   C#   tili   dasturlashning   zamonaviy   davri
boshlanishini   belgilab   berdi.     1960-yillarda     dasturlash
texnologiyalaridagi   strukturaviy   dasturlashlarning   paydo
boʻlishiga   olib   kelgan   inqilobiy   oʻzgarishlar   C#   tilini   yaratish
uchun   asosiy   imkoniyatlarni   belgilab   berdi.   Strukturaviy
dasturlashlarning   paydo   boʻlishiga   qadar   katta   dasturlarni
yozish   qiyin   boʻlgan,   satr   kodlari   miqdorining   oshishi   sababli
dasturlarning   oʻtish   joylari   chalkash   massalariga   aylanib
ketishiga   olib   keladi.   Strukturaviy   tillar   dastur   tuzuvchi
instrumentariysiga   shartli   operatorlarni,   lokal   oʻzgaradigan
tartiblarni   va   boshqa   mukammal-lashtirishlarni   qoʻshib   bu
muammoni   hal   qildi.   Shunday   tarzda   nisbatan   katta
dasturlarni   yozish   imkoniyati   vujudga   keldi.   Aynan   C#   tili
kuch,   elegantlik   va   maʼnodorlikni   oʻzida   muvaffaqiyatli
birlashtirgan   birinchi   strukturaviy   til   boʻldi.   Uning   boʻlishi
mumkin   boʻlgan   xatolar   masʼuliyatini   tilga   emas   dastur
tuzuvchi   zimmasiga   yuklaydigan   prinsiplar   bilan   inobatga
olgan   holda   sintaksisdan   foydalanishdagi   qisqalik   va   osonlik
kabi   xususiyatlari   tezda   koʻplab   tarafdorlarini   topdi.   Bugungi
kunda   biz   mazkur   sifatlarni   oʻz   oʻzidan   anglashiladigan   deb
hisoblaymiz,   lekin   S   da   birinchi   marotaba   dastur   tuzuvchiga
zarur boʻlgan ajoyib yangi imkoniyatlar mujassamlashtirilgan.
5 Natijada   1980   yillar dan   boshlab   S   strukturaviy   dasturlash
tillari   orasida   eng   koʻp   foydalaniladiganlaridan   biri   boʻlib
qoldi.   Biroq,   dasturlashning   rivojlantirish   choralariga   koʻra
bundanda kattaroq dasturlarni qayta ishlash muammosi kelib
chiqmoqda.   Loyiha   kodi   maʼlum   bir   hajmga   yetgan   zahoti
(uning   raqamli   ahamiyati   dastur,   dastur   tuzuvchi,
foydalanilgan instrumentlarga bogʻliq  boʻladi, lekin taxminan
5000 satr kodlari nazarda tutilayapti) S-dasturlarini tushunish
va kuzatib borishda qiyinchiliklar yuzaga keladi.
1970 yillar   oxirida koʻplab  loyihalar  S  strukturaviy  dasturlash
tili   yordamida   qayta   ishlash   uchun   oson   boʻlgan   eng   yuqori
hajmga   erishgan.   Endi   bularga   yangicha   munosabat   talab
qilina boshlandi va ushbu muammoni hal etish uchun dastur
tuzuvchiga   katta   hajmdagi   dasturlar   bilan   ishlash   imkonini
beruvchi   obyektga   yoʻnaltirilgan   dasturlash   (OYD)   yaratildi.
Hamonki,   oʻsha   vaqtda   S   eng   ommabop   til   boʻlishiga
qaramasdan   OYD   ni   qoʻllab-quvvatlamadi,   uning   obyektga
yoʻnaltirilgan   (keyinchalik   C++   deb   atalgan)   versiyasini
yaratish   zarurati   tugʻildi.   Bu   versiya   oʻsha   Bell   Laboratories
kompaniyasining xodimi     Brian      Straustrup   tomonidan 1979-
yil boshida ishlab chiqilgan. Dastlab yangi til „C sinflar bilan“
degan  nom   oldi,  lekin  1983-yilda   C++   deb  qayta   nomlangan.
U   oʻzida   C   tilini   toʻla   qamrab   oladi   (yaʼni,   C   C++   uchun
poydevor   boʻlib   xizmat   qiladi)   va   obyektga   yoʻnaltirilgan
dasturlashni   qoʻllab-quvvatlash   uchun   moʻljallangan   yangi
imkoniyatlarni namoyon qiladi. Aslida C++ C tilining obyektga
yoʻnaltirilgan   versiyasi   hisoblanadi,   shuning   uchun   C   ni
biluvchi   dastur   tuzuvchi   uchun   C++   da   dasturlashga   oʻtishda
yangi   tilni   emas,   balki   faqatgina   OYD   ning   yangi
konsepsiyasini   oʻrganish   kifoya   qiladi.   C++   tili   uzoq   vaqt
6 mobaynida   sifatga   etibor   bermay,   faqat   miqdor   oshirish,
hajmni   kengaytirish   jihatidan   rivojlandi   va   soya   ostida   qolib
ketdi.   1990   yillar   boshida   u   ommaviy   ravishda   qoʻllanila
boshlandi   va   katta   yutuqlarga   erishdi,   oʻn   yillikning   oxirida
esa   dasturiy   taʼminotni   qayta   ishlashda   eng   keng
foydalaniladigan   va   bugungi   kunda   ham   peshqadamlik
qilayotgan tilga aylandi. Shuni anglash muhimki, C++ ni ishlab
chiqilishi   yangi   dasturlash   tilini   yaratishga   intilish
hisoblanmaydi,   balki   faqatgina   etarli   darajada   muvaffaqiyatli
tilni   takomillashtirayapti   va   toʻldirayapti.   Bunday   qarash,
hozirda   ham   kompyuter   tillarini   rivojlantirishning   yangi
yoʻnalishlarida qoʻllanilayapti.
Dastlabki   kompyuterlarni   hujjatlashtirishdan   tortib,   dasturiy
taʼminotni   ishlab   chiqish   uchun   zamonaviy   vositalarni   oʻz
ichiga   oladi.   Ilk   dasturlash   tillari   juda   oʻta   tor   doirada
qoʻllanilishga   moʻljallangan   boʻlib,   ular   matematik   belgilarga
va shunga oʻxshash tushunarsiz sintaksisga tayangan.
Kompyuter   texnikasining   rivojlanishi   dasturlash
tillarida   algoritmlarni   yozib   olish   uchun   turli   xil   yangi   belgilar
tizimlarining   paydo   boʻlish   jarayonini   belgilab   berdi.   Bunday
tilning   paydo   boʻlishining   maʼnosi   dastur   kodini
soddalashtirishdan iborat edi.
Dasturlash   tillarini   besh   avlodga   boʻlish   qabul   qilingan.
Birinchi   avlodga   oʻtgan   asrning   50-yillari   boshlarida,   birinchi
kompyuterlar   endigina   paydo   boʻlgan   paytda   tuzilgan   tillar
kiradi.   Bu   "bir   satrda   bir   buyruq"   prinsipi   asosida   qurilgan
birinchi assembler tili edi.
XX   asr   davomida   kompilyatorlar   nazariyasi   boʻyicha   olib
borilgan   izlanishlar   yuqori   darajadagi   dasturlash   tillarini
7 yaratishga   olib   keldi,   ular   koʻrsatmalarni   uzatish   uchun
qulayroq sintaksisdan foydalanadilar.
Mashina kodlari va assembler
Kompyuterning   elektron   qurilmalari   ishlashning   fizik
tamoyillari   shundan   iboratki,   kompyuter   faqat   bir   va   noldan
iborat   buyruqlarni   —   kuchlanishning   pasayishi   ketma-
ketligini,   yaʼni   mashina   kodini   idrok   eta   oladi.   Kompyuterlar
rivojlanishining   dastlabki   bosqichida   odam   kompyuterga
tushunarli tilda, mashina kodlarida dasturlar tuzishi kerak edi.
Har   bir   koʻrsatma   birliklar   va   nollarning   turli   kombinatsiyasi
sifatida   ifodalangan   opkod   hamda   operand   manzillaridan
iborat edi. Shunday qilib, protsessor uchun har qanday dastur
oʻsha paytda birlar va nollar ketma-ketligi sifatida qaragan.
Keyinchalik   kompyuter   bilan   muloqot   qilish   amaliyoti   shuni
koʻrsatdiki,  bunday  tilni oʻzlashtirish  qiyin   va  noqulaydir.   Uni
ishlatganda 1 yoki 0 ni notoʻgʻri ketma-ketlikda yozib koʻplab
xatolarga   yoʻl   qoʻyish   ehtimoli   juda   yuqori   edi.   Dasturni
boshqarish   juda   qiyin   boʻlgan.   Bundan   tashqari,   mashina
kodlarida dasturlashda kompyuterning ichki tuzilishini, har bir
blokning   ishlash   prinsipini   yaxshi   bilish   kerak   edi   va   bunday
tildagi   eng   yomon   narsa   shundaki,   bu   tildagi   dasturlar   —
birlar   va   nollarning   juda   uzun   ketma-ketligi   mashinaga
bogʻliq,   yaʼni   har   bir   kompyuter   uchun   oʻz   dasturini   tuzish
kerak   edi   va   mashina   kodlarida   dasturlash   juda   koʻp   narsa:
vaqt, ish va dasturchining eʼtiborini oshirishni talab etardi.
Tez   orada   mashina   kodini   yaratish   jarayonini
avtomatlashtirish   mumkinligi   maʼlum   boʻldi.   1950-yildan
boshlab   dasturlarni   yozish   uchun   mnemonik   til   —   Assembler
tili dan   foydalanila   boshlandi.   Assembler   tili   mashina   kodini
inson   uchun   qulayroq   shaklda   koʻrsatishga   imkon   berdi:
8 buyruqlar va bu buyruqlar bajariladigan obyektlarni belgilash
uchun   buyruqning   mohiyatini   aks   ettiruvchi   ikkilik   kodlar
oʻrniga harflar yoki  qisqartirilgan  maxsus  soʻzlar  qoʻllanilgan.
Masalan,   assembler   tilida   ikkita   raqamni   qoʻshish   boʻyicha
koʻrsatma   add   soʻzi   bilan   ifodalanadi,   uning   mashina
kodi   000010   tarzida boʻladi.
Assembler   quyi   darajadagi   dasturlash   tilidir.   Quyi   darajadagi
dasturlash tili, bu muayyan turdagi protsessorga yoʻnaltirilgan
va   uning   xususiyatlarini   hisobga   oladigan   dasturlash   tili
demakdir. Bunday holda, „quyi“ „yomon“ degani emas, balki
bu shuni anglatadiki, til operatorlari mashina kodiga yaqin va
maxsus   protsessor   koʻrsatmalariga   qaratilgan   boʻladi.
Assemblar   tilining   paydo   boʻlishi   dasturchilarning   hayotini
sezilarli   darajada   osonlashtirdi,   chunki   endi   ular   koʻzda
miltillovchi   nollar   va   birlar   oʻrniga   oddiy   tilga   yaqin
belgilardan   iborat   buyruqlar   bilan   dastur   yozishlari   mumkin
edi. Oʻsha vaqt uchun  bu til innovatsiya  edi va mashhur edi,
chunki   u   kichik   dasturlarni   yozishga   imkon   berardi,   bu   esa
oʻsha davr mashinalari uchun muhim mezon sanalgan.
Ammo   u   orqali   yirik   dasturiy   taʼminotlar   ishlab   chiqish
murakkabligi   boʻlganligi   bois   uchinchi   avlod   tillari
hisoblanmish   yuqori   darajadagi   tillarning   paydo   boʻlishiga
olib   keldi.   Ammo   assemblerdan   foydalanish   shu   bilan
tugamadi, u bugungi kungacha tor doiralarda mashhur boʻlib
kelmoqda.   Hozirgi   vaqtda   u   dasturlarning   alohida   qismlarini
yozishda yoki baʼzan dasturlarning oʻzini yozishda qoʻllaniladi.
Misol   tariqasida,   drayverlar,   oʻyinlar   va   operatsion   tizimlar
yuklagichi   ( bootloader )ni   yozishda   assemblerga   murojaat
etiladi. Shuni unutmaslik kerakki, bu til hakerlar orasida ham
mashhurdir, chunki bu tilda yozilgan dasturning tezligi yuqori
9 darajadagi   dasturlash   tilida   yozilgan   dastur   tezligidan   ancha
yuqori   boʻlishidadir.   Buning   sababi   shundaki,   assemblerda
yozilgan   dastur   hajmi   juda   kichik   boʻladi.   Antivirus   ishlab
chiquvchilari   oʻz   dasturlarining   baʼzi   modullarida
assemblerdan ham foydalanadilar
Fortran   translyatori   (boshqa   dasturlar   bilan   birga   IBM/360
dan „aynan nusxa olingan“) mavjud edi.
ALGOL
Algol   1958-yilda   ETHʼda   (Syurix,   Shveytsariya)   bir   haftalik
konferentsiyada   keng   koʻlamli   ilovalar   uchun   universal
dasturlash   tili   sifatida   ishlab   chiqilgan   va   keyin   Xalqaro
axborotni   qayta   ishlash   federatsiyasi   tomonidan   tuzilgan
qoʻmita   tomonidan   yakunlangan.   Qoʻmita   tarkibiga   Yevropa
hamda   amerikalik   bir   qancha   yetakchi   dasturlash   tillari
sohasidagi  olimlar   va  muhandislar,   jumladan,  Jon  Bekus,  Jon
Makkarti,   Piter   Naur,   Edsger   Deykstr   va   keyinchalik   Kobol
tilini rivojlantirish qoʻmitasiga raislik qilgan Jozef Vegstenruen
jalb etildi.
Dastlab,   taklif   qilingan   ALGOL   ( ALGOrithmic   Language )   nomi
rad   etildi.   Ammo   u   umumiy   foydalanishga   aylanganligi
sababli,   IALʼning   rasmiy   nomi   keyinchalik   ALGOL   58   ga
oʻzgartirilishi belgilab qoʻyildi.
Yangi   tilning   tarafdorlari   ham,   tanqidchilari   ham   bor   edi.
Qoʻshma   Shtatlarda   Algol   sovuqqonlik   bilan   qabul   qilindi,   u
faqat   akademik   muhitda   mashhur   edi.   Algolnining
targʻibotchilari   bir   qator   qiyinchiliklarga   duch   kelishdi.
Xususan,   oʻsha   paytda   mavjud   boʻlgan   kompyuterlarning
hech   biri   Algol   alifbosini   tashkil   etgan   barcha   116   ta   harfni
kiritish-chiqarishni qoʻllab-quvvatlamas edi.
10 Ammo   Yevropada   Algol   ishtiyoq   bilan   qabul   qilindi.   U
akademik   muhitda   tezda   mashhurlikka   erishdi   va
kompilyatorlar   hamma   joyda   ishlab   chiqildi,   ularning
koʻpchiligi amalga oshirishning murakkabligiga qaramay, juda
muvaffaqiyatli   boʻldi.   Algol   Buyuk   Britaniyadan   SSSRʼning
Uzoq   Sharqiga   tarqalib,   ilmiy   nashrlarda   algoritmlarni
tavsiflash uchun universal til va haqiqiy dasturlash vositasiga
aylandi.
Algolda dastur tushunchasi buyruqlarning erkin ketma-ketligi
sifatida emas, balki aniq tasvirlangan va ajratilgan qismlardan
iborat blokli tuzilma sifatida paydo boʻldi.
Algol   dasturining   asosiy   bloki   asosiy   dasturning   oʻzi
hisoblanadi.   U   begin   va   end   kalit   soʻzlari   juftligi   bilan
chegaralangan   blokga   oʻrnatilgan   bajariladigan   qismini,
shuningdek,   pastki   dasturlarning   tavsiflarini   oʻz   ichiga   oladi.
Har   bir   ostdastur   kichik   dastur   shaklida   boʻlib,   uning   ichida
oʻziga   xos   maʼlumotlar   tasvirlangan,   nom   va   rasmiy
parametrlar   roʻyxati   koʻrinishidagi   yagona   aniqlangan
interfeys   va   kod   blokini   oʻzz   ichiga   oladi.   Bunday   holda,
bloklar kichik ostbloklarga ajratilishi mumkin.
LISP
Lisp   tili   1960-yilda   J.   Makkarti   tomonidan   taklif   qilingan
boʻlib, u raqamli boʻlmagan xarakterdagi masalalarni yechish
dasturlarini   ishlab   chiqishga   qaratilgan   edi.   LISP
inglizcha   LIS t   P rocessing   ( roʻyxatga   ishlov   berish )   iborasining
qisqartmasi   boʻlib,   uning   asosiy   qoʻllanish   sohasini   yaxshi
taʼkidlaydi.
Algebraik   ifodalar,   grafiklar,   chekli   guruhlar   elementlari,
toʻplamlar,   xulosa   chiqarish   qoidalari   va   boshqa   koʻplab
murakkab   obyektlarni   roʻyxat   shaklida   tasvirlash   qulayligi
11 bois   ushbu   dasturlash   tili   tezda   mashhurlikka   erishdi.
Xususan, roʻyxatlar kompyuterlar xotirasida axborotni taqdim
etishning eng moslashuvchan shaklidir.
Oʻtgan   davr   mobaynida   ushbu   tilning   bir   qator   dialektlari:
Common   LISP,   Mac   LISP,   Inter   LISP,   Standard   LISP   va
boshqalar paydo boʻldi. Ularning orasidagi farqlar katta emas
va   asosan   oʻrnatilgan   funksiyalarning   bir   oz   boshqacha
toʻplamiga va dasturlarni yozish shaklidagi baʼzi farqlari bilan
xarakterlanadi.   Shunday   ekan,   ulardan   biri   ustida   ishlashni
oʻrgangan dasturchi boshqasini bemalol oʻzlashtira oladi.
Lispʼning   katta   afzalligi   uning   funksional   yoʻnalishidir,   yaʼni
dasturlash   funksiyalar   yordamida   amalga   oshiriladi.   Bundan
tashqari, funksiya maʼlum bir klassning elementlarini boshqa
klassning tegishli elementlari bilan bogʻlaydigan qoida sifatida
tushuniladi.
Moslashtirish   jarayoni   dasturning   ishlashiga   hech   qanday
taʼsir   koʻrsatmaydi,   faqat   uning   natijasi   —   funksiyaning
qiymati   muhim   sanaladi.   Bu   katta   dasturiy   paketlarni   yozish
va   diskni   raskadrovka   qilishni   nisbatan   osonlashtiradi.
Dasturlarning   aniqligi,   ularning   funksiyalarining   ochiq-oydin
chegaralanganligi,   ularni   bajarishda   murakkab   nojoʻya
taʼsirlarning   yoʻqligi   mantiqiy   jihatdan   murakkab   vazifalarni,
masalan,   sunʼiy   intellektni   dasturlash   uchun   majburiy
talablardir.
COBOL
Kobol   1959-yilda   ishlab   chiqilgan   va   asosan   biznes   ilovalarini
ishlab   chiqish   uchun   dasturlar   yozish,   shuningdek,   iqtisodiy
sohada ishlash uchun moʻljallangan edi.
12 Tilni   yaratuvchilar   uni   mashinadan   mustaqil   va   tabiiy   ingliz
tiliga   iloji   boricha   yaqinroq   qilishni   maqsad   qilganlar.   Ikkala
maqsad   ham   muvaffaqiyatli   amalga   oshirildi;   COBOL
dasturlari   hatto   mutaxassis   boʻlmaganlar   uchun   ham
tushunarli   hisoblanadi,   chunki   ushbu   dasturlash   tilidagi
matnlar hech qanday maxsus izohga muhtoj emas.
Kobol   koʻplab   ilova   hamda   dialektlarga   ega.   Til   uchun   bir
qator   standartlar:   1968,   1974,   1985   va   2002-yillarda
tasdiqlangan.   Eng   soʻnggi   standart   tilga   obyektga
yoʻnaltirilgan paradigmani joriy etdi.
Dasturlash   tili   —   maʼlumotlar   (axborotlar)ni   va   ularni
elektron   mashinalarda   ishlash   algoritmlari   (dasturlari)ni
bayon   qilish   uchun   moʻljallangan   rasmiy   til;   odamning
elektron mashina bilan bogʻlanishi uchun ishlatiladigan shartli
belgilar tizimi. Dasturlash tili tabiiy til bilan shartli mashina tili
orasidagi   oʻrinni   egallaydi.   Dasturlash   tilining   asosiy   vazifasi
dasturlar   tuzish   (Dasturlash)   vositasi   boʻlishi,   yaʼni
maʼlumotlarni   ifodalash   va   ularni   EHM   (kompyuter)   da
ishlashda qoʻllanishidan iborat.
1.2 C# dasturlash   tili va uning imkoniyatlari
Dasturlash tillari haqida maʼlumot.
Inson kabi kompyuter ham oʻziga xos tilda muloqot qiladi. Bu
til   faqat   kompyuter   tushunadigan   til   boʻlib,   u   cheklangan
lugʻat   va   qatʼiy   yozish   qoidalaridan   iboratdir.   Kompyuter
tushunadigan   va   muloqot   olib   boradigan   „til“   DASTURLASH
TILI   deb   ataladi.   Istalgan   dasturlash   tilini   bilgan   shaxs   óz
dasturini bemalol tuza oladi.
13 Protsessor   dasturlash   tilida   yozilgan   dasturni   toʻgʻridan   -
toʻgʻri   tushunmaydi.   Buning   uchun   dasturni   protsessor   tiliga
tarjima   qiladigan   (raqamli   oʻtkazib   beruvchi)   tarjimon   tili   -
translyatordan   foydalaniladi.   Tarjimon   tilining   ikkita   turi
mavjud: kompilyator va interpretator.
1)KOMPLIYATOR   dasturlash   tilida   yozilgan   dastur   kodini
tólaligicha   oʻqib,   mashina   kodiga   tarjima   qiladi   va   tarjima
natijalarini bajariladigan yaxlit bitta faylga yigʻadi.
2)INTERPRETATOR dasturlash tilida yozilgan kodni bosqichma
-bosqich   mashina   kodiga   aylantirib,   tahlil   qiladi   va   berilgan
buyruqlarni ketma- ketlikda bajaradi. Agar xatolik sodir bólsa,
ósha   zahoti   xabar   beradi.   Dasturlash   tillari   juda   koʻl   boʻlib,
ularning   har   biridan   oʻziga   xos   masalalarni   yechishda
foydalanish mumkin. Quyida ularning eng mashhurlari haqida
maʼlumotlar bilan tanishamiz.
C   kompyuter   operatsion   tizimlarini   yozish   uchun
moʻljallangan   til.   JAVASCRIPT   interfaol   web-   saytlarni   yozish
uchun moʻljallangan til.   SCRATCH   dasturlarni oʻrganish uchun
eng mos vizuallashgan dasturlash tili.   JAVA   kompyuter, mobil
telefon   va   planshetlar   uchun   moʻljallangan   dastur   yozuvchi
til.   PHP   dinamik   web-saytlar   yaratish   uchun   moʻljallangan
til.   PYTHON   turli masalalarni yechish, sunʼiy intellekt tizimlari
uchun   moʻljallangan   dasturlash   tili.   Aksariyat   dasturlash
tillari,   xususan,   C++,   Pascal,   Java,   Python   va   boshqalar
integrallashgan dasturlash muhiti (IDE)ga ega.IDE (Integrated
Development   Environment-   integrallashgan   dasturlash
muhiti) — dasturiy taʼminot yaratish uchun dasturiy vositalar
majmuasi.
14 Dastur yaratish jarayonida
Tizimli   va   amaliy   dasturlarni   yaratish   uchun   dasturlash
tillaridan foydalaniladi. Dastur yaratish jarayoni katta hajmga
ega   bólib,   dasturlash   tillarida   Tizimli   va   amaliy   dasturlarni
yaratish   uchun   dasturlash   tillaridan   foydalaniladi.   Dastur
yaratish  jarayoni katta hajmga ega boʻlib, dasturlash tillarida
dastur   yozish   shu   jarayonning   bir   qismi   sanaladi.   Kompyuter
dasturlarini   yaratish   jarayoni   ham   kompyuterda   masalani
yechish   jarayoniga   oʻxshash   boʻlib,   bir   necha   bosqichni   óz
ichiga oladi, dastur yozish shu jarayonning bir qismi sanaladi.
Kompyuter   dasturlarini   yaratish   jarayoni   ham   kompyuterda
masalani   yechish   jarayoniga   oʻxshash   bólib,   bir   necha
bosqichni oʻz ichiga oladi.
Dastur yaratish bosqichlari
Birinchi   bosqichda   dastur   uchun   talab   aniqlanadi.   Ushbu
jarayonda dasturning qanday maqsadda qoʻllanilishi, kirish va
chiqish   maʼlumotlari   aniqlanadi.   Dastur   va   resurslarni   ishlab
chiqish,   uni   joriy   etishning   narxi
baholanadi.   Ikkinchi   bosqichda   dastur   loyihasi   ishlab
chiqiladi.   Dasturchilar   uchun   texnik   topshiriq   va   vazifalar
shakllantiriladi.   Ishchi   hujjatlar   hamda   ish   rejasining   grafigi
tuziladi   Uchinchi   bosqichda   dastur   kodi   yoziladi.   Bu   kodlash
(dasturlash) jarayoni boʻlib, tuzilgan algoritm dasturlash tilida
yoziladi.   Toʻrtinchi   bosqichda   kodlash   jarayoni   tugab,
dasturdagi   xatoliklarni   aniqlash   va   testlash   boshlanadi.   Bu
jarayonda  dasturning   oʻgʻri   tuzilganligi,   ishlash   samaradorligi
va   boshqa   parametrlariga   aniqlik
15 kiritiladi.   Beshinchi   bosqichda dastur  amaliyotga  joriy  etiladi.
Agar   dastur   aniq   buyurtmachi   talabiga   muvofiq   yaratilgan
bólsa, u holds bu bosqich eng muhim bosqich sanaladi. Bunda
avvalgi   dasturda  foydalanilgan   qurilma   va   maʼlumotlar   yangi
dasturga   moslanadi.   Ushbu   dastur   bilan   ishlovchi
mutaxassislar   óqitiladi.   Oltinchi   soʻnggi   bosqichda   qoʻllab-
quvvatlash   amalga   oshiriladi.   Bu   bosqichda
foydalanuvchilarga tavsiyalar beriladi.
Dasturlash tillari :
Joylanmagan tillar
 Gentee
 Basic
 GBasic
 Fortran
Obyetkga qaratilgan tillar
 Pascal
 Delphi
 C# dastrulash tili
 Java
 C++
 Visual Basic
 ActionScript
 Python
 Ruby
Pastki qavat tillari
 Assembler
 C
16 Skript tillar
 Python
 Java Script
 VB Script
 Lua
Veb uchun tillar va texnologiyalar
 PHP
 ASP
 Perl
 Django
MySQL
Mashhur APIlar va freymvorklar
Ish stoli uchun
 Windows API
APPLE
 Gtk+
 Qt
 .NET Framework
Veb uchun
 PHP
 ASDasturlashNET
 Ruby on Rails
 Perl
 JAVASCRIPT
 MySql
17 C# universal dasturlash tili bo’lib, xar xil darajadagi masalalar
uchun   yechim   topish   mumkin.   C#   tilining   asosiy
tushunchalaridan   biri   bu   klasslardir.   Klass   bu   –foydalanuvchi
tomonidan yaratilgan (ifodalangan) til. C# dasturlash TILIDA C
va C++ tillarning deyarli barcha imkoniyatlari saqlangan. C va
C++   tillarda   tayyor   xoldagi   dasturlarga   qayta   o’zgarish
kiritganda   ham   C#   kompilyatori   dastur   matnidan   xatoliklar
topmaydi. Ya’ni dasturni xar ikkala tilda xam foydalanib tuzish
mumkin.Dinamik   web   saxifalarni   yaratish   uchun   JavaScript
yoki   PHP   singari   tsenariyli   tillarni   ishlatish   zarur.   Bu   tillarni
sintaksisi ko`pincha C dasturlash tiliga o`xhsab ketadi. Til juda
boy   imkoniyatlarga   ega   bo`lsada   web   serverlar   uchun
dasturlar   tuzishga   mo`ljallanmagan   hamda   ob`ektga
mo`ljallangan   dasturlash   tili   bo`lishiga   qaramasdan   visual
xarakterdagi   dasturlarni   yaratish   uchun   maxsus   tizimiga   ega
emas.Net   platformasi   imkoniyatlari   dasturlari   yaratish
bo`yicha   talaba   va   professor-o`qituvchilarni   ishini   keskin
oshiradi.   Net   platformasining   asosiy   tamoyili   quyidagicha
talaffuzlanadi:   “Ixtiyoriy   qismni   ixtiyoriy   joydan
o`zgartirishingiz   mumkin”.   Net   platformasi   Windows
dasturlarini   yaratish   uchun   yangi   model   hisoblanadi.Net
platformasini yutuqlarini sanab bersak.  
-To`liq   va   absolyut   tillararo   o`zaro   ta`sirchanlik:
-ixtiyoriy   Net   dasturlarini   qaysi   dasturlash   tillida   yozilishidan
qat`iy   nazar   umumiy   bajarilish   muhiti.   Eng   muhimi   barcha
tillar   uchun   tiplar   to`plami   ishlatiladi;
-dasturni   tarqatilishini   soddalashtirilgan   jarayoni.   Net
platformasida   tiplarni   tizimli   reestrga   qayd   etish   zaruriyati
yo`q.   Bundan   tashqari   .Net   platformasi   bir   modulning   bir
18 necha   DLL   versiyalarini   bir   biriga   xalaqit   bermasdan   tizimda
hayot   kechirishi   mumkin.Net   platformasi   uchun   maxsus   C#
dasturlash   tili   yaratildi.   C#   dasturlash   tilining   konstruktsiyasi
nafaqat C++, Java tilidan olingan balki Visual Basic tilidan ham
olingan. Tilning asosiy xususiyatlarini sanab o`tsak:
-xotirani avtomatik boshqarish;
-sanaladigan,   strukturali   va   sinf   xususiyatlari   bilan   ishlash
uchun quyilgan sintaksis konstruktsiyalar;
-operatorlarni   qayta   yuklashni   C++   tiliga   qaraganda   oson
amalga oshirish;
-dasturiy   interfeyslarni   ishlatishni   to`liq   qo`l-lab   quvvatlash ;
-sohaga   yo`naltirilgan   dasturiy   texnologiyalarni   qo`llab
quvvatlash.
C#   dasturlash   tili   .Net   platformasining   qadrdon   tili
hosoblanadi.   Tilni   yaratishning   asosiy   maqsadi   uni   .Net
platformasiga integrallashuvi hisoblanadi.
.Net   platformasiga   turli   dasturlash   tilida   dasturlash   mumkin
bo`lsada   eng   yaxshisi   C#   dasturlash   tilida   dastur   tuzishni
maslaxat   beramiz,   chunki   bu   til   muhitni   barcha
imkoniyatlarini   maksimal   ishlatadi.   Shunday   ekan   C#   tili
imkoniyatlarini   bilish   orqali   muhit   imkoniyatlarini   ham   bilib
olamiz.   Bu   til   to`liq   ob`ektga   yo`naltirilgan   dasturlash   tili
bo`lib,   xatolarga   bardoshli   va   chidamli   dasturlarni   tuzish
imkoniyatini   beradi.C#   dasturlash   tili   o`zining   soddaligi,
barqarorligi   va   mantiqiyligi   bilan   faqr   qiladi.   Unda   xatolarni
toppish   noqulay   ko`rinmaydi.   C#   tili   tiplarga   nisbatan   xavfsiz
hisoblanadi.   U   initsializatsiyalanmagan   o`zgaruvchilarni
19 ishlatishdan,   tiplarni   xavfsiz   bo`lmagan   o`tkazishdan   va
boshqa   ko`p   tarqalgan   xatoliklardan   himoyalaydi.C#
dasturlash   tilida   dastur   tuzish   vaqt   va   moddiy   sarf   jihatdan
yutuqli   hisoblanadi.   Nihoyat   C#   .Net   platformasining   barcha
imkoniyatlari   xususan   umumiy   va   maxsus   masalalarni
yyechish   uchun   ko`pgina   kutubxonalarni   ishlatadi.Net
platformasining   ikkita   asosiy   tashkil   etuvchisi   umumiy   tildagi
bajarilish  muhiti (CLR-Common Language Runtime) va sinflar
kutubxonasi   (FCLFramework   Class   Library).   Umumiy   tildagi
bajarilish  muhiti dasturni ishlashi vaqtida kodni boshqarishni
bajaradi va xotirani boshqarish, oqimlarni boshqarish hamda
uzoqlashgan o`zarota`sir singari asosiy xizmatlarni ko`rsatadi.
Bunda   qattiqqo`l   tiplashtirish   va   kod   mavjudliligi
tekshiruvlarini   amalaga   oshiradi ,   qaysiki   bu   xavfsizlik   va
barqarorlikni ta`minlaydi. Net platformasining boshqa tashkil
etuvchisi   –   sinflar   kutubxonasi   bo`lib,   kop   holatda
ishlatiladigan   tiplar   kollektsiyasiga   ob`ektga   yo`naltirilgan
murojaatni   taqdim   etadi,   bu   esa   turli   darajadagi   dasturlarni
oson   yaratish   imkoniyatini   beradi   to   oddiy   buyruqli
interfeysdan   tortib   toki   Net   platformasining   eng   katta
yutuqlarini   ishlatishgacha   masalan:   XML   web   xizmatlar,
ASP.Net   imkoniyatlari   va   hokazo.Net   platformasini   qisqa
ko`rib   chiqgandan   keyin   ham   C#   dasturlash   tili   to`g`risida
quyidagilarni   xulosa   qilish   mumkin.   Xulosa   qilib   shuni   aytish
kerakki   dasturlash   tillarini   quyidagi   ketma-ketlikda
o`rganishni   maslahat   berar   edik:Dasturlash   tili   boshlang`ich
tushunchalarini o`rganish uchun C dasturlash tilini o`rganish:
til sintaksisi, algoritmlari,   konstruktsiyalar , konsol dasturlarini
yaratish.
20 1.C#   tili   –   turli   tipdagi   dasturlarni   yaratish   uchun   kuchli   va
qulay dasturlash tili hisoblanadi.
2.”Kompyuter tarmoqlari”, “Internet va multimediya” kurslari
doirasida web   dasturlarini yaratish uchun C# dasturlash tilini
ishlatish.
Dasturlash   tillarini   o`qitishning   bunday   yondashuvi
mutaxassislarni   yangi   darajaga   chiqaradi.C#   dasturi   90
yillarning   oxirida   ishlab   chiqilib   Microsoft   .NET   ning   bir
qismiga   aylandi.   Al`fa   versiya   sifatida   2000   yildan   boshlab
ishlatila   boshladi   .C   #   bosh   arxitektori   butun   dunyo
dasturchilari   ichida   birinchilar   qatorida   turgan   va   butun
dunyo tomonidan tan olingan Anders Hejlsberg bo`ldi. Uning
1980   yillarda   chiqarilgan   Turbo   Paskal   dasturi   orqali   ham
tanishimiz   mumkin.C#   bevosita   C,   C++   va   Java   bilan   bog`liq.
Chunki bu uchta til dasturlash olamida eng mashhur tillardir.
Bundan   tashqari   profisanal   dasturchilar   C   va   C++   ni   va   juda
ko`pchilik Java tilida ish yuritadi.
  C#   va   Java   o`zaro   o`zgacha   ravishda   bog`langan.   Ularning
kelib chiqishi C va C++ bo`lsada o`zaro bir biridan farq qiladi.
C# tili ham obe`ktga mo`ljallangan tillar sirasiga kiradi.
Dasturlash   tillarida   buyruqlar   va   amallar   ma’lum   kodlar
(raqamlar)   bilan   ifodalangan   bo’lib,   ular   ShK   qurilmalari
adreslari   bilan   bevosita   ishlashga   mo’ljallangan   va   mashina
tili deb ham yuritiladi. Dasturlash tillarida ko’rsatmalar inson
tiliga yaqin bo’lgan so’zlar va dastur tuzish uchun juda qulay.
Dasturlashda   o’zgaruvchilardan   foydalanmasdan   dastur
ishlash   mumkin   emas.   O’zgaruvchilar   o’zida   qiymatlarni
saqlaydi , bu qiymatlar vaqtinchalik operativ xotirada saqlanib
21 turadi.   O’zgaruvchilarning   nomlari   bo’ladi,   nomlar   lotin
alifbosining   a   dan   z   gacha   bo’lgan   oraliqdagi   harflar   bilan
belgilanadi. Bundan tashqari o’zgaruvchi nomlarini faqat bitta
harf   emas   bir   necha   harflar   ketma   -ketligi   bilan   ya’ni   so’zlar
bilan   belgilash   mumkin.Sonlar   bilan   harflar   orqali   belgilash
mumkin,   lekin   harflardan   oldin   son   kelishi   mumkin   emas.
O’zgaruvchining   asosiy   turlari   sonli   o’zgaruvchi,   satriy
o’zgaruvchi,   simvolli   o’zgaruvchi,   mantiqiy   o’zgaruvchilar
bo’lib   bo’linadi.   Sonli   o’zgaruvchilarga   faqat   sonlar   kiradi,   0,
5,   -10,   -5.6,   4995   va   h.   Satriy   o’zgaruvchilarga   esa   satrlar
kiradi.   Simvolli   o’zgaruvchilar   qiymati   faqat   bitta   simvoldan
iborat   bo’ladi.   Mantiqiy   o’zgaruvchilarga   faqat   ikkita   qiymat
beriladi   rost,   yolg’on   ya’ni   true,   false..   C#   dasturlash   TILIDA
butun sonli o’zgaruvchilarda 8 ta tip ishlatiladi
C#   dasturlash   TILIDA   kasr   sonli   o’zgaruvchi   tiplari   float
tipidagi   o’zgaruvchiga   qiymat   berganda   qiymat   oxiriga   “f”
belgisini   qo’yish,   decimal   tipidagi   o’zgaruvchiga   qiymat
berganda   “m”   belgisini   qo’yish   lozim.   Birinchi   ifoda   bu
o’zgaruvchini   e’lon   qilish.   Bu   yerda   count   o’zgaruvchi   nomi,
int(integer)   tipi   va   count   o’zgaruvchisiga   1   soni   qiymat   qilib
olinadi.   int   tipi   da   faqat   butun   sonlardan   foydalaniladi.
Keyingi  qatorda  “   ”  belgilari   orasiga   olingan   satr   shu   holiday
chop   qilinadi,   count   esa   o’zgaruvchining   qiymatini   chop
qiladi. Uchinchisi esa “Satr” so’zini chop qiladi. Kod yozganda
chekinishlardan   foydalangan   ma’qul.   Chunki   keyin   kerakli
qatorni,   kerakli   kodni   topib   olishda   qulay   bo’ladi,   bir   necha
bo’sh   qatorlarni   qoldirib   ketish,   qator   boshidan   bo’sh   joy
qoldirib   ketish   tushuniladi.   C#   dasturlash   TILIDA
22 chekinishlarga   tabulyatsiya   simvoli,   probellar ,   bo’sh   qatorlar
kiradi.
class Program
{
public static void Main(string[] args)
{
double s = 0;
Console.WriteLine("Введите размерность системы");
int n = int.Parse(Console.ReadLine());
double[,] a = new double[n, n];
double[] b = new double[n];
double[] x = new double[n];
for (int i = 0; i < n; i++)
x[i] = 0;
Console.WriteLine("Введите построчно коэффициенты 
системы");
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
{
a[i, j] = double.Parse(Console.ReadLine());
}
Console.WriteLine("Введите свободные коэффициенты");
for (int i = 0; i < n; i++)
b[i] = double.Parse(Console.ReadLine());
for (int k = 0; k < n - 1; k++)
23 {
for (int i = k + 1; i < n; i++)
{
for (int j = k + 1; j < n; j++)
{
a[i, j] = a[i, j] - a[k, j] * (a[i, k] / a[k, k]);
}
b[i] = b[i] - b[k] * a[i, k] / a[k, k];
}
}
for (int k = n - 1; k >= 0; k--)
{
s = 0;
for (int j = k + 1; j < n; j++)
s = s + a[k, j] * x[j];
x[k] = (b[k] - s) / a[k, k];
}
Console.WriteLine("Система имеет следующие корни");
Console.WriteLine("x = {0:0.##}", x);
Console.WriteLine("y = {0:0.##}", x);
Console.WriteLine("z = {0:0.##}", x);
}
}
Tenglamalar tizimini yechish algoritmi
public static void Main(string[] args)
{
Console.WriteLine("введите n");
24 int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите t");
int t = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите w");
int w = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите m");
int m = Convert.ToInt32(Console.ReadLine());
double a = 1; double b = 1; double c = 1;
for (byte i = 1; i <= n - 1; i++) b *= i;
for (byte i = 1; i <= t - 2; i++) a *= i;
for (byte i = 1; i <= (n - 1 + t - 2); i++) c *= i;
}
Tenglamalar tizimini yechishning rekursiv usuli
private static double FormulaLoop(double x0,   double q , 
double b, int k)
{
double res = x0;
double tempK = x0;
for (int i = 0; i < k; i++)
{
tempK = q*tempK + b;
res += tempK;
}
return res;
}
private static double FormulaRecSum(double x0, double q, 
double b, int k)
{
25 if (k==0)
{
return x0;
}
double xk = q*x0 + b;
return x0+FormulaRecSum(xk, q, b, k-1 );
}
private static double FormulaRec(double x, double q, double 
b, int k)
{
if (k == 0)
{
return x;
}
double xk = q * x + b;
return FormulaRec(xk, q, b, k - 1);
}
static void Main(string[] args)
{
double q = 2;
double b = 5;
double x0 = 1;
int k = 3;
Console.WriteLine("Loop sum of k components = 
{0}",FormulaLoop(x0,q,b,k));
Console.WriteLine("Recursive sum of k components = {0}", 
FormulaRecSum(x0, q, b, k));
Console.WriteLine("x{0} = {1}",k, FormulaRec(x0, q, b, k));
Console.ReadLine();
26 }
6)O'zgartirilgan Eyler usuli bilan ikkinchi darajali differentsial 
tenglamani echish
static double f(double t,   double y , double x, double a, double 
b, double c, int j)
{
if (j == 0) return (-b * y - c * x) / a;
else   return y ;
}
public static double[] x { get; set; }
public static double[] y { get; set; }
public static double[] t { get; set; }
static void MME(double a, double b, double c, double tn, 
double tk, int n, double x0, double y0)
{
t = new double[n + 1];
x = new double[n + 1];
y = new double[n + 1];
double h = (tk - tn) / n;
int i;
t[0] = tn;
x[0] = x0;
y[0] = y0;
for (i = 1; i <= n; i++)
{
t[i] = t[i - 1] + h;
x[i]=x[i-1]+(-c*y[i-1]-b*x[i-1])*h;
y[i]=y[i-1]+x[i-1]*h;
}
27 }
static void Main(string[] args)
{
double a = 0.01, b = 20, c = 300000, x0 = 0.00001, y0 = -0.01;
int n = 100;
MME(a, b, c, 0, 0.004, n, x0, y0);
for (int i = 0; i <= n; i++)
Console.WriteLine("t[{0}]={1,6:f5} \t q\'[{0}]={2,8:f8} \t 
q[{0}]={3,10:f8}", i, t[i], y[i], x[i]);
Console.ReadKey();
}
II- BOB Dasturlashning asosiy qismi
2.1.Sanoq   sistemalari turlari
Ma'lumki,   harflardan   iborat   alifboni   qollashda   bir   qancha
qonun   va   qoidalarga   amal   qilinadi.   Sonli   alifbodagi
belgilardan   foydalanishda   ham   o'ziga   xos   qoidalardan
foydalaniladi. Bu qoidalar turli alifbolar uchun turlicha bo'lib,
mazkur  alifboning  kelib  chiqish  tarixi  bilan  bog'liq.  O'z ichiga
o'nta   raqamni   olganligi   uchun   bu   alifbo   o'zining   barcha
qoidalari   bilan   birgalikda   o'n   raqamli   sanoq   sistemasi   yoki
qisqacha   о   'nlik   sanoq   sistemasi   deb   ataladi.   Sonlar
sistemasidagi   raqamlar   soni   shu   sistemaning   asosi   deb
yuritiladi.   Sonlar   alifbosiga   kiritilgan   (bir   xonali)   belgilar
raqamlar   va   ular   yordamida   hosil   qilingan   boshqa   (ko'p
xonali)   belgilar   sonlar   deb   yuritiladi.   Masalan,   o'nlik   sanoq
sistemasida 5, 6, 8 - bu raqamlar, ammo 568 - bu son. O'nlik
sanoq   sistemasida   birliklar,   yuzliklar,   mingliklar   va   boshqalar
har biri o'ntadan belgilardan iborat guruhlarga bo'lingan: 0, 1,
28 ... , 9; 0 ta, 1 ta,..., 9 ta 10; 0 ta, 1 ta,..., 9 ta 100,.... Boshqa
asosli   sanoq   sistemalardagi   belgilar   shu   sistema   asosi
nechaga   teng   bo'lsa,   shuncha   belgilardan   iborat   guruhlarga
ajratiladi.
O'nlik   sanoq   sistemasida   raqamlar   o'zi   turgan   o'rniga
(razryadiga) ko'ra turlicha miqdorni anglatadi.
Masalan: a) 999: 9 (to'qqiz)   - birlik ; 90 (to'qson) - o'nlik; 900
(to'qqiz yuz) - yuzlik;
b) 1991: 1 (bir) - birlik; 90 (to'qson) - o'nlik; 900 (to'qqiz yuz) -
yuzlik; 1 (ming) - minglik.
Shu   bois   ham   bu   sistema   raqamlari   o'z   pozitsiyasi   (turgan
o'rni) ga bog'liq bo'lgan sistema deb ham yuritiladi.
Sanoq   sistemalari   shu   xossasiga   ko'ra   raqamlarining
pozitsiyasiga   bog’liq   bo'lgan   va   raqamlarining   pozitsiyasiga
bog'liq bo'lmagan sanoq sistemalariga (qisqacha pozitsiyali va
pozitsiyali   bo'lmagan   sanoq   sistemalariga)   bo'linadi.
Pozitsiyali   bolmagan   sanoq   sistemasiga   rim   sanoq   sistemasi
misol bo'ladi.
Sizga   ma'lumki,   pozitsiyali   sanoq   sistemasi   bo'lgan   o'nlik
sanoq   sistemasida   arifmetik   amallar   bajarish   juda   qulay ,
lekin, pozitsiyali bo'lmagan sanoq sistemasi bo'lgan rim sanoq
sistemasida   arifmetik   amallar   bajarish   juda   murakkab.
Shuning   uchun   ham   ajdodlarimiz   raqamlar   va   sonlarni   aniq
bir   shakllar   tizimiga   keltirish   masalasiga   katta   e'tibor
qaratganlar.
Sanoq   sistemasi   bu   –   sonlarni   o‘qish   va   arifmetik   amallarni
bajarish uchun qulay ko‘rinishda yozish usuli.
29 Qadimda   hisob   ishlarida   ko‘proq   barmoqlardan
foydalanilgan.   Shu   sababli   narsalarni   5   yoki   10   tadan
taqsimlashgan. Keyinchalik o‘nta o‘nlik maxsus nom – yuzlik,
o‘nta   yuzlik   –   minglik   nomini   olgan   va   h.k.   Yozuv   qulay
bo‘lishi   uchun   bu   muhim   sonlar   maxsus   belgilar   bilan
ifodalana boshlagan. Agar hisoblashda 2 ta yuzlik, 7 ta o‘nlik,
yana 4 ta birlik bo‘lsa, u holda yuzlikning belgisini ikki marta,
o‘nlik   belgisini   yetti   marta ,   birlik   belgisini   to‘rt   marta
takrorlashgan.   Birlik,   o‘nlik   va   yuzliklarning   belgisi   bir-biriga
o‘xshash   bo‘lmagan.   Sonlarni   bunday   yozganda   belgilarni
ixtiyoriy   tartibda   joylashtirish   mumkin   bo‘lgan,   chunki
yozilgan   sonning   qiymati   tartibga   bog‘liq   emas.   Bunday
yozuvda   belgi   holatining   ahamiyati   bo‘lmaganidan,   mos
sanoq   sistemasi   nopozitsion   sistema   deb   ataladi.   Qadimgi
misrliklar,   yunonlar   va   rimliklarning   sanoq   sistemasi
nopozitsion   edi.   Nopozitsion   sanoq   sistemasi   qo‘shish   va
ayirish amallari uchun ozgina yarasada, ko‘paytirish va bo‘lish
uchun   butunlay   yaroqsiz   edi.   Ishni   osonlashtirish   maqsadida
hisob taxtalari – abaklar ishlatilar edi. Hozirgi zamon cho‘tlari
abakning o‘zgargan ko‘rinishidir.
Qadimgi   bobilliklarning   sanoq   sistemasi   dastlab   nopozitsion
edi ,   keyinchalik   ular   belgilarni   yozish   tartibida   ham
informatsiya   borligini   sezishib,   undan   foydalanishga
o‘rganishdi va pozitsion sanoq sistemasiga o‘tishdi. Bunda biz
hozir   qo‘llayotgan   sistemadan   (raqamning   o‘rni   bir   xonaga
siljitilganda   uning   qiymati   10   martaga   o‘zgaradigan   o‘nli
sanoq   sistemadan)   farqli,   bobilliklarda   belgi   bir   xonaga
siljitilganda   sonning   qiymati   60   marta   o‘zgarar   edi   (bunday
sanoq   sistemasi   oltmishli   sistema   deb   ataladi).   Uzoq
vaqtgacha Bobilning sanoq sistemasida nol belgisi, ya’ni bo‘sh
qolgan   xonaning   belgisi   yo‘q   edi.   Odatda,   sonlarning   tartibi
30 ma’lum   bo‘lganidan   bu   noqulay   emas   edi.   Ammo   keng
ko‘lamli   matematik   va   astronomik   jadvallar   tuzish
boshlanganda ,   ana   shunday   belgiga   ehtiyoj   tug‘ildi.   Bu   belgi
keyinchalik   mixxat   yozuvlarda   va   eramizning   boshida
Iskandariyada   tuzilgan   jadvallarda   uchraydi.   IX   asrda   nol
uchun   maxsus   belgi   paydo   boldi.   O‘nli   sanoq   sistemasida
sonlar   ustida   amallar   bajarish   qoidasi   ishlab   chiqildi.
Muhammad ibn Muso al-Xorazmiy tomonidan yozilgan “Hind
hisobi”   nomli   risola   tufayli   o‘nli   sanoq   sistemasi   Yevropaga,
keyin esa butun dunyoga tarqaldi.
Sanoq   sistemasining   asosi   uchun   na   faqat   10   va   60   ni,   balki
birdan katta ihtiyoriy   p   natural sonni olish mumkin.
Sanoq sistemalarini tashkil etilishi deyarli bir xil. Biror   p   soni –
sanoq   sistemasi   asosi   sifatida   qabul   qilinib ,   ixtiyoriy   N   soni
quyidagi ko‘rinishda ifodalanadi:
N =a
n   p n
  + a
n-1   p n-1
+ ... + a
1   p 1
  + a
0   p 0
  + a
-1   p -1
  + ... + a
-m   p -m
Sanoq   tizimi   —   sonlarni   maxsus   belgilar   (raqamlar)   toʻplami
yordamida   yozish   usuli.   Sanoq   tizimining   pozitsion   va
nopozitsion   koʻrinishlari   mavjud.   Nopozitsion   Sanoq
tizimi   rim   raqamlari   bilan,   pozitsion   Sanoq   tizimi   esa   biz
oʻrgangan   va   arab   raqamlari   (aslida   hind   raqamlari)   deb
ataladigan   belgilar   bilan   yoziladi [1] .   Pozitsion   Sanoq   tizimida
oʻrniga qarab raqamning qiymati oʻzgarib boradi. Masalan, 34
soni   4   ta   birlik   va   3   ta   oʻnlikni   bildiradi.   Agar   ularning   oʻrni
almashtirilsa 43 soni hosil boʻladi. Bu sonda 3 ta birlik va 4 ta
oʻnlik   mavjud,   yaʼni   3   ning   qiymati   10   marta   kamaydi   va
aksincha   4   ning   qiymati   10   barobar   oshdi.   Bunday   oʻnlik
Sanoq   tizimidagi   sonlarning   raqamlari   uni   10   lik   asos
darajalari   yigʻindisida   tasvirlashning   koeffitsiyentlari
31 hisoblanadi.   Hisoblash   mashinalarida,   odatda,   G.V.
Leybnits   taklif   qilgan   ikkilik   sanoq   sistemasi   ishlatiladi.
Bunday sonlarni tasvirlash uchun 2 ta   — 0 va 1   raqamlaridan
foydalaniladi.   2   lik   Sanoq   tizimining   ishlatilishi   EHMlar
quriladigan   elementlarning   faqat   2   ta   turgʻun   ishchi   holatda
boʻlishi bilan bogʻliq. Bu elementlar kalitlarga oʻxshash boʻlib,
ular   yozilgan   yoki   oʻchirilgan   holatlarda   boʻladi.   Uchinchi
holat   yoʻq.   Bu   holatlarning   biriga   1,   2siga   0   mos   qoʻyilsa,
bunday   elementlarning   ketma-ketligi   2   lik   Sanoq   tizimidagi
songa mos keladi.
Raqamlarni yozishning turli shakllari
2.2. 10, 8, 2 lik sanoq sistemalari haqida tushuncha.
O'nli sanoq sistemasi tarkibidagi raqamlar:
0,1,2,3,4,5,6,7,8,9
Sakkizlik sanoq sistemasi tarkibidagi raqamlar:
0,1,2,3,4,5,6,7
Ikkilik sanoq sistemasi tarkibidagi raqamlar:
0,1
32 O'n oltilik sanoq sistemasi tarkibidagi raqamlar:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 
(bu yerda A=10,B=11,C12,D=13,E=14,F=15 ga teng)
Barcha mavjud tillar kabi sonlar tili ham mavjud bo‘lib, u ham
o‘z   alifbosiga   ega.   Mazkur   alifbo   hozir   jahonda
qo‘llanilayotgan   0   dan   9   gacha   bo‘lgan   o‘nta   arab
raqamlaridir,   ya’ni:   0,1,2,3,4,5,6,7,8,9.   Bu   tilda   o‘nta   belgi
(raqam)   bo‘lganligi   uchun   ham,   bu   til   o‘nlik   sanoq   sistemasi
deb ataladi.
Sakkizlik   sanoq   sistemasi   sonlarni   faqat   8   belgi,   yaʼni   0,   1,   2,
3,   4,   5,   6,   va   7   raqamlaridan   foydalanib   yozishga
asoslangan   sanoq tizimidir
Ikkilik   sanoq   sistemasi   sonlarni   faqat   2   belgi,   0   va   1
raqamlaridan foydalanib yozishga asoslangan   sanoq tizimidir
Razryad
Har qanday natural son uchun, har bir   xona birligiga   nisbatan,
r azryad(tartib)   tushunchasi   ishlatiladi.   Ya'ni,   birlar   xonasida
joylashgan   son   0-razryad,   o'nlar   xonasida   joylashgan   son   1-
razryad,   yuzlar   xonasida   joylashgan   son   2-razryad   va   shu
tarzda davom etadi.
Pozitsion yoyilma
Har   qanday   asosli   sanoq   sistemada   qisqa   yozuvda   berilgan
sonlarni   asos (o'nlik   sanoq   sistemasi   uchun   10   soni   olinadi,
ikkilik   sanoq   sistemasi   uchun   2   soni   olinadi   ...)   darajalari
bo`yicha   yoyib   yozish   mumkin   va   bu   pozitsion   yoyilma   deb
yuritiladi.
33 Misol . 753
8   +447
8   =? 
Yechish:   Qo’shish   biz   bilgan   10   lik   sanoq   sistemasidagi   kabi
birliklar birliklarga, o’nlilar o’nliklarga va h.z tartibda    bo’ladi;
1)   7+3=10;   10   esa   8   lik   sanoq   sistemasida   12   ga   teng       2   ni
yozamiz 1 yodda ;
2)  4+5=9; 9  esa   8   liksanoq  sistemasida  11  ga  teng  yoddagi 1
bilan 12, 2 yoziladi 1 yodda
3)   7+4   =   11;     11   esa   8   lik   sanoq   sistemasida     13   ga   teng
yoddagi bir bilan 14 boshqa raqamlar qolmagani uchun 14 ni
yozamiz.
34 Ko'paytirish va bo'lish amallari ha huddi shu tartibda bo'ladi.
2.3. Sanoq sistemalarida amallar bajarish
O'nlik sanoq sistemadan ikkilik sanoq sistemaga o’tish
O'nlik   sanoq   sistemadan   ixtiyoriy   boshqa   n   lik   sanoq
sistemaga o’tish uchun:
1. o'nlik sanoq sistemadagi berilgan son n soniga burchakli
bo’lish usulida bo’linadi va qoldiq yozib olinadi.
2. keyingi   qadamda   hosil   bo’lgan   bo’linma   yana   n   soniga
bo’linadi,    . . .
3. bunda     bo’lish   bo’linma   n   sonidan   kichik   bo’lguniga
qadar davom ettiriladi.
4. hosil   bo’lgan   bo’linma   va   qoldiqlar   ohiridan   boshga
qarab (pastdan tepaga qarab) yozib olinadi.
bu son biz izlagan javob bo’ladi!
Masalan,
19  ¹⁰  sonini ikkilik sanoq sistemasiga o'tkazish
35 Darajaga yoyish usuli
2 sonining darajalari
daraj
a
(n) 0 1 2 3 4 5 6 7 8 9 1
0 1
1 1
2 1
3 1
4 1
5
qiym
ati   (2 1 2 4 8 1
6 3
2 6
4 1
2
8 2
5
6 5
1
2 1
0
2
4 2
0
4
8 4
0
9
6 8
1
9
2 1
6
3
8 3
2
7
6
36 ^n) 4 8
Shuningdek,   o'nlik   sanoq   sistemasida   soni   ikkilik   sanoq
sistemasiga o'tkazishni darajaga yoyish usuli ham mavjud. Bu
usulda   o'nlik   sanoq   sistemasida   berilgan   k   sonini   ikking
darajalari   yig'indisi   ko'rinishida   tasvirlanadi.   Darajaga   yoyib
borishda,   k   sonidan   katta   bo'lmaydigan   ikkining   eng   katta
darajasi olinadi.
O’n oltilik sanoq sistemasida amallar bajarish.
  16   lik   sanoq   sistemasidagi   A,   B,   C,   D,   E,   F   raqamlar   o’nlik
sanoq sistemasidagi 10, 11, 12, 13, 14, 15 sonlari kabidir. Bu
sonlarni   raqamlardan   farqlash   uchun   lotin   harflari   bilan
belgilashga  kelishilgan , chunki o’n  oltilik  sanoq sistemasidagi
10 soni o’nlik sanoq sistemasidagi 16 soniga teng.
37 Turli   asosli   sanoq   sistemasidagi   sonlarni   10   asosli   sanoq
sistemasiga o’tkazish.
Turli   asosli   sanoq   sistemasidagi   butun   sonlarni   o’nlik   sanoq
sistemasiga   o’tkazishda   quyida   keltirilgan   asos   darajalari
bo’yicha yoyish formulasidan foydalaniladi:
N=akpk+ak-1pk-1+...+a1p1+a0p0,
bu yerda:
ak, ak-1,.., a0   – berilgan sonni tashkil etuvchi raqamlar;
k   –   sondagi   raqamlar   sonidan   bitta   kam   miqdor   (chunki
birinchi razryad 0(nol) dan boshlangan).
1-misol.   Ikkilik sanoq sistemasidagi 101110 sonni o’nlik sanoq
sistemasiga o’tkazing.
Yechish:   Yuqoridagi formulaga muvofiq 
a0=0, a1=1, a2=1, a3=1, a4=0, a5=1 va q=2.
Demak,
1011102=1·25+0·24+1·23+1·22+1·21+0·20=32+0+8+4+2+0=4
610
Sanoq sistemalari:
2-0,1
3-0,1,2
4-0,1,2,3
….
8-0,1,2,3,4,5,6,7
9-0,1,2,3,4,5,6,7,8
10-0,1,2,3,4,5,6,7,8,9
38 11-0,1,2,3,4,5,6,7,8,9,A
….
16-0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
17-0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G
….
35-
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V
,W,X,Y
36-
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V
,W,X,Y,Z
Xulosa
Sanoq   sistemalari   hozirgi   kunda   juda   ko’p   ishlatilishini   bilib
oldik.   Masalan,   2   lik   sanoq   sistemasi   diskret   matematikada,
informatikada,   dasturlashda,   10   lik   sanoq   sistemasi,   hamma
joyda,   12-lik   sanoq   sistemasi   dujinalarni   hisoblashda,   16   lik
sanoq   sistemasi   dasturlashda   ,   informatikada,   60-lik   sanoq
sistemasi vaqtni o’lchash birliklarida, burchaklarni o’lchashda,
va   ko’pincha   koordinatalarda,   uzunlik   va   kengliklarni
o’lchashda   ishlatiladi.   Xulosa   qilib   aytganda   sanoq
sistemalarida   amallar   bajarish   kundalik   hayotimizda
ahamiyati juda katta ekan.
39 Foydalingan adabiyotlar
Karimov.I.A. O’zbekistonning o’z istiqlol va taraqqiyot yo’li.-
T.: “O’zbekiston”, 1992.-78-b.
Boltayev.B, Mahkamov.M, Azamatov.A, 
Rahmonqulova.S.Informatika 7.-T: “O’zbekiston milliy 
ensiklopediyasi”, 2009.
Boltayev.B, Mahkamov.M, Azamatov.A.Informatika. 8-sinf 
uchun masalalar to’plami va ularni yechish usullari.-Toshkent-
2005.
Haydarov.B.Q.Matematika 5.-T: “Yangiyo’l poligraf servis”, 
2011.-60-b.
Nazirov.Sh.A, Aripova.N.A, Qobilov.R.V, Beletskiy.A.Hisoblash
va raqamli texnika asoslari.-T: “Sharq”, 2007.
www.ziyonet.uz
eduportal.uz
referatlar.uz
uzedu.uz
refer.uz
OʻzME. Birinchi jild. Toshkent, 2000-yil
OʻzME. Birinchi jild. Toshkent, 2000-yil
40