Matematik amallar ( EKUB, EKUK, NBS ,TUBLIK,) kabi amallarni bajaradigan dastur”

O‘ZBEKISTON RESPUBLIKASI OLIY VA O‘RTA
MAXSUS  TA’LIM  VAZIRLIGI
URGANCH  DAVLAT UNIVERSITETI
“FIZIKA-MATEMATIKA”    FAKULTETI    “MATEMATIK
INJINRING”    KAFEDRASI “Algaritmik tillar va dasturlash”
FANIDAN 
KURS ISHI
Mavzu:  “ Matematik  amallar  ( EKUB, EKUK, NBS ,TUBLIK,)  kabi  amallarni
bajaradigan   dast ur”
51330300 -    “Matematik  injinring    (ishlab chiqarish  sohalari  bo‘yicha  )”
Bajardi   :            1-kurs     Safarboyeva  Barnoxon  Murodjon  qizi .
Ilmiy  rahbari :  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _      
Topshirgan  sanasi:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _  
Himoya  qilgan sanasi:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Baho: _ _ _ _ _
 
                                            
                                                                Urganch - 2023
  MUNDAREJA :
KIRISH
I-BOB . Dasturlash tillari tarixi……………………………………..……4
1.1.C#   tarixi……………………………………………………………..9
1.2. Visual studio 2019  muhitida  ishlash…….…………………..........17
II-BOB.Dasturning  asosiy  qismi.
2.1.Matematik  amallar(EKUB , EKUK , NBS VA  TULIK)…….........22
2.2.Dastur  nima?.. .……………………………..……………...………23
2.3.Interfeys………………………………...…………….…....….……25
XULOSA……………………………………………………………….32
FOYDALANILGAN   ADABIYOTLAR..…………...…..……………33
IIova…………………………………………………………………….34
2 KIRISH
       Prezidentning “2022–2023 yillarda axborot-kommunikatsiya texnologiyalari
sohasini   yangi   bosqichga   olib   chiqish   chora-tadbirlari   to‘g‘risida”gi   Qarori
imzolandi.
              O‘zbekiston   Respublikasi   Prezidentining  2022   yil   28   yanvardagi   “2022–2026
yillarga   mo‘ljallangan   Yangi   O‘zbekistonning   taraqqiyot   strategiyasi   to‘g‘risida”gi
PF–60-son   Farmoniga   muvofiq,   shuningdek,   axborot-kommunikatsiya
texnologiyalari   sohasini   yangi   bosqichga   olib   chiqish   bo‘yicha   ustuvor   vazifalarni
amalga   oshirish   maqsadida,   2022   yil   22   avgust   kuni   Prezidenting   “2022–2023
yillarda   axborot-kommunikatsiya   texnologiyalari   sohasini   yangi   bosqichga   olib
chiqish   chora-tadbirlari   to‘g‘risida”gi   Qarori   imzolandi.   Unga   asosan   axborot-
kommunikatsiya   texnologiyalari   sohasini   2022-2023   yillarda   yanada
rivojlantirishning   asosiy   vazifalari   etib   belgilandi:   2022   yil   yakuniga   qadar:   aholi
yashash   maskanlarining   keng   polosali   mobil   aloqa   tarmog‘i   bilan   qamrovini   98
foizga,   xalqaro   ahamiyatga   ega   avtomobil   yo‘llari   bo‘ylab   yuqori   tezlikdagi   mobil
internet   qamrovini   60   foizga   yetkazish;   40   ming   km   optik   tolali   aloqa   liniyalarini
qurish   hamda   qo‘shimcha   800   ming   xonadonni   yuqori   tezlikdagi   internetga   ulash
imkoniyatini yaratish orqali optik tolali aloqa qamrovini 80 foizga yetkazish; elektron
davlat   xizmatlari   ko‘rsatilishiga   xususiy   sektorni   jalb   qilish   orqali   foydalanuvchilar
sonini   2   barobar   oshirib,   4   millionga   yetkazish;   hududlarda   yoshlar   uchun   zarur
ko‘nikmalar va kafolatlangan buyurtmalar bilan ta’minlaydigan markazlarni yaratish
orqali IT-xizmatlar eksporti hajmini 100 mln dollarga yetkazish;   2023 yil yakuniga
qadar: raqamli  texnologiyalar  sohasida  masofaviy ta’lim shaklida kadrlar  tayyorlash
faoliyatini   rivojlantirish   orqali   yiliga   6,5   ming   nafardan   ortiq   yoshlarning   axborot
texnologiyalari   yo‘nalishida   ta’lim   olishini   yo‘lga   qo‘yish;   davlat   organlari,   shu
jumladan   mahalliy   hokimlik   organlarida   hamda   iqtisodiyotning   real   sektori
tarmoqlaridagi   korxonalarda   214   dan   ortiq   axborot   tizimi   va   dasturiy   mahsulotlarni
joriy   etish.     2022-2023   yillar   uchun:   axborot-kommunikatsiya   texnologiyalari
sohasini   yanada   takomillashtirish   bo‘yicha   “yo‘l   xaritasi;   davlat   boshqaruvini
raqamlashtirish   bo‘yicha   ustuvor   loyihalar   ro‘yxati;   iqtisodiyotning   real   sektori
tarmoqlarini   raqamlashtirish   bo‘yicha   ustuvor   loyihalar   ro‘yxati   muvofiq;   ayrim
davlat   va   xo‘jalik   boshqaruvi   organlarining   idoraviy   raqamli   transformatsiya
jarayonlarini kompleks jadallashtirish bo‘yicha “yo‘l xaritalari” ; hududlarni raqamli
transformatsiya   qilish   bo‘yicha   ustuvor   loyihalar   ro‘yxati   tasdiqlandi.   2022   yil   1
oktabrdan   boshlab   operator   va   provayderlarga   telekommunikatsiya   ob’ektlarida
texnik   vositalarni   o‘rnatish   uchun   loyiha-smeta   hujjatlari   ekspertizaga   topshirilgan
sanadan   boshlab   qurilish-montaj   ishlarini   amalga   oshirishga   ruxsat   beriladi,   bunda
loyiha-smeta   hujjatlari   15   kunlik   muddatda   ekspertizadan   o‘tkaziladi.   2022   yil   1
sentabrdan   boshlab   respublikaning   barcha   hududlarida   axborot-kommunikatsiya
texnologiyalarini qo‘llash orqali masofaviy xizmatlar eksporti markazlari bosqichma-
bosqich tashkil etiladi. 
3 I BOB. Dasturlash tillari tarixi
              Dasturlash   tillari   tarixi   —   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   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
tilidan   foydalanila   boshlandi.   Assembler   tili   mashina   kodini   inson   uchun   qulayroq
shaklda   ko‘rsatishga   imkon   berdi:   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 
4 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   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.	
ʼ
Birinchi yuqori darajadagi dasturlash tillari
        1950-yillarning   o‘rtalari   dasturlashning   jadal   rivojlanishi   bilan   tavsiflanadi.
Mashina   kodlarida   dasturlashning   ro‘li   pasaya   boshladi,   mashinalar   va   dasturchilar
o‘rtasida   vositachi   bo‘lgan   yangi   turdagi   dasturlash   tillari   paydo   bo‘la   boshladi.
Dasturlash tillarining ikkinchi va uchinchi avlodlari davri boshlandi. XX asrning 50-
yillari   o‘rtalariga   kelib,   birinchi   yuqori   darajadagi   dasturlash   tillari   (high-level
programming languages)ni yaratishga kirishildi. Ushbu tillar kompyuterning ma lum	
ʼ
bir   turiga   (mashinadan   mustaqil)   bog lanmagan   edi.   Ularning   har   biri   uchun   o‘z	
ʻ
kompilyatorlari   ishlab   chiqilgandi.   Kompilyatsiya   —   yuqori   darajadagi   manba   tilda
yozilgan   dasturni   mashina   kodiga   yaqin   quyi   darajali   tildagi   ekvivalent   dastur
(absolyut kod, obyekt moduli, ba zan assembler  tili)ga o‘girishni anglatadi. Birinchi	
ʼ
yuqori   darajadagi   dasturlash   tili   1942-1945-yillarda   Konrad   Suze   tomonidan
yaratilgan   en:Plankalkül   dasturlash   tili   edi[3].   Buyruqlarni   kompyuterga   yetkazish
uchun mo‘ljallangan birinchi ishlaydigan dasturlash tillari 1950-yillarning boshlarida
yozilgan.   1949-yilda   taklif   qilingan   Jon   Mauchlyning   en:Short   code   elektron
kompyuter uchun yaratilgan birinchi yuqori darajadagi tillardan biri edi[4]. Mashina
kodidan farqli o‘laroq, Short code matematik ifodalarni tushunarli shaklda ifodalaydi.
Biroq, dastur har safar ishga tushirilganda mashina kodiga tarjima qilinishi kerak edi,
bu jarayon ekvivalent mashina kodini ishlatishdan ancha sekinroq davom etardi. O‘z
kompilyatoriga   ega   bo‘lgan   birinchi   yuqori   darajali   til   1951-yilda   doktorlik
dissertatsiyasi uchun Korrado .Böhm tomonidan yaratilgan.
5 FORTRAN
            Tijoriy   maqsad   uchun   ishlab   chiqilgan   birinchi   til   FORTRAN   (FORmula
TRANslation) 
bo‘lib,   1956-yilda   (birinchi   yo‘riqnomasi   1956-yilda   paydo   bo‘lgan,   lekin   birinchi
bo‘lib   1954-yilda   ishlab   chiqarila   boshlangan)   IBMda   Jon   Bekus   boshchiligidagi
guruh tomonidan ishlab chiqilgan. U ilmiy-texnik hisob-kitoblar uchun mo‘ljallangan
edi.
1953-yil   oxirida   Jon   Bekus   IBM   704   kompyuterini   dasturlash   uchun   assemblerdan
samaraliroq   bo‘lgan   muqobil   dasturlash   tilini   ishlab   chiqishni   taklif   qildi.   1954-yil
o‘rtalarida   Fortran   tilining   spetsifikatsiyasi   loyihasi   tugallandi.   Biroq   ushbu
dasturlash tili avval boshida foydalanuvchilar tomonidan iliq kutib olinmadi, chunki
Fortran   assemblerga   qaraganda   past   unumdorlikka   ega   kod   yaratadigan   yuqori
darajadagi   dasturlash   tili   deya   qarala   boshladi.   Shu   tufayli   uni   optimallashtirish
zarurati   vujudga   keldi.   Keyinchalik   bu   til   olimlar   tomonidan   intensiv   hisoblash
dasturlarini yozish uchun keng qo‘llanilgan. Murakkab ma lumotlar turini kiritish uniʼ
ayniqsa   texnik  ilovalar  uchun  moslashtirdi.   1960-yilga  kelib,  Fortranning  IBM   709,
650,   1620,   7090   kompyuterlari   uchun   versiyalari   paydo   bo‘ldi.   Uning   katta
mashhurligi   raqobatchi   kompyuter   ishlab   chiqaruvchilarni   o‘z   kompyuterlari   uchun
Fortran   kompilyatorlarini   tuzishga   undadi.   Shunday   qilib,   1963-yilga   kelib   turli
platformalar uchun 40 dan ortiq kompilyatorlar tuzilgan edi. Shu bois Fortran birinchi
keng   tarqalgan   dasturlash   tili   hisoblanadi.   Fortran   SSSR da   G arbga   qaraganda	
ʼ ʻ
kechroq   paydo   bo‘ldi,   chunki   dastlab   Algol   SSSR da   yanada   istiqbolli   til	
ʼ
hisoblangan.   Sovet   fiziklarining   1960-yillarda   Fortran   dasturlari   yordamida   deyarli
barcha   hisob-kitoblar   amalga   oshirilgan   CERN dagi   hamkasblari   bilan   aloqasi	
ʼ
Fortranni amalga oshirishda muhim rol o‘ynadi.
Fortrandagi   birinchi   sovet   kompilyatori   1967-yilda   „Minsk-2“   mashinasi   uchun
yaratilgan,   ammo   u   unchalik   mashhur   bo‘lmagan.   Fortranning   keng   qo‘llanilishi
1968-yilda   BESM-6   (БЭСМ-6)   mashinasi   uchun   „ФОРТРАН-ДУБНА“
kompilyatori   yaratilgandan   keyin   boshlandi.   1972-yilda   paydo   bo‘lgan   ES   (ЕС)
EHMlarida   dastlab   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
ore di. Qo‘shma Shtatlarda Algol sovuqqonlik bilan qabul qilindi, u faqat akademik 
        6 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. 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 LISt Processing (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   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.	
ʼ
7 COBOL
          Kobol   1959-yilda   ishlab   chiqilgan   va   asosan   biznes   ilovalarini   ishlab   chiqish
uchun   dasturlar   yozish,   shuningdek,   iqtisodiy   sohada   ishlash   uchun   mo‘ljallangan
edi.   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 tillari
       Yuqorida aytib o‘tganimdek, dasturlash tili bu dasturning dastlabki kodi ichidagi
ko‘rsatmalarni tuzishda ishlatiladigan sintaktik va mantiqiy qoidalar to‘plami.
Dasturiy   ta'minotning   oxirgi   foydalanuvchisi,   ya'ni   uni   har   kuni   ishlab   chiqarish
uchun   ishlatadiganlar,   dasturiy   ta'minotni   o‘zi   ishlab   chiqish   uchun   ishlatiladigan
dasturlash   tili   haqida   tasavvurga   ega   bo‘lmasligi   mumkin,   ammo   ular   hamma   tillar
bir   xil   emasligini   bilishlari   kerak.   Ba'zilari   buyruq   satridan   ishlaydigan   dasturlarni
yaratish uchun ko‘proq mos keladi, boshqalari grafik interfeyslarni boshqarish uchun
yaxshiroq,   boshqalari   faqat   hisoblarni   qayta   ishlashga,   o‘yinlarni   loyihalashtirishga
va boshqalarga bag‘ishlangan. Sizni qiziqtirishi mumkin:  Ovozni qanday o‘zgartirish
mumkin.     Sizga   hozirgi   kunda   eng   ommabop   va   taniqli   dasturlash   tillarining
ro‘yxatini   taqdim   etaman   (ularning   soni   yuzlabni   hisobga   olgan   holda   juda
cheklangan).
Java   -   bu   dasturlash   tili   narsalarga   juda   mashhur   bo‘lib,   juda   ko‘p   foydalanishga
qarz   beradi.   Uning   kuchi   aniq   moslashuvchanligiga   bog‘liq:   Java   dasturlari   oddiy
dasturiy ta'minotni o‘rnatish orqali boshqarilishi mumkin Java Runtime Environment
o JRE  ), har qanday ish stoli  operatsion tizimidan. Sizni ajablantiradigan narsa ham
bo‘lishi mumkin: operatsion tizimning katta qismi Android bu Java-da yozilgan.
C  - yana bir taniqli til. C - 1972 yildan boshlangan dasturlash tili, u turi protsessual
va u deyarli har qanday stsenariyda qo‘llanilishi mumkin. Bu ob'ekt tili emas (garchi
uning 
davomchisi C ++ bo‘lsa ham) va bu Java-dan biroz qiyinlashtiradi, ammo bu jihat uni
ko‘p   sonli   amaliy   dasturlarga   moslashtiradi.   Shuni   bilingki,   Linux   yadrosi,
shuningdek, Android yadrosi to‘liq C formatida yozilgan.
C#   -   C   bilan   sintaktik   o‘xshashliklarga   qaramay,   u   Windows   GUI-ga,   ramkaga
asoslangan tegishli dastur va dasturlarga xosdir .NET. U Microsoft-ga tegishli bo‘lsa-
da, C# 2014 yilda ochiq manbaga aylandi.
Visual   Basic   -   bu   Microsoft-ga   tegishli   bo‘lgan,   grafik   interfeysga   ega   dasturiy
ta'minotni   yaratish   uchun   ishlatiladigan   va   bag‘ishlangan   yana   bir   dasturlash   tili
operatsion   tizimlar   Windows.   Bugungi   kunga   kelib   Visual   Basic   ramkaga
kiritilgan .NET.
      
8 Delphi   -   Paskal   tilining   davomchisi,   bu   dasturlash   tili   asosan   katta   hajmdagi
ma'lumotlarni boshqarishga bag‘ishlangan boshqaruv dasturlarini ishlab chiqish 
uchun qabul qilingan, ammo murakkab grafik interfeyslarni talab qilmaydi.
C   /   Swift   optikasi   -   bu   Apple   operatsion   tizimlari   uchun   dasturlar   yaratilgan
dasturlash tillari MacOS, iOS, watchos y TVOS.
R   -   bu   asosan   statistik   hisob-kitoblar   yoki   grafik   hisoblash   operatsiyalari   uchun
murakkab ma'lumotlarni qayta ishlash uchun ishlatiladigan dasturlash tili.
MATLAB   -   matematik   hisoblashga   bag‘ishlangan   yana   bir   dasturlash   tili,   bu
matritsaga asoslangan operatsiyalarni boshqarishda keng qo‘llaniladi.
Majlis     -   bu   haqiqiy   kompyuter   kodiga   yaqin   bo‘lgan   (protsessor   "tushunishi"
mumkin   bo‘lgan)   past   darajadagi   dasturlash   tili.   Odatda   qurilma   drayveri   va
haydovchi dizayni uchun ishlatiladi.
Keyingi   bo‘limda   men   sizga   C   tilida   oddiy   kalkulyatorni   qanday   yaratishni
o‘rgataman,   siz   undan   foydalanishingiz   mumkin   Buyruq   satri   yoki   Terminal
macOS/Linux.
1.1  C#  TARIXI
              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)   tomonidan   xalqaro   standart   sifatida   tasdiqlangan.   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 — Ci, C++, shuningdek Java tili bilan uzviy bog liqdir. C# tili 1972-yilda Nyu-	
ʻ
Djersi   shtatining   Myurrey-xill   shahrida   Bell   Laboratories   kompaniyasining   tizimli
dastur   tuzuvchisi   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
muvaffaqiyatli   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 
9 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 mukammallashtirishlarni 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.   Natijada   1980   yillardan   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.    OYDning vujudga kelishi
va   C++   tilining   yaratilishi.   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
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.
10 10
DASTURLASH
       Dasturlash — kompyuterlar va boshqa mikroprotsessorli elektron mashinalar uchun
dasturlar tuzish, sinash va o‘zgartirish jarayonidan iborat. Odatda dasturlash yuqori 
saviyali   dasturlash   tillari   (HTML,   CSS,   JS,   Bootstrap,   Java,   C++,   Python)   vositasida
amalga   oshiriladi.   Bu   dasturlash   tillarining   semantikasi   odam   tiliga   yaqinligi   tufayli
dastur   tuzish   jarayoni   ancha   oson   kechadi.   Dasturlash   1.   Elektron   mashinalarda
masalalarni  yechish   hamda  ularda  har   xil   aqliy  mehnat   turlarini   bajarish  nazariyasi   va
usullarini   ishlab   chiqish   bilan   shug ullanadigan   fan;   algoritmlar   nazariyasining   amaliyʻ
bo‘limi; insonning mashina bilan aloqa qilish vositasi. Asosiy vazifalaridan biri elektron
mashinalar   uchun   programma   (dastur)   tuzish   usullari,   ularni   tekshirish   va
takomillashtirishdan   iborat.   Yechilishi   lozim   bo‘lgan   masala   algoritmi   Dasturlashda
„mashina   tili“ga   o‘tkaziladi.   Dasturlash   —   bevosita   dasturlash   va   avtomatik
dasturlashga   bo‘linadi.   Bevosita   Dasturlashda   programmaning   umumiy   sxemasini
ishlab   chiqishdan   kodlash   va   mashinaga   kiritishgacha   bo‘lgan   barcha   ishni
programmachi   bajaradi.   Avtomatik   dasturlashda   esa   programmachi   faqat   programma
sxemasini tuzib, uni qisqartirilgan simvolik kurinishda yozadi, programma tuzish va uni
kodlash kabi  texnikaviy ishlarni esa mashinaning o‘zi maxsus dasturlash programmasi
yordamida   bajaradi.     Dasturlash   jarayoni,   odatda,   quyidagi   bos-qichlarga   bo‘linadi:
masalaning   qo‘yilishi;   masalaning   algoritmik   tavsifini   tuzish;   masalani   yuqori
darajadagi   programma   tilida   Dasturlash;   masalani   taxminiymashina   tilida   Dasturlash;
masalani  mashina  tilida  Dasturlash  tili  programmalar   tuzishning  asosiy  vositasidir.  Bu
tillar   konkret   mashina   komandalari   sistemasiga   bog liq   bo‘lmasligi   va   iboralar	
ʻ
strukturasi   jihatidan   umumiy   xususiyatga   ega   bo‘lishi   bilan   boshqa   tabiiy   tillarga
o‘xshab ketadi. Iboralar ikki turga — operatorlar hamda tavsiflarga bo‘linadi, ularning
bir-biri   bilan   bog liqligi   qavslar   bilan,   alohidaligi   nuqtali   vergul   bilan   ajratiladi.	
ʻ
Operator   tilning   amal   birligi   bo‘lib,   o‘z   navbatida,   o‘zgaruvchan   kattalikka   qiymat
beruvchi   operatorlar,   shartga   muvofiq   tegishli   hisoblash   tarmog ini   tanlovchi   (shartli)	
ʻ
operator   va   takroriy   hisobni   amalga   oshiruvchi   sikl   operatorlariga   bo‘linadi.   Tavsifda
o‘zgaruvchan kattalik va boshqa belgilar xususiyatlari yoziladi. Biror xususiy masalani
yechish   uchun   tuzilgan   programmani   simvolik   ravishda   funksional   belgilash   mumkin.
Bunday   belgilash   va   tavsif   birgalikda   kichik   programma   deb   yuritiladi.   Yangi
programmalar   tuzishda   kichik   programmalardan   tayyor   holda   foydalanish   mumkin. Juda   ko‘p   dasturlash   tillari   (algol-60,   q.   Algol),   muhandislik   va   ilmiy   masalalarni
yechish uchun fortran, iqtisodiy hisoblashlar uchun kobol, matematik modellar uchun si
mula,   tako-millashgan   algol-68,   PL/I   yaratildi.   Ularning   har   biri   uchun   shu   tillarda
ifodalangan masalalarga qarab mashina programmasini avtomatik tarzda qaytatuzuvchi
translyatorlar mavjud. Taxminiy mashina tili ikkilik sistemadan ko‘ra yanada qulayroq
simvollarda   ifodalangan   mashina   komandalari   terminlaridagi   programmalar   bo‘lib,
bunda   ko‘pincha,   yuqori   darajadagi   til   sifatida   blok   sxemalardan
foydalaniladi.Dasturlashning   programma   tuzilgandan   keyingi   yana   bir   asosiy   bosqichi
„tekshirish“   (otladka)   bo‘lib,   bunda   yo‘l   qo‘yilgan   xatolar   topiladi   va   tuzatiladi.
Programmalar kodlanadi va mashinaga maxsus 
11
qurilma   yordamida   kiritiladi.   Amaliyotda   Dasturlashning   yangi   va   tezkor   usullari   bor
(2004);   2)   matematik   dasturlash   —   amaliy   matematikaning   bir   bo‘limi;   umumiy
ma noda — biron-bir funksiya fo (x) ning ekstremumini (qarang Ekstremum) toppish ʼ
masalasi tushuniladi.
C # Ma’lumot turlari (tiplar)
                C#  tiplashgan   til   hisoblanadi.  Har   bir  obyektni  hosil   qilishda  uning  tipini   e`lon
qilish   zarur   (masalan   butun   son,   haqiqiy   son,   forma,   oyna,   tugma(knopka),   satr   va
boshqalar).   Shu   orqali   kompilyator   xatolardan   holi   bo`lishni,   ya`ni   o`zgaruvchi   qabul
qilishi   mumkin   bo`lgan   qiymatlarni   qabul   qilishini   ta`minlaydi.   Obyekt   tipi
kompilyatorga   obyekt   o`lchamini   (masalan   int   tipidagi   obyekt   xotiradan   4   bayt
egallaydi),   uning   xususiyatlarini   (masaslan   forma   ko`rinadigan   va   ko`rinmaydigan
bo`lishi mumkin) ko`rsatadi.    Xuddi C++ va Java tillari kabi C# da ham tiplar 2 guruhga
ajratiladi:   Oldindan   aniqlangan   tilning   ichki   tiplari   va   foydalanuvchi   (dasturchi)
tomonidan   aniqlanadigan   tiplar.     C#   yana   tiplarni   2   kategoriyaga   bo`ladi:   o‘lchovli
tiplar   va   ko‘rsatqichli   tiplar.   Ular   orasidagi   asosiy   farq   qiymatlarini   xotirada   saqlash
usuli.   O‘lchovli   tiplar   qiymatlarini   stekda   saqlanadi.   Ko‘rsatqichli   tiplar   obyektning
faqat manzilini stekda, o‘zini esa ko‘chada saqlaydi. Ko‘cha dasturning asosiy xotirasi
hisolanadi.   Ko‘chaga   murojaat   qilish   stekka   murojaat   qilishdan   ko‘ra   sekin.   Katta
obyektlarni   ko‘chada   saqlash   ko‘pgini   imkoniyatlarga   ega.   Bu   haqda   keyinchalik
to‘xtalamiz.     Stek   ma`lumotlar   strukturasi.   U   elementarni   “birinchi   kelgan,   oxirgi
ketadi”   prinsipi   bo`yicha   saqlaydi.   Stek   prosessor   tomonidan   qo‘llab   quvvatlanadigan
xotira sohasiga tegishli. Unda lokal o‘zgaruvchilar saqlanadi. Stekka murojaat umumiy
xotira   sohasiga   murojaatga   nisbatan   bir   necha   marotaba   tezroq.   Shuning   uchun
ma’lumotlarni   stekda   saqlash   dasturning   ishlash   tezligini   oshiradi.   C#   da   o`lchovli
tiplar(masalan   butun   sonlar)   qiymatini   stekda   saqlaydi   va   unga   murojaat   o‘zgaruvchi
nomi   bilan   amalga   oshiriladi.   Ko‘rsatqichli   tiplar   ko‘chada   joylahadi.   Ko‘cha
kompyuterning   tezkor   xotirasi.   Unga   murojaat   stekka   murojaatga   nisbatan   sekinroq.
Agar   obyekt   ko‘chada   joylashgan   bo`lsa,   o‘zgaruvchi   uning   faqat   manzilini   saqlaydi.
Bu   manzil   stekda   saqlanadi.   Manzil   orqali   dastur   obyektga   murojaat   qiladi.   Stekda
joylashgan har bir o‘zgaruvchi ko`rinish sohasidan  chiqqan zahoti “сборщик мусора” tomonidan   o`chiriladi.   Funksiya   tanasida   e’lon   qilingan   lokal   o‘zgaruvchilar   runksiya
ishini   tugatishi   bilan   o‘chiriladi.   Ko‘chada   joylashgan   obyektlar   ham   “сборщик
мусора” tomonidan o‘chiriladi. Bu obyektni ko‘rsatib turgan barcha ko‘rsatkichlar bilan
obyekt orasidagi aloqa uzilganda amalga oshiriladi.   Avvaldan mavjud ichki tiplar.   C#
tili   CLS(Common   Language   Specification)   ga   mos     keladigan   keng   tiplar   to‘plamini
taqdim   etadi.   Bu   tiplar   NET   platformasiga   mos   keladi   yani   C#   da   hosil   qilingan
obyektlar   NET   CLS   qo‘llab   quvvatlaydigan   har   qanday   dasturlash   tilida   foydalanish
mumkin   (masalan   VB.NET).   Har   bir   tip   aniq   o‘zining   o‘zgarmas   o‘lchamiga   ega.
Quyida C# tomonidan 
12
taqdim etilgan tiplar ro`yhati jadvalda keltirilgan:
_____________________________________________________________________
1.1.1-jadval   с  #dasturlash tili tiplari
Yuqoridagiga   qo‘shimcha   tarzda   c# da yana   enum, struct     tipidagi   obyektlar   ham
bor.
C#      O‘ZGARUVCHILAR
             O‘ZGARUVCHI   –dastur obyekti bo‘lib , xotiradagi    bir   nechta   yacheykalarni
egallaydi     va     berilganlarni   saqlash     uchun   xizmat   qiladi.     O‘zgaruvchi     nomga,
o‘lchamga     va   boshqa   atributlarga   –ko‘rinish   sohasi   ,     amal     qilish     vaqti   va     boshqa
xususiyatlarga     ega   bo‘ladi.   O‘zgaruvchilarni       ishlatish     uchun     ular     e’lon     qilinishi
kerak. E’lon   natijasi-da   o‘zgaruvchi    xotiradan   qandaydir   soha   zahiralanadi,   soha
o‘lchami       esa     o‘zgaruvchining     aniq     turiga     bog‘liq     boladi.       Shuni     aytib     o‘tish
kerakki,   bitta   tur    uchun     turli     platformalarda     turlicha   joy   ajratilishi      mumkin.
O‘zgaruvchi   e’loni   uning   turini   aniqlovchi   kalit   sozi   bilan   boshlanadi     va       s=a; (const  a)  belgisi  orqali   boshlang‘ich  qiymatberiladi (shart emas)  .  Bitta  kalit  so‘z
bilan   bir –biridan   ‘,’      belgisi  bilan  ajratiladi.  E’lonlar  ‘ ; ’  belgisi  bilan tugaydi.
O‘zgaruvchi  nomi  255   belgidan   oshmasligi   kerak. 
O‘ZGARUVCHILARGA     QIYMAT   O‘ZLASHTIRISH
     Yangi   o‘zgaruvchi  hosil  qilish  uchun   avval   uning   tipini   aniqlash  kerak  yoki
avvaldan     mavjud     tiplardan     foydalanih     kerak.       O‘zgaruvchini     ishlatishdan     oldin
unga   nom   berish   va   uning   tipini     korsatish   lozim. Uni e’lon   qilish   vaqtida   unga
qiymat  o‘zlashtirish,  yoki  dastur  bajarilishi davomida  qiymat o‘zlashtirish  mumkin .
Qiymat  o‘zlashtirish  uchun  “=”operatoridan  foydalaniladi:
13
namespace misol 1
{
internal class Program
    {
        static void Main(string[] args)
           {
        //  o‘zgaruvchi  e’lon  qilish  
  Int  a;
           //  o‘zgaruvchiga  qiymat  berish
          a=5;
           //  ekranga  chiqarish 
          Console.WriteLine(a);
          //  dasturni  tugatish
         Console. ReadKey();
         }
    }
}
TIPLAR  HAQIDA QISQACHA  MALUMOT
Int
      int tipi 32 bitlik butun toifadur. Butun sonlarni qabul qilish chegarasi -2,147,483,648
dan   2,147,483,647   gacha.   Int32   strukturasida   joylashgan.   Bu   tipga   yaqin   tip   uint   tipi.
UInt32 strukturasiga tegishli bolib 0 dan 4,294,967,295 gacha sonlarni oz ichiga oladi.
int i = -2147483648;
int j = 2147483647;
int k = 4294967295; //Compile-time error: Cannot implicitly convert type 'uint' to 'int'.
uint ui1 = 4294967295;
uint ui2 =-1; //Compile-time error: Constant value '-1' cannot be converted to a 'uint'
Console.WriteLine(Int32.MaxValue);//2147483647
Console.WriteLine(Int32.MinValue);//-2147483648
Console.WriteLine(UInt32.MaxValue);//4294967295
Console.WriteLine(UInt32.MinValue);//0 int   toifasi   o‘n   oltilik   va   ikkilik   sanoq   sistemalariga   nisbatan   ham   foydalaniladi.   O‘n
oltilik sanoq sistemalari 0x yoki 0X qo‘shimchalari bilan, ikkilikdagi sonlar esa, 0b yoki
0B bilan boshlanadi.
int hex = 0x2F;
int binary = 0b_0010_1111;
Console.WriteLine(hex);
Console.WriteLine(binary);
14
Long
      long tipi o‘zida -9,223,372,036,854,775,808 dan 9,223,372,036,854,775,807 gacha 
sonlarni saqlaydi. Xotiradan egallaydigan joyi 64 bitni tashkil etadi. Int64 strukturasida
joylashgan.   ulong   tipi   ham   long   tipi   bilan   o‘xshash.   U   o‘zida   0   dan
18,446,744,073,709,551,615 gacha sonlarni qabul qiladi. Int64 strukturasida joylashgan.
long l1 = -9223372036854775808;
long l2 = 9223372036854775807;
ulong ul1 = 18223372036854775808ul;
ulong ul2 = 18223372036854775808UL;
Console.WriteLine(Int64.MaxValue);//9223372036854775807
Console.WriteLine(Int64.MinValue);//-9223372036854775808
Console.WriteLine(UInt64.MaxValue);//18446744073709551615
Console.WriteLine(UInt64.MinValue);//0
Haqiqiy tiplar
         Haqiqiy toifalar o‘zida musbat va manfiy o‘nli kasrlarni aks ettiradi. C# da haqiqiy
toifalar asosan 3 turli: float, double va decimal 
Float
         float  tipi  xotiradan 4 baytni  egallaydi. Single strukturasiga  tegishli.  float  toifadagi
tipni hosil qilish uchun f yoki F suffiksidan foydalaniladi.
float f1 = 123456.5F;
float f2 = 1.123456f;
Console.WriteLine(f1);//123456.5
Console.WriteLine(f2);//1.123456
Double
            double   tipi   float   tipiga   qaraganda   imkoniyati   kattaroq,   lekin   xotiradan   8   bayt
egallaydi.   Double  strukturasida   joylashgan.   double   toifadagi   tipni   hosil   qilish   uchun  d
yoki D suffiksidan foydalaniladi.
double d1 = 12345678912345.5d;
double d2 = 1.123456789123456D;
Console.WriteLine(d1);//12345678912345.5
Console.WriteLine(d2);//1.123456789123456 Decimal
              decimal   tipi   xotiradan   boshqa   tiplarga   qaraganda   balandroq   joy   egallaydi.
Egallanadigan   joy   16   bayt.   Bu   tip   asosan   moliya   sohalaridagi   dasturlarda   ko‘proq
foydalaniladi.   decimal   toifadagi   tipni   hosil   qilish   uchun   d   yoki   D   suffiksidan
foydalaniladi.
decimal d1 = 123456789123456789123456789.5m;
decima   Console.WriteLine(d1);
 d2 = 1.1234567891345679123456789123m;
Console.WriteLine(d2);
15
TAKRORLASH  OPERATORI.
                  C#   tilida   yana     bir     sikl     ifodasi             while       ifodasidir   .     Quyida     ushbu
operatorning  umumiy  shakli  keltirilgan :
While(shart )   operator;
         Bu       yerda   operator   bitta   operator   yoki   operator     operatorlar   bloki   bo‘lib   ,
shart       siklni       boshqarish     uchun       maxsus       shartni     bildiradi     va     har     qanday
mantiqiy       ifoda         bo‘lishi     mumkin.       Bu     siklda   ,       shart       rost       bolsa,   operator
bajariladi.  Shart  yolg‘on  bo‘lishi  bilan   dasturni   boshqarish  sikldan   keyin  darhol
kod qatoriga  o‘tkaziladi .
      For         siklida     bol‘gani     kabi   ,       while     sikli     ham     sikl     boshida       ko‘rsatilgan
shartli   ifodani  tekshiradi.  Bu  shuni  anglatadiki ,   siklning   tanasidagi  kod  umuman
bajarilmasligi     mumkin     ,         shuningdek,       siklning       o‘zidan       oldin           alohida
tekshirishni   amalga  oshirish   zaruriyatini   yo‘q  qiladi.   C#     tilidagi    uchinchi   sikl
oparatori   do –    while    operatoridir.   Shart   sikl  boshida  tekshirilgan    for    va   while
operatorlaridan  farqli   o‘laroq ,    do –  while     operatoida  siklning   bajarilish  sharti
eng   oxirida   tekshiriladi   .   Bu   bu   shuni   anglatadiki,    do – while    sikli   har   doim
kamida     bir     marta     bajariladi.       Quyida     do  –   while     sikl     operatorining       umumiy
shakli    keltirilgan.
do{ 
operatori;
}  while  (shart);
   Agar faqat   bitta    operator   bo‘lsa ,   bu  belgida  sistemali  qavslar   ixtiyoriy, biroq,
ular   ko‘pincha    do – while   sikli    shartli  ifoda  yolg‘on    bo‘lguncha   ishlaydi. C#
dagi   goto   operatori  shartsiz  o‘tish  operatoridir.Goto  operatori  nishoni  talab  qiladi
ya’ni  ikki  nuqta  bilan  yozilgan  C#   identifikatori.  Nishon  goto   iborasi   bilan  
bir   xil   usulda   va   bir   xil doirada     bolishi kerak.     Quyidagi   misol   dasturida   1dan
100   gacha    raqamlarni  qoshish  sikli  goto  operatori      va    mos    keladigan    nishon
yordamida  tashkil  etgan.
int  x=1;
nishon1:
x++; if(x<100) goto  nishon1;
Bundan       tashqari  ,     goto     operatori       switch     operatoridagi       case     yoki     default
bo‘limiga  shartsiz  o‘tish uchun   ishlatilishi   mumkin .   case   yoki   default   bo‘limlar
switch       operatorida     teng     ro‘lini       bajaradi     .   Shuning     uchun     ular     goto
operatorining     manzillari     bo‘lib     xizmat     qilishi     mumkun   .     Biroq     goto     operatori
switch    operatori    ichida   bajarilishi    kerak.   Bu      shuni    anglatadiki  ,     uni     switch
operatoriga  shartsiz  o‘tish   uchun    tashqi  vosita   sifatida  ishlatib  bo‘lmaydi.
16
For  sikl  operatori.
       For  sikl  o‘ziga   tegishli  instruksiyaning   bir  necha   marta  takroran  bajarilishi
taminlaydi. Bitta  instruksiya  uchun   uning    yozilishi  quyidagicha:
For (e’lon  qilish;shart;iterasiya)  instruksiya;   
Agar   for   sikli   dastur   bloki   (bir   nechta   instruksiya   ketma-ketligi)ni   takroran   bajarishi
kerak bo‘lsa, u holda for siklining ko‘rinishi quyidagicha bo‘ladi:
for (e`lon qilish; shart; iterasiya)
{
instruksiyalar ketma-ketligi
}
E’lon   qilish   qismi   qiymat   o‘zlashtirishdan   iborat.   Bu   qismda   siklni   boshqaruvchi
o‘zgaruvchining   boshlang’ich   qiymati   beriladi.   Bu   o‘zgaruvchi   hisoblagich   vazifasini
bajaradi,   siklni   boshqaradi.   Shart   qismi   bool   tipiga   tegishli   bo‘lib,   unda   siklni
boshqaruvchi  o‘zgaruvchi  qiymati tekshiriladi. Shartning natijasi  siklning yana bir bor
bajarilishi yoki bajarilmasligini bildiradi. iteratsiya ifoda bo‘lib, u har bir sikldan so‘ng
siklni   boshqaruvchi   o‘zgaruvchining   qiymati   qanday   o ‘ zgarishini   ko‘rsatadi.   for   sikli
toki   shart   “true”   qiymatga   ega   ekan   bajarilaveradi.   Shart   “false”   qiymatga   ega
bo‘lgandan keyin for siklidan keyingi instruksiya bajariladi.
Shart hamma vaqt  for sikli bajarilishidan oldin tekshiriladi. Ya’ni agar shartni birinchi
tekshirishdanoq false qiymat qabul qilsa, sikl umuman bajarilmaydi. 
Misol: 
for (int x = 10; x < 5; x++)
Console.WriteLine(x); // bu instruksiya hech qachon bajarilmaydi.
for sikli odatda takrorlanishlar soni aniq bo‘lgan holda ishlatiladi.
for siklini  boshqarish uchun bir nechta o‘zgaruvchidan foydalanish mumkin. Bu holda
e’lon qilish qismida har bir o‘zgaruvchiga qiymat berish vergul bilan ajratiladi.
1.2 Visual studio  2022 muhitida  ishlash
           C# bilan boshlashning eng oson yoli IDE dan foydalanishdir.
Kodni   tahrirlash   va   kompilyatsiya   qilish   uchun   IDE   (Integrated   Development
Environment) qo‘llaniladi.
https://visualstudio.microsoft.com/vs/community/   saytidan   bepul   yuklab   olish   mumkin
bo‘lgan Visual Studio hamjamiyatidan foydalanamiz . C#   tilida   yozilgan   ilovalar   .NET   Framework   dan   foydalanadi,   shuning   uchun   dastur
Microsoft   tomonidan   yaratilganligi   uchun   Visual   Studio   dan   foydalanish   mantiqan
tog‘ri keladi.  
C# o‘rnatish
                  Visual   Studio   Installer   yuklab   olingandan   va   o‘rnatilgandan   so‘ng,   .NET   ish
loyihasini tanlang va Modify/Install (O‘zgartirish/O‘rnatish) tugmasini bosing:
17
1.3.1-rasm visual  studio oynasi 
O ‘ rnatish   tugallangach,   Visual   Studio   dasturini   ishga   tushirish   uchun   "   Launch   (Ishga
tushirish)" tugmasini bosing.
Boshlash oynasida Create a new project (Yangi loyiha ochish) ni tanlang 
1.3.2-rasm visual  studio oynasi
Keyin   "Install   more   tools   and   features   (Qo‘shimcha   vositalar   va   xususiyatlarni
o‘rnatish)" tugmasini bosing: 1.3.3-rasm visual  studio oynasi
18
Ro‘yxatdan "Console App (.NET Core)" ni tanlang va "Next" tugmasini bosing:
1.3.4-rasm visual  studio oynasi
Loyihangiz nomini kiriting va Create (Yaratish) tugmasini bosing:
1.3.5-rasm visual  studio oynasi
Visual Studio sizning loyihangiz uchun avtomatik ravishda ba'zi kodlarni yaratadi: 1.3.6-rasm visual  studio oynasi
19
Kod shunday korinishi kerak!
          Yuqoridagi   kodni   tushunmasangiz,   tashvishlanmang   -   keyingi   dasrlarda   bu   haqda
batafsil batavsil tushuntiriladi. Hozircha kodni qanday ishga tushirishga e’tibor 
qarating.   Klaviaturangizdagi   <   F5   >   yoki   <   Ctrl+F5   >   tugmasini   bosib   dasturni   ishga
tushiring   (yoki   "Debug"   ->”Start   Debungging”   tugmasini   bosing   ).   Bu   sizning
kodingizni kompilyatsiya qiladi va bajaradi. Natijada shunga o‘xshash narsa ko‘rinadi:
Hello World!
 C:\Users\Username\netcoreapp3.0\HelloWorld.exe (process 
13784) exited with code 0.
 Press any key to close this window . . .
1.3.7-rasm  visual  studio oynasi
Tabriklaymiz ! Siz birinchi C# dasturingizni yozdingiz va bajardingiz.
C# Shart operatorlari. if , if-else
            Shart   operatori   boshqarishni   qaysi   tarmoqqa   uzatishni   ta’minlaydi.   Shart
operatorlaridan   biri   bu   if   shart   operatoridir.   if   shart   operatorining   3   xil   ko‘rininshi
bo‘lib, eng soda ko‘rinishi quyidagicha:
if(shart) operatorlar;
Shart   operatorining   natijasi   bool   tipiga   tegishli   bo‘lib,   true(rost)   yoki   false(yolg‘on)
bo‘lishi mumkin. C# da quyidagi munosabat a <= - kichik yoki teng;
== - tenglik;                                     >= - katta yoki teng;
< - kichik;                                           <= - kichik yoki teng;
> - katta;                                             != - teng emas.
if shart operatorining ikkinchi bir ko‘rinishi if-else bo‘lib, u quyidagicha yoziladi:
if(shart) operatorlar1;
else operatorlar2;
Agar shart rost bo‘lsa, operator1 bajariladi, agar yolg‘on bolsa, operator2 bajariladi. 
Agarda   operator1   yoki   operator2   dan   so‘ng   bajarilishi   lozim   bo‘lgan   amallar   soni   1
tadan   ortiq   bo‘lsa   ular   figurali   {}   qavslar   orasida   yozilishi   lozim.   Masalan:   a   va   b
sonlarni kattasini a ga kichigini b ga yozish dasturi int a, b, c;
a = 10;  
b=20;
if (a <b) { c = a; a = b; b = c; } 
Console.WriteLine(a+" , "+b);
Console.ReadKey();
//natija
20 , 10
Bir o‘zgaruvchi qiymatini bir necha shartlar orqali tekshirish uchun ichma-ich bir necha
shart operatorlaridan foydalanish mumkin:
int temp = 25;
      if (temp > 21)
{                                                                     20
        if (temp < 26)
  {
  Console.WriteLine("Temperatura meyorda");
          if (temp == 24)
          {
            Console.WriteLine("ishlash sharoiti optimal");
     }
          else
          {
                   Console .WriteLine ("ishlash sharoiti optimal emas\n" + "optimal  temperatura
24"); 
          }
        }
      }
      Console.ReadKey();
Kop   shartlilik   qo‘llanilishi.   Bunda   bir   necha   shartni   bir   vaqtda   tekshirish   zarurati
hisobga olinadi. C# tilida buning uchun maxsus qo‘shish (shartni) kalit so‘zlari mavjud :
&& - va, | | - yoki, ! – inkor (!= bolsa, teng emas ma’nosida). Masalan:
   int n1 = 5;
      int n2 = 0;
      if ( (n1 == 5) && (n2 == 5))
    {  Console.WriteLine("Salom");}
      else
     { Console.WriteLine("Yoshlar");}
if ((n1 == 5) || (n2 == 5))
     { Console.WriteLine("Buxoro");}
      else
     { Console.WriteLine("Vaqt");}
      Console.ReadKey();
     Bu misolda har bir if operatori ikkita shartni tekshirib boradi. Agar   tekshirilayotgan   shart   nisbatan   sodda   bolsa,   shart   amalini   “?:   ”   ko‘rinishini
ishlatish mumkin. Bu operator quyidagi ko‘rinishga ega:
<shart ifoda>? <ifoda1>:<ifoda2>;
if   shart   operatoriga   o‘xshash   holda   bus   hart   amali   quyidagicha   ishlaydi:   agar   <shart
ifoda>   rost(true)   bo‘lsa   <ifoda1>   bajariladi,   aks   holda   <ifoda2>.   Odatda   ifodalar
qiymatlari birorta o‘zgaruvchiga o‘zlashtiriladi.
Misol: 2 ta sondan kattasini tuzuvchi programma tuzilsin.
int a,b;
a=int.Parse(Console.ReadLine());
b=int.Parse(Console.ReadLine());
int max = (a>b) ? a : b;
Console.WriteLine(max);
Console.ReadKey();   
21
II-BOB. Dasturning asosiy qismi
2.1 Matematik amallar
EKUB
                      Eng   katta   umumiy   bo‘luvchi   (EKUB)   –   berilgan   sonlardan   har   biri   unga
bo‘linadigan eng katta son.
EKUBni  topish uchun sonlardan har  biri  tub kopaytuvchilarga ajratiladi  va eng kichik
korsatkichli hamma umumiy ko‘paytuvchilar yozib chiqiladi.
1092, 504, 660 sonlar uchun: EKUB = 22 × 3 = 12 
Agar   ikki   son   birdan   tashqari   umumiy   bo‘luvchiga   ega   bolmasa,   ular   o‘zaro   tub
deyiladi.
Masalan: 15 va 13; 6 va 25; 18 va 35 va b.
Bir   nechta   sonlarning   umumiy   karralisi   deb   ularning   har   biriga   karrali   bolib   xizmat
qiluvchi   songa   aytiladi.   Masalan,   60     15,20,30   sonlarining   karralisi   va   17,   40,   90
sonlarining karralisi hisoblanmaydi.
15,   6,   10   sonlari   180   umumiy   karraliga   ega;     90   soni   ham     –   bu   sonlarning   umumiy
karralisi.   Har  doim  hamma  umumiy  karralilar  orasida  eng   kichigi   boladi,   ushbu  holda
bu –  30 soni.
EKUK
                   Eng kichik umumiy karrali (EKUK) – berilgan sonlardan har biriga karrali eng
kichik son.
EKUKni topish uchun barcha uchraydigan eng katta ko‘rsatkichli ko‘paytuvchilar yozib
chiqiladi.
1092, 504, 660 sonlar uchun: EKUK = 23 × 32 × 5 × 7 × 11 × 13 = 360360.
1-masala. 360, 70 va 140 sonlari uchun  EKUK  va EKUBni toping.
Yechish:
Javob: EKUK=2520; EKUB=10.
2-masala. 270 va 300 sonlari EKUKning 6 va 4 sonlari EKUK nisbatini toping.
Yechish:
2700:12=225
Javob: 225. NBS(natural  boluvchilar soni)
     Berilgan A sonning natural boluvchilari soni (NBS) quyidagicha topiladi. A soni tub
ko‘paytuvchilarga ajratiladi: A=am ⋅ bn ⋅ ck.
NBS=(m+1) ⋅ (n+1) ⋅ (k+1) ga teng. 
M. 36 sonining NBS ni topamiz. 36=2^2 ⋅ 3^2. NBS(36)=(2+1) ⋅ (2+1)=3 ⋅ 3=9.
24 sonining NBS ni topamiz. 24=2^3 ⋅ 3^1. NBS(24)=(3+1) ⋅ (1+1)=4 ⋅ 2=8.
Yani   son   1dan   boshlab   o‘zigacha   bo‘lgan   sonlardan   nechtasiga   bo‘linsa   ularning
umumiy soni NBS(Natural Bo‘luvchilar Soni) deyiladi.
TUBLIK
    Faqat o‘ziga va birga bo‘linadigan natural sonlarga tub sonlar deyiladi. Masalan: 2, 3,
5, 7, 11, 13, 17, 19, 23, ...
Ikkitadan ortiq bo‘luvchisi bolgan natural sonlarga murakkab sonlar deyiladi. Masalan: 
22
4, 9, 21, 36, ... 
1 soni tub ham, murakkab ham emas.
Har qanday murakkab sonni tub sonlar ko‘paytmasi ko‘rinishida ifodalash mumkin. 
Buning uchun murakkab sonni tub sonlarga ketma-ket bolinadi. 
M. 
36=2^2 ⋅ 3^2
24=2^3 ⋅ 3^1
Berilgan   N   sonni   tub   ekanini   aniqlash   uchun   uni   √N   sonigacha   bo‘lgan   tub   sonlarga
bo‘lib ko‘rish yetarli. M. 751 sonini  √751≈27 gacha bo‘lgan tub sonlar: 2, 3, 5, 7, 11,
13,   17,   19,   23   sonlariga   bo‘lib   ko‘riladi.   Bu   sonlarning   hech   qaysisiga   bo‘linmaydi.
Demak, 751 tub son ekan.
2.2  Dastur nima?
            Muammoning   mohiyatiga   kirishdan   oldin,   sizga   ushbu   qo‘llanmada   kelgusi
qadamlarni   yaxshiroq   tushunishga   yordam   beradigan   nazariy   ma’lumotlarni
bermoqchiman:
Amalda,   a   dastur   Itga   qodir   ma’lumotlarni   qayta   ishlash   uchun   y     operatsiyalar.
Masalan, matnlarni qayta ishlashga (masalan, so‘z), hisob-kitoblarni amalga oshirishga
(masalan,   kalkulyator   Windows),   ko‘rib   chiqishga   ruxsat   berish   uchun   Internet   (Kabi
brauzerlar ) va boshqalar.
Dastur, unga mo ‘ ljallangan vazifaga qarab, ko‘proq yoki kamroq ató bo‘lishi mumkin:
sizga   misol   berish   uchun,   hatto   tizimlari   operativFoydalanuvchiga   maxsus   dasturiy
ta’minot orqali shaxsiy kompyuterning “jismoniy qismi” bilan o‘zaro aloqada bo‘lishiga
imkon berish uchun mo‘ljallangan, ular dasturlardir.
Dasturning   ishlashi   deyarli   har   doim   aniq   mexanizmga   asoslangan   bo‘lib,   u   deyiladi
algoritm   “kiruvchi”   ma’lumotlar   yoki   ma’lumotlar   seriyasini   “chiquvchi”   ma’lumotlar
yoki ma’lumotlar seriyasiga o‘zgartiradigan operatsiya.
Dasturlash   jarayonida   yuqorida   ko‘rsatilgan   amallar   quyidagicha   ifodalanadi
ko‘rsatmalar   o   atóa,   a   orqali   o‘qitilgan   dasturlash   tili.   Dastur   uchun   ko‘rsatmalarning
to‘liq   to‘plami   aniqlanadi   ijro   etish   oqimiVa   bu   siz   erishmoqchi   bo‘lgan   ma’lumotni
olish uchun kirish ma’lumotlarini qayta ishlash uchun javobgardir. Dasturni yaratish bosqichlari .
Endi   siz   dasturning   aniq   ta’rifiga   ega   bo‘ldingiz   va   vaqt   o‘tishi   bilan   uning   qanday
rivojlanayotganini  sizga  ma’lum   qilish   vaqti   keldi.  Bu  sizga  g‘alati   tuyulishi   mumkin,
lekin   hatto   quyidagi   dastur   ham   bor   tsikl   hayot,   kamida   to‘rt   bosqichda   tuzilgan:
dizayni,   amalga   oshirish,   sinovlari,   ozod   qilish   y   yangilash.   Quyida   siz   ushbu   hayot
aylanishining har bir bosqichining tafsilotlarini topishingiz mumkin. 
Loyihalashtirish
               El dizayni Dastur – bu hayotiy tsiklning birinchi bosqichi, eng muhimi, shu erda
dasturning maqsadlari, uni boshqarish kerak ma’lumotlar turi va boshqarish usullar
Agar siz dasturni xuddi go‘yo uy kabi tasavvur qilishingiz kerak bo‘lsa, unda loyihalash
bosqichi – bu me’mor (yoki me’morlar jamoasi) loyihani qog‘ozga chizib, uning shakli,
tuzilishi   va   joylashuvini   belgilaydi.   Loyihalash   bosqichi   odatda   ishlab   chiquvchilar
guruhi muhandislari tomonidan boshqariladi: bir nechta misollar keltirish uchun, ishlov 
23
beriladigan ma’lumotlarning turini aniqlash uchun javobgar bo‘lganlar bor, ular 
yordamida   ma’lumotlarni   o‘zi   boshqaradigan   algoritmni   ishlab   chiqishga   mas’ul
bo‘lganlar,   tanqidiy   sharoitlarni   o‘rganish   bilan   shug‘ullanadiganlar   (ya’ni,   tadbirlar
bunday   bo‘lmasligi   kerak,   lekin   bu   sodir   bo‘lishi   mumkin)   atóa   uchun   bunday   emas,
shuningdek, dasturning ideal grafik tomonini loyihalashda ishtirok etadiganlar.
Hozirgi   vaqtda   atóa   mavhum   bo‘lgan   ushbu   barcha   “g‘oyalar”   odatda   xabar   qilinadi,
diagrammalar o grafika An’anaviy standartlar asosida ishlab chiqilgan (masalan, UML
tilidan foydalanish) va bosh muhandis tomonidan tasdiqlanishi kerak.
Ushbu   bosqichda   dasturiy   ta’minotni   ishlab   chiqishda   foydalaniladigan   dasturlash   tili
ham   tanlanadi.   Tasdiqlash   qabul   qilingandan   so‘ng,   barcha   materiallar   uzatiladi
dasturchilar, qaysi bilan shug‘ullanadi amalga oshirish.
Sizni   qiziqtirishi   mumkin:     Izanagi’s   Charge   miltig‘ini   Destiny   2-da   qanday   olish
mumkin.
Dastur
              Bosqichi   amalga   oshirish   Bu   haqiqiy   dastur   hayotga   kiradigan   dastur.   Ushbu
bosqichda   bir   yoki   bir   nechta   dasturchilar   qatnashadi   (ikkinchi   holda,   guruh   bosh
dasturchi   tomonidan   muvofiqlashtiriladi),   mas’ul   yozish   uchun   dasturni   bajarish
oqimini tashkil etadigan bir yoki bir nechta ko‘rsatmalar to‘plamida.
Ko‘rsatmalar bir yoki bir nechta oddiy fayllar atóa yoziladi, agar kerak bo‘lsa a maxsus
muharriri yoki a integratsiyalashgan rivojlanish muhiti (jarangli BU YERGA ). Ushbu
elementlar   dasturchini   ishni   soddalashtirish   uchun   foydali   vositalar   bilan   ta’minlaydi,
masalan, ko‘rsatmalarni avtomatik ravishda bajarish, o‘zgaruvchilarni taklif qilish yoki
shuningdek,   kombinatsiyalar   bilan   olinadigan   kod   qismlarini   aniqlash   qobiliyati.
Klaviatura aniq.
Dastlabki kod dasturlash tilida yozilgan ko‘rsatmalarni o‘z ichiga olgan fayllar to‘plami
sifatida   tavsiflanadi.   Amalga   oshirish   davrida   manba   kodining   “orta”   qismlariga   oting
tuzilgan Mashina tiliga “tarjima qilingan” va bajarilgan: shu tarzda dasturchi oz ishining
sifatini tekshirishi va dasturning to‘g‘ri ishlashini tekshirishi mumkin.
To‘liq   manba   kodini   yozish   tugagandan   so‘ng,   orqali   o‘tish   uchun   kompilyatsiya
qilinadi.Operatsion   tizim   Shunday   qilib,   haqiqiy   dasturga   aylanadi   (masalan, kompyuteringizda   ishlatishga   odatlanganingiz   kabi):   amalga   oshirish   bosqichi   tugadi,
natijada   qo‘shimcha   sinov   bosqichi   o‘tishi   yoki   tog‘ridan-tog‘ri   jamoatchilikka   e’lon
qilinishi mumkin.
Sinovlar
              Bosqichi   sinovlariMuayyan   jihatlarga   ko‘ra,   bu   dasturning   hayot   tsiklining   eng
“qiziqarli” bosqichi deb hisoblanishi mumkin
Ushbu   bosqichda   tegishli   jamoaning   raqamlari   (deb   atalmish   tekshiruvchi   )   xatolarni
aniqlash   va   dasturchilarga   ularni   tuzatishga   imkon   berish   uchun   dastur   ichidagi
nosozliklar yoki boshqarilmagan kritik sharoitlarni ixtiyoriy ravishda keltirib chiqarish
vazifasi   yuklatilgan.   Dastur   tomonidan   o‘tishi   mumkin   bo‘lgan   testlarning   toifalari
haqiqatan   ham   juda   ko‘p   va   turli   jihatlarni   sinab   ko‘rishlari   mumkin:   garchi   g‘alati
tuyulsa ham, sinov bosqichi dasturning sifati uchun o‘ta muhim, chunki unda biron bir
ató mavjud.  Oldingi   bosqichlar.   Agar   siz   ko‘proq   ma’lumotga    ega   bo‘lishni 
24
istasangiz, men ushbu mavzuni batafsil o‘z ichiga olgan Vikipediya yozuvini havola 
Etaman.   Ba’zi   hollarda,   dasturiy   ta’minot   kompaniyasi   sinov   uchun   to‘liq   bo‘lmagan
versiyasini chiqarib, dastur “yordami” uchun mo‘ljallangan oxirgi foydalanuvchilardan
so‘rashga   qaror   qilishi   mumkin.   Biz   gaplashamiz   alfa   versiyasi   o   beta   dasturni   sinab
ko‘rish   va   ishlab   chiqaruvchiga   topilgan   har   qanday   muammolar   haqida   xabar   berish
so‘raladigan dastur. Jargonda bu protsedura chaqiriladi fikr-mulohaza.
Sinov bosqichining oxirida ikkita narsa yuz berishi mumkin: agar dasturda muammolar
mavjud   bo‘lsa,   ular   rivojlanish   guruhiga   xabar   beriladi,   bu   esa   ularni   manba   kodini
o‘zgartirish   va   yangilash   orqali   hal   qilish   uchun   javobgardir.   Ammo,   agar   dasturda
muammolar bo‘lmasa, u uchun Okni oladi ozod qilish.
Chiqarish / Yangilash
           Bosqichi ozod qilish Agar dastur litsenziyani  sotib olgandan keyin ishlashi uchun
mo‘ljallangan   bo‘lsa,   dastur   ommaga   bepul   tarqatiladigan   yoki   sotib   olish   mumkin
bo‘lgan   dasturdir.   Bozor   ehtiyojlari   uchun   yoki   davrning   oddiy   evolyutsiyasi   uchun
dasturiy   ta’minot   kompaniyasi   dasturga   yangi   funktsiyalarni   qoshish,   uning   grafik
tomonini o‘zgartirish yoki dinamikasini to‘liq yoki qisman o‘zgartirish to‘g‘risida qaror
qabul   qilishi   mumkin.   Bunday   holda,   dasturning   yangi   versiyasi   ko‘rib   chiqiladi   va
butun   hayot   aylanish   jarayonidan   yana   o‘tadi.   Yangilangan   boshlang‘ich   kod   sinov
bosqichidan o‘tganida, u ochiq yoki sotuvga chiqariladi yangilash original dasturidan.
Dastur o‘zining hayotiy tsiklini tugatadi, chunki uning orqasida joylashgan kompaniya
uni     ravishda   yangilab   turishni   to‘xtatadi   va   uni   o‘z-o‘zidan   qoldiradi:   rivojlanish
to‘xtashi bilan dasturga aytiladi endi qo‘llab-quvvatlanmaydi (to‘xtatildi ingliz tilida).
2.3  INTERFEYS
      Interfeys (ing. pIyeggase) — texnik va programmalash vositalari majmui; hisoblash,
boshqarish   yoki   o‘lchash   tizimlari   (mas,   EHM   ning   opera-tiv   va   tashqi   xotira
qurilmasi)dagi   turli   funksional   qurilmalarning   o‘zaro   ta sirini   ta minlaydi.   Uʼ ʼ
uzatilayotgan axborotlarni kodlash va sin-xronligiga nisbatan belgilangan qoida hamda
kelishuvga   muvofiq   tayyor   modullardan   sistemani,   qurilmalarning   mexanik   va   elektr
birikmalarini   sig-nad   ko‘rinishida   (axborotlar   va   boshqa   shaklida)   to‘plashga   imkon
beradi.   Kompyuter   ishlashi   uchun   apparatli   (Hardware)   ta’minotdan   tashqari   dasturiy (Software) ta’minot ham muhim ahamiyatga egadir. Kompyuter tizimini tashkil etuvchi
bu ikki vositaning o‘zaro aloqasi interfeys deyiladi. Interfeys bir necha turga bo‘linadi,
ya’ni:   apparatli   interfeys;   dasturiy   interfeys;   apparatli-dasturiy   interfeys.   Apparatli
interfeysni   kompyuter   qurilmalarini   ishlab   chiqaruvchilar   ta’minlaydi.   Dasturiy
ta’minot   bilan   apparatli   ta’minot   ortasidagi   mutanosiblikni   operatsion   sistema
boshqaradi.   Kompyuterli   tizim   samarali   ishlashi   uchun   apparatli   va   dasturiy
ta’minotdan tashqari  foydalanuvchi  qatnashadi. kompyuterda ishlashi  jarayonida uning
apparatli ta’minoti  bilan ham, dasturiy ta’minoti bilan ham  aloqada bo‘ladi. Insonning
dastur bilan va dasturning inson bilan muloqatga kirishish usuli foydalanuvchi interfeysi
deyiladi. 
Dasturlar   xilma-xil   bo‘lgani   uchun   ularning   interfeysi   ham   turlicha   bo‘ladi.
Foydalanuvchi   interfeysini   xususiyatlariga   ko‘ra   bir   nechta   turga   ajratish   mumkin.
Dasturning ishlash muhitiga qarab, dastur nografik yoki grafik interfeysga ega bo‘ladi. 
25
Kompyuter texnologiyalarida ishlatiladigan interfeyslarning
turlari.
          Turli   xil   interfeyslar   mavjud.   Quyida   asosiylari.   Vizual.   Monitorda   namoyish
etiladigan   vizual   tasvirlar   yordamida   ma’lumotlarni   uzatadigan   standart   kompyuter
interfeysi.   Imo-ishora.   Qoida   tariqasida,   u   telefonlar   yoki   planshetlar   uchun   interfeys
bo‘lib   xizmat   qiladi.   Ko‘pgina   hollarda,   bu   tizimni   boshqaradigan   odamning
barmoqlarining harakatlariga javob beradigan va har bir aniq harakatga ma'lum darajada
javob   beradigan   sensorli   panel.   Oddiy   vizual   interfeysning   soddalashtirilgan   versiyasi
deb   atash   mumkin.   Ovoz.   Ushbu   turdagi   interfeys   nisbatan   yaqinda   paydo   bo‘ldi.
Ovozli   buyruqlar   yordamida   tizimni   boshqarish   imkoniyatini   beradi.   Tizim,   oz
navbatida, foydalanuvchi bilan muloqot orqali ham javob beradi. Eng qizig‘i shundaki,
zamonaviy texnologiyalar bizga nafaqat telefonlar yoki kompyuterlarning ovozini, balki
maishiy texnika va hatto bortli kompyuterlarning ovozini boshqarishga imkon beradi.
Ushbu   sohadagi   eng   yangi   yonalishlardan   biri   bu   sensorli   interfeys.   Uning   ishlash
printsipi   ma'lum   ob’ektlar   orqali   amalga   oshiriladigan   foydalanuvchi   va   mashinaning
jismoniy o‘zaro ta’siriga asoslanadi. Aytishimiz mumkinki, bu monitordan foydalangan
holda ilgari foydalanuvchi tomonidan olingan ma'lumotlarni taqdim etishga urinishdir.
Tizim va dastur interfeysi. Interfeyslar 2 turga bo‘linadi: tizim va amaliy dasturlash 
interfeysi. Ilova dasturlash interfeysi yoki API bu ba’zi bir dastur biron bir operatsiyani
bajarish uchun operatsion tizimga murojaat qiladigan bir turdagi so‘rov. Ushbu interfeys
dasturlarni yaratish uchun turli xil ishlab chiquvchilar tomonidan qo‘llaniladi.
Tizim interfeysi ikki xil bo‘lishi mumkin: buyruq va grafik.
                Odatda   buyruqlar   interfeysi   foydalanuvchi   ma’lum   ko‘rsatmalarni   kiritadigan
buyruq qatori bo‘lib, aksariyat hollarda o‘z sintaksisiga ega (masalan, ubuntu operatsion
tizimi) va tizim ularni bajaradi. Grafik interfeys bilan bir qatorda buyruq foydalanuvchi
buyruqlari tufayli ishlaydi, ammo undan farqli o‘laroq buyruqlar buyruqlar satriga matn
orqali kiritilmaydi, balki piktogramma, oynalar va boshqalar kabi grafik tasvirlar orqali
xizmat   qiladi.   Ushbu   turdagi   interfeys   eng   keng   tarqalgan   bo‘lib,   bugungi   kunda
ko‘pgina   shaxsiy   kompyuterlarda   qo‘llaniladi.   Bunday   interfeyslar   ko‘pincha   WIMP deb   ataladi,   bu   Window   (Window),   Icon   (Menyu),   Menyu   (Menyu),   Nuqtalash
moslamasi (Manipulyatsion qurilma) so‘zlarining birinchi harflarining qisqartmasi.
Windows GUI (tanish, shunday emasmi?)
           Interfeys tushunchasi lug‘atimizga kompyuterlarning paydo bo‘lishi davrida keldi.
Ushbu atama bir nechta ma'noga ega. Biroq, ularning barchasi, qoida tariqasida, odam
va   mashinaning   o‘zaro   ta'siriga   tushishadi.   So‘zning   eng   keng   tarqalgan   talqini
"Interfeys" quyidagi ta’rif: bu odamni kompyuterni boshqarishga yordam beradigan  
vositalar   to‘plami.   Birinchi   kompyuterlarning   ta’sirchan   o‘lchamlari,   kichkina   xotirasi
bor   edi   va   ular   dasturlar   va   ma’lumotlarni   kiritish   uchun   punch   kartalaridan
foydalanganlar.   Punchli   karta   -   qadimiy   kompyuter   artefakti   .Punchli   kartalar   -   bu
dasturchilar tomonidan qo‘lda teshiklari bo‘lgan kichik chiziqlar. Va juda katta strechli
o‘xshash interfeysni qulay deb atash mumkin. Aksincha, bu biron bir qulaylik yo‘qligi.
Keyin buyruq satri orqali amalga oshiriladigan operatsion tizimli kompyuterlar paydo 
26
bo‘ldi. Biror dasturni ishga tushirish yoki muayyan harakatlarni bajarish uchun bir kishi
ushbu   buyruq   satriga   buyruq   yozishi   kerak   edi.   Odam   va   mashinaning   o‘zaro   ta'siri
usuli sifatida bunday interfeys qulayroq edi. Albatta, buyruqlar yozish va grafikalar va
matnlar   ko‘rinishida   natijalarni   olish   punch-kartalarda   teshik   ochishdan   va   mashina
kodini oqishdan ko‘ra ancha qulayroqdir. Va nihoyat, interfeysning oxirgi turi (biz hozir
foydalanamiz)   Grafik   foydalanuvchi   interfeysi   (GUI).   Windows-da   ko‘plab   GUI
elementlari   .Har   qanday   zamonaviy   operatsion   tizim   grafik   interfeys   bilan   ishlashi
mumkin,   chunki   u   ko‘proq   o‘qilishi   va   qulayligi.   Interfeys   nima?   Bu   klaviatura   va
sichqoncha   yordamida   kompyuterni   boshqarish   jarayoni.   Qabul   qilaman,   kino,
dasturlarni   ishga   tushirish   yoki   Photoshop-da   ishlash   uchun   ikonani   yoki   yozuvni   bir
marta   bosish   juda   qulay.   Aytishim   kerakki,   bunday   qulaylik   uchun   biz   Apple   va   Stiv
Jobsga   minnatdorchilik   bildirishimiz   kerak.   Bu   kompyuter   kompyuterlarida
sichqonchani   yordamida   birinchi   ibtidoiy   tajribalar   natijalaridan   foydalangan.
Qolganlari faqat bu fikrdan nusxa ko‘chirishdi, keyin esa keyinroq. Aytgancha, Apple 
o‘zining "dostona" interfeysi bilan ko‘plab foydalanuvchilarning e'tiborini qozondi.
Birinchi Apple Macintosh GUI (1984)
              Bu   erda   hamma   narsa   juda   oson   bajarilganligi   sababli,   Mac-ning   noyob
foydalanuvchisi   boshqa   ishlab   chiqaruvchining   kompyuteriga   o‘tadi.   Garchi   ular
raqobatchilardan   ko‘ra   kuchliroq   bo‘lmasa-da   va   ular   uchun   dasturiy   ta'minotni   olish
juda muammoli. Dasturchilar va dizaynerlar juda qulay interfeysni yaratish uchun juda
ko‘p   harakat   qilishdi.   Boshqa   tizimlar   uni   turli   darajadagi   muvaffaqiyatga
erishishdi.Yaqinda   grafik   interfeys   rivojlanishning   yangi   bosqichini   oldi.   Bu   sensor
texnologiyasining rivojlanishi  tufayli mumkin boldi. Ko‘rib turganimizdek, mashinalar
bilan o‘zaro ta'sir qilish vositalari tobora tabiiy va qulay holga keltirilmoqda. Masalan,
teging   muzlatgich   yoki   mikrotolqinli   pechning   boshqaruv   paneli   ham   interfeys.   Shuni
ta’kidlash   kerakki,   nafaqat   OS   interfeysi,   balki   boshqa   har   qanday   dastur,   masalan,
o‘yin   ham   mavjud.   Albatta,   chiroyli   va   qulay   menyuga   ega   dasturlar   bizning
e’tiborimizni ko‘proq jalb qiladi va qattiq diskda "jonli" bo‘lib qoladi. Muvaffaqiyatsiz
amalga   oshirilgan   interfeysga   ega   dasturlar,   aksincha,   ulardan   foydalanish   istagini
susaytiradi.   Ammo   "interfeys"   tushunchasi   boshqa   ma'nolarga   ham   ega,   ular ma'lumotlarni kiritish / chiqarish uchun mo‘ljallangan asboblargacha pasayadi. Agar siz
kompyuteringizning   orqa   paneliga   qarasangiz,   u   erda   qurilmalarni   ulash   uchun   bir
nechta   kirishlarni   ko‘rasiz.   Ushbu   kirishlar   (ulagichlar)   turli   xil   maqsadlar   uchun
interfeysdir.   Masalan,   taniqli   USB-ulagichni   USB-interfeysi   deb   hisoblash   mumkin.
Chunki   bu   kompyuterga   flesh-disklar,   printerlar,   modemlar,   tashqi   qattiq   disklar   va
boshqa qurilmalar bilan "bog‘lanish" ga yordam beradi. Va nihoyat, biz ushbu so‘zning
yana   bir   talqinini   beramiz.   Zamonaviy   dasturlash   tillarida   "interfeys"   deb   nomlangan
usullar   mavjud.   Ushbu   usullar   dasturni   yozishda   foydalaniladi,   shunda   u   (dastur)
operatsion tizim bilan o‘zaro ta'sir qilishi mumkin. Bu "muloqot" uchun mo‘ljallangan,
ammo   odam   bilan   emas,   balki   boshqa   dastur   bilan   mo‘ljallangan   dasturning   ba'zi
qismlari.     Sizni   qiziqtirishi   mumkin:   Skymonk   ko‘plab   mashhur   fayl   almashish
xizmatlaridan fayllarni yuklab olish uchun yaratilgan: ShareFlare.net, Sms4File.com, 
27
Vip-File.com, Letitbit.net. Dasturni rus tiliga to‘liq tarjimasi tufayli ishlatish juda oson.
Uning   yordamida   siz   DownloadMaster-dagi   kabi   to‘g‘ridan-to‘g‘ri   havolalar   bilan
ishlashingiz   mumkin.   SkyMonk-ning   soddaligiga   qaramay,   foydalanuvchilar   uning
nima   ekanligini   va   undan   qanday   foydalanishni   bilishmaydi,   biz   bu   haqda   quyida
gaplashamiz.   Sky   Monk   ikkita   rejimga   ega   ...    Ko‘pgina  kompyuter   foydalanuvchilari
Windows operatsion tizimida chuqurlik borligini eshitmaganlar - x32, x64 yoki x84. Bu
nima ekanligini  va nima uchun kerakligini  faqat  ozchilik biladi. Bugungi  kunga kelib,
Windowsning atigi ikki biti bor - 32 va 64 bit. X86-ga kelsak, bu faqat 32 bitli versiya
uchun   mo‘ljallangan   belgi,   ya'ni   agar   operatsion   tizim   86   bitli   ekanligi   ko‘rsatilsa,   u
holda   ...         Bugungi   kunda   planshet   kompyuter   hayotimizga   qat'iy   kirib   bordi.   Ushbu
qurilmalar   doimiy   ravishda   takomillashtirilmoqda   va   planshetlarning   rivojlanishini
to‘xtatish haqida gap bo‘lishi mumkin emas. "Tabletkalar" va boshqa shunga o‘xshash
"qurilmalar"   ortasidagi   asosiy   farq   bu   katta   sensorli   ekranning   mavjudligidir.   Uning
olchamlari deyarli butun planshetning o‘lchamlari bilan mos keladi. Va barcha tarkibiy
qismlar   ekran   ostida   joylashgan.   Odatda,   planshet   kompyuterning   ekran   diagonali   ...
Bugungi   kunda   Internetdan   foydalangan   holda   tovarlar   va   xizmatlar   uchun   haq
tolashning   ko‘plab   usullari   mavjud.   Bunday   usullardan   biri   bu   Yandex.Money   tizimi
orqali   hisob-kitob   qilishdir.   Agar   siz   Yandex.Money   nima   ekanligini   eshitmagan
bo‘lsangiz,   unda   ushbu   maqola   siz   uchun.   Xizmatning   veb-saytiga   havola   -
money.yandex.ru   Yandex.Money   (YA   qisqasi)   elektron   pullar   g‘oyasini   amalga
oshiradigan   eng   keng   tarqalgan   to‘lov   tizimlaridan   biri.   Tizim   real   vaqt   rejimida   ...
So‘z   interfeysi   ko‘plab   ta'riflarga   ega   bolishi   mumkin,   ammo   asosiy   ta'rif   kompyuter
texnologiyalari  sohasiga  tegishli. Bu erda interfeys foydalanuvchiga o‘yinlar, dasturlar
yoki   operatsion   tizimlar   bilan   o‘zaro   aloqada   bo‘lishga   yordam   beradigan   vositani
anglatadi. Ushbu vosita dasturlarni  taniqli qiladi  va ular bilan ishlashni  osonlashtiradi.
Masalan, siz Paint dasturining interfeysini olishingiz mumkin. Agar biror kishi u bilan
qanday   ishlashni   bilsa,   u   shunga   o‘xshash   interfeysga   ega   bo‘lgan   boshqa   dasturlar
bilan   ishlash   imkoniyatiga   ega   bo‘ladi.   Siz   ushbu   atamani   boshqacha   qilib   aytganda,
odam kompyuter texnologiyalarini boshqaradigan turli xil vositalarning kombinatsiyasi
sifatida tushuntirishingiz mumkin. Interfeysning asosiy vazifalari ma’lumotlarni kiritish
va chiqarishdir. Bundan tashqari, dasturiy ta’minotni boshqarish, ma’lumotlar almashish
va   jamoaviy   operatsiyalarni   amalga   oshirishga   yordam   beradi.   Ushbu   operatsiyalar tashqi saqlash vositalaridan foydalangan holda amalga oshiriladi.   Interfeys sifatida siz
kompyuterning   orqa   panelini   tavsiflashingiz   mumkin.   Buning   sababi   turli   xil
qurilmalarni unga kirish orqali ulash imkoniyati bilan bog‘liq. Kir yuvish mashinalarida
yoki   avtomashinalarda   joylashgan   boshqaruv   panellari   ham   interfeysdir.   “Interfeys”
so‘zi   ingliz   tilida   olingan.   Uning   tom   ma’nodagi   tarjimasi   odamlar   o‘rtasidagi   o‘zaro
munosabatni   anglatadi,   xuddi   shu   ma’noda   ishlatiladi.   Zamonaviy   texnologiyalarda
interfeys   ikki   yoki   undan   ortiq   ob’ektlar   o‘rtasida   ma’lumot   uzatishni   ta'minlaydigan
noyob   tizimli   ulanishdir.   Ushbu   tushuncha   kompyuter   texnologiyalarida   eng   ko‘p
ishlatilgan   bo‘lsa   ham,   u   fan   va   texnikaning   boshqa   sohalarida   mavjud.   Masalan,
muhandislik psixologiyasida interfeys bu mashinalarning odamlar bilan aloqasi.
28
Interfeyslarga ehtiyoj
       Tasavvur qiling, murakkab uskunalar aloqa, bloklar va boshqa turli xil tugunlardan
iborat.   Shuningdek,   jihoz   foydalanuvchining   o‘zi   bilan   bog‘langan.   Oxirgi   aloqa
mantiqiy shaklda ifodalanishi kerak. Bu ma’lumot beradigan va shuningdek signallarni
tavsiflaydigan   tizim.   Mantiqan,   kompyuter   interfeyslarini   matematikaga   asoslanib
yaratilgan   tizimlar   deb   hisoblash   mumkin.   Ya’ni,   matematik   jihatdan   bu   Boolean
algebra   tushunchalari   tizimlari.   Jismoniy   jihatdan,   bu   oqim   pulslarini   bir-biri   bilan
almashtiradigan chiplar, elektron qismlar, simlar va boshqa qismlarning kombinatsiyasi
sifatida   namoyish   etilishi   mumkin.   Interfeys   yordamida   kompyuter   umuman   ishlashi
mumkin. Protsessor va operativ xotira, bosma qurilmalar, shuningdek video karta bilan
aloqani   ta’minlaydigan   kishi.   Bundan   tashqari,   interfeysdan   foydalanib,   siz   Internetda
ishlashingiz,   boshqa   qurilmalar   va   boshqa   foydalanuvchilar   bilan   aloqa   qilishingiz
mumkin.Sodda   qilib   aytganda,   ushbu   vositasiz   kompyuter   texnologiyalarida   ishlash
mumkin   emas.   Bugungi   kunda   kompyuter   texnologiyalarida   dasturchining   ishlashi
uchun   zarur   bolgan   har   xil   turdagi   interfeyslar   qo‘llaniladi,   ular   oddiy   kompyuter
foydalanuvchilari uchun ham zarurdir.
Dastur interfeysi
                Dasturning   interfeysi   bu   dastur   boshqarilishi   mumkin   bo‘lgan   turli   qismlarga
tegishlidir. Dasturda interfeys derazalar, tugmalar  kabi  ko‘rinadi, shunda dastur  sizdan
kutgan  amallarni   bajarishi   mumkin.Biz  kompyuter   dasturlarini  ishlatishda  oddiy  misol
keltiramiz.   Film   tomosha   qilish   uchun   video   pleyer   kabi   dasturdan   foydalanish   kerak.
Dastur   filmni   ko‘rsatadigan   qatorni   boshlaydi,   shundan   so‘ng   u   ekranda   namoyish
etiladi.   Filmlarni   tomosha   qilish   uchun   dastur,   shuningdek,   boshqarish   uchun   xizmat
qiladigan   o‘z   interfeysiga   ega.   Shunday   qilib,   pleyerdagi   tugmachalardan   foydalanib,
siz   ovozni   balandroq   yoki   jimroq   qilishingiz,   filmni   pauza   qilishingiz   yoki   boshqa
kerakli amallarni bajarishingiz mumkin.           EKUB,     EKUK   ,     NBS     VA     TUBLIK     amalarini     bajaradigan     dastur.birinchi
bo’lib amalni tanlang , EKUB  uchun 1 sonni,  EKUK  uchun  2  sonni, NBS   uchun  3
sonni, tublik uchun 4  sonni  ,iltimos keyin 2 ta  son    kiriting
2.3.8 rasm berilgan mavzu uchun tuzilgan dastur interfeysi
29
GUI
            Grafik   interfeys   bu   raqamlar   o‘rniga   rasmlardan   foydalanadigan   foydalanuvchi
interfeysi.   Undagi   rasmlar   harflarning   o‘rnini   bosadi,   bular   tugmachalar   yoki
piktogrammalar.   Grafik   tipidagi   interfeysning   yorqin   namunasi   Windows   ish   stoli.
Ushbu interfeysdagi ish dasturni sekin urish bilan ta’minlashdir.   Buyruqlar satri orqali
kirish   va   chiqish   bilan   taqqoslaganda,   grafik   interfeysi   sodda   va   sodda.   Grafik
interfeysdan   foydalanish   uchun   siz   shunchaki   tez-tez   emas,   balki   kompyuterning
maxsus bilimlarini talab qilasiz. Grafik interfeys ko‘pincha intuitivdir va u do‘stona deb
ham   ataladi.   Grafik   interfeysning   kamchiliklari   ham   bor,   ularning   asosiysi   dasturni
grafik   ravishda   namoyish   qilish   uchun   zarur   bo‘lgan   katta   hajmdagi   xotira.   Ammo
zamonaviy   dasturlar   bu   kamchilikni   bartaraf   etdilar,   chunki   zamonaviy
kompyuterlarning xotirasi har bir yangi chiqarilish bilan ko‘paymoqda. Shu bilan birga,
interfeysning o‘zi murakkablashadi, endi u ko‘proq xotirani egallaydi, ammo u yanada
qulay   va   samarali   bo‘ladi.   O‘yinlarga   kelsak,   ularda   grafik   interfeys   mavjud,   shunda
foydalanuvchi   o‘yin   davomida   kompyuter   bilan   o‘zaro   aloqa   qila   oladi.   Bundan
tashqari,   foydalanuvchilarni   bir-biri   bilan   ta’minlaydi.   Deyarli   barcha   o‘yinlarda
interfeys   murakkab   va   tugmachalar   va   sichqoncha   yordamida   o‘yinni   boshqarish
imkoniyatini   beradi.   O‘yin   belgilarining   xatti-harakatlari   foydalanuvchi   tomonidan
ta’minlanadi   va   ularni   amalga   oshirish   usullari   deyarli   barcha   o‘yinlar   uchun   standart
hisoblanadi. Ko‘pincha foydalanuvchiga interfeys sozlamalarini o‘zgartirish imkoniyati
beriladi,   shunda   unga   o‘ynash   qulayroq   bo‘ladi.   Endi   yangi   boshqaruv   variantlari
mavjud,   shuning   uchun   sensorli   ekranlarni   yaratishda   o‘yinni   barmoqlaringiz   bilan
boshqarish mumkin.
Interfeys turlari
              O‘yin,   dastur   va   grafik   interfeys   mavjudligiga   qo‘shimcha   ravishda   quyidagi
interfeys turlari ham mavjud:  Ichki interfeys usullar va xususiyatlarni anglatadi, ularga kirish   ushbu   ob’ektning   boshqa   vositalari   orqali   amalga   oshiriladi.   Ular,   shuningdek,
xususiy  deb nomlanadi. Tashqi  interfeys  deganda foydalanuvchilarga tashqi  tomondan
kirish   mumkin   bo‘lgan   usul   va   xususiyatlar   tushuniladi.   Bunday   usullar   ommaviy
deyiladi.   Ushbu   turlarni   qahva   qaynatgichni   misol   sifatida   ko‘rib   chiqish   mumkin.
Qahva   qaynatgichning   ichida   qozon,   uni   isitadigan   element,   termal   sug‘urta   va
boshqalar   yashiringan.   Bularning   barchasini   ichki   interfeys   deb   atash   mumkin.   Uni
tashkil   etuvchi   qismlar   qurilmaning   ishlashini   ta'minlaydi.   Buning   uchun   ular   bir-biri
bilan o‘zaro aloqada bo‘lishadi. Masalan, qahva mashinasi  ishlashi uchun uning isitish
elementi   qozonga   ulangan.     Kofe   qaynatgichning   ichki   interfeysiga   kirish   juda   qiyin,
uni   foydalanuvchi   plastik   plastmassa   bilan   yopib   qo‘ygan.   Uskunaning   tafsilotlari
yashiringan   va   foydalanuvchi   uchun   faqat   tashqi   interfeys   mavjud.   Qahva   qaynatgich
sotib   olinganda   foydalanuvchi   uchun   faqat   tashqi   interfeys   mavjud.   Ichki   interfeys
haqida bilish shart emas, qurilmani ishlatish uchun faqat tashqi interfeys talab qilinadi.
Xuddi shu misollar boshqa maishiy texnika, masalan, kir yuvish mashinasi, televizor va
boshqalarga qo‘llaniladi. Kompyuterda ichki  interfeys mavjud, u foydalanuvchiga kira
olmaydi, ammo agar qurilma buzilgan bo‘lsa, siz u bilan ishlashingiz kerak.
Shunday qilib, interfeys kompyuterlar bilan o‘zaro ta'sir o‘tkazish, maishiy texnika va 
30
boshqalarni boshqarish vositasi sifatida tavsiflanadi. Bu tashqi va ichki. Foydalanuvchi
uchun   faqat   qurilmalar   va   mashinalarning   tashqi   interfeysi   mavjud.     Interfeys   –   bu
grafik tasvirni chiqarish funktsiyasini bajaradigan va foydalanuvchi va kompyuter yoki
boshqa texnik qurilma o‘rtasida ma’lumot almashish imkonini beradigan maxsus dastur. 31
XULOSA
        Berilgan  dasturni  yaratish  jarayonida  men    Matematik   amallarni  bajaradigan,
ya’ni  EKUB,   EKUK,    NBS,    TUBLIK    amallari  bilan   chegaralangan     C#   tilida
oddiyroq     dastur  tuzdim.  Bu dasturda     if    ,    while   ,    for     operatorlarini  ishlatdim.
Bu     dasturda   uint       tipidan     foydalandim     sababi     menning     dasturimdagi     amallar
natural     sonlar   va       natija     ham     natural     sondan     iborat   .     Hozirda     dasturlashni
mukammal     egallamagan     bolsamda   kelajakda       o‘z     sohamda       tajribali     mutaxasis
bo‘lmoqchiman. Hozirda   yurtimizda   dasturchilarga   katta   e’tibor    qaratilmoqda     va
shart     sharoitlar     yaratilgan.   Biz     bu     imkoniyatlardan     to‘g‘ri     foydalansak     albatta
kelajakda     Vatanimiz     ravnaqiga     hissa     qo‘shamiz   ,     O‘zbekiston   nomini     ko‘klarga
ko‘taramiz ,  va  bir  kun  kelib  yurtimiz  jivojlangan  davlatlar   safidan  joy  oladi .    32
FOYDALANILGAN   ADABIYOTLAR.
1. https://cemc.uz/uz/page/3595/prezidentning-2022-2023-yillarda-axborot-
kommunikatsiya-texnologiyalari-sohasini-yangi-bosqichga-olib-chiqish-chora-tadbirlari-
togrisidagi-qarori-imzolandi#:~:text=Prezidentning
%20%E2%80%9C2022%E2%80%932023%20yillarda%20axborot
%2Dkommunikatsiya,monitoringini%20amalga%20oshirish%20tizimi%20yo
%E2%80%98lga%20qo%E2%80%98yiladi .
2. https://uz.wikipedia.org/wiki/Dasturlash_tillari_tarixi#:~:text=Dasturlash%20tillari
%20tarixi%C2%A0%E2%80%94%20dastlabki,oshirishda%20muhim%20rol%20o%CA
%BBynadi .
3. https://uz.wikipedia.org/wiki/C_Sharp#:~:text=C%23%20tili%20tarixi,strukturaviy
%20dasturlash%20tillari
4. https://uzbekdevs.uz/darsliklar/csharp/csharp-da-malumot-turlari-tiplar#:~:text=C
%23%20tiplashgan,ko%60rsatib%20turgan
5. https://uzbekdevs.uz/darsliklar/csharp/csharp-da-ornatish#:~:text=C%23%20bilan
%20boshlashning,C%23%20o%27rnatish
6. https://trucoteca.com/uz/como-crear-un-programa/?amp#:~:text=bosqich
%20yaratish%20kerak-,Dastur%20nima%3F,ma%27lumotlar%20yoki%20ma
%27lumotlar%20seriyasini%20%22chiquvchi%22%20ma%27lumotlar%20yoki%20ma
%27lumotlar%20seriyasiga%20o%27zgartiradigan%20operatsiya.,-Dasturlash
%20jarayonida%20yuqorida
7. http://testmat.ru/page.php?id=mat_2_1_uz#:~:text=kichik%20umumiy
%20karrali-,Sonlarni%20tub%20ko%E2%80%99paytuvchilarga%20ajratish,bo %E2%80%99lib%20xizmat%20qiluvchi%20son%20hisoblanadi.%20Masalan%2C
%205%20%C2%A0%C2%A025%2C%2030%2C%2045%20sonlarining,-bo
%E2%80%99luvchisi%20hisoblanadi%C2%A0%20va
8. https://uz.wikipedia.org/wiki/Interfeys#:~:text=Creative%20Commons%20Attribution
%2DShareAlike%20litsenziyasi
9 . https://fayllar.org/foydalanuvchi-interfeysi-tahlili-va-loyihalashtirish-reja-
foyd.html#:~:text=www.wikipedia.uz,www.google.uz
33
ILOVA
using System;
public class HelloWorld
{
    public static void Main(string[] args)
    {
        
      Console.Write(   "   EKUB,     EKUK   ,     NBS     VA     TUBLIK     amalarini     bajaradigan
dastur.birinchi  bo'lib amalni tanlang , EKUB  uchun 1 sonni,  EKUK  uchun  2  sonni,
NBS   uchun  3  sonni, tublik uchun 4  sonni  ,iltimos keyin 2 ta  son    kiriting ");
uint  son1,son2,Ekub,Ekuk, nbs1=0,nbs2=0,a,b,c;
a=uint.Parse(Console.ReadLine());
if(a!=1&&a!=2&&a!=3&&a!=4)
{
            Console.Write( " Iltimos  birinchi   bo'lib amalni tanlang , EKUB   uchun 1 sonni,
EKUK  uchun  2  sonni, NBS   uchun  3  sonni, tublik uchun 4  sonni  , keyin 2 ta  son
kiriting \n");
Console.ReadKey();
return ; 
}
son1=uint.Parse(Console.ReadLine());
son2=uint.Parse(Console.ReadLine());
if(a==1)
{
    Ekub=son1;
while(son1%Ekub!=0||son2%Ekub!=0) {
Ekub--;
}
Console.WriteLine ( "EKUB= "+Ekub);
Console.ReadKey();
}
if(a==2)
{
   Ekuk=son1;
    while(Ekuk%son1!=0||Ekuk%son2!=0)
    {
        Ekuk++;
    }
34
Console.WriteLine(" EKUK= "+Ekuk);
Console.ReadKey();
}                                                                         
if(a==3)
{
for(int i=1;i<=son1;i++)
{
if(son1%i==0)
{
nbs1++;
} 
}
for(int i=1;i<=son2;i++)
{
if(son2%i==0)
{
nbs2++;
}
}
    Console.WriteLine("     1 sonning  NBS=      "+nbs1);
    Console.WriteLine("      2 sonning  NBS=         "+nbs2);
Console.ReadKey();
}
if(a==4)
{
for(int i=1;i<=son1;i++)
{
if(son1%i==0)
{ nbs1++;
} 
}                                                                           
for(int i=1;i<=son2;i++)
{
if(son2%i==0)
{
nbs2++;
}
}
if(nbs1>2)
{
Console.WriteLine("  1  son tub emas \n"   );
Console.ReadKey();
}     
35
if(nbs1<=2)                                                       
{
Console.WriteLine("  1  son tub \n  "   );
Console.ReadKey();
}     
if(nbs2>2)
{
Console.WriteLine("  2   son tub emas \n  "   );
Console.ReadKey();
}     
if(nbs2<=2)
{                                                                           
Console.WriteLine("  2    son tub  \n   "   );
Console.ReadKey();
      } 
 }    
    
        }
   } 36