logo

Kop parametrli qiymat qaytaruvchi funksiyalarga doir misollar yechish

Yuklangan vaqt:

12.08.2023

Ko'chirishlar soni:

0

Hajmi:

603.3388671875 KB
Mavzu:   Kop parametrli qiymat qaytaruvchi funksiyalarga doir misollar yechish
Reja:
1. Kop parametrli qiymat qaytaruvchi funksiyalar.
2. Kop parametrli qiymat qaytaruvchi funksiyalarga doir misollar yechish.
3. “Algoritm” tushunchasi .
          C# dasturlash tilida funksiyalar nimaligini o’rganishdan oldin funksiyaning o’zi
nima u bizga nega kerak degan savollarga javob topamiz.
Funksiya nega kerak ?  Biz biroz yirikroq dastur yozish mobaynida juda ko’p bir
xil bo’lgan vazifani qayta va qayta yozayotgandek bo’lamiz. Bu xuddi kuni bilan
paxta  terayotgan  kishining  ishiga   o’xshaydi   qaniydi   bitta  robot  bo’lsayu  unga   bir
marta   paxta   terishni   o’rgatib   qo’ysak   keyin   har   safar   aytganingda   paxtani   terib
qo’ysa   deb   orzu   qiladi   paxta   teruvchi   ,   albatta   terimchining   bu   orzusini   amalga
oshirish   qiyin   .   Lekin   sizning   ishingizni   (ya’ni   kodlashda   bir   vazifani   qayta
yozishni)   yengillashtirishning   yo’li   bor   ,   bu   yerda   bizga   Funksiyalar   yordamga
keladi
Funksiya   nima?   Bir   marta   kod   yozib   uni   dasturning   istalgan   joyida   istalgancha
ishlatish   imkonini   beruvchi   operatorlar   guruhi   Funksiya   deyiladi.   Bu   huddi
yuqoridagi   misolimizga   o’xshash   bir   marta   qanday   qilishni   o’rgat   va   xoxlagan
vaqting xoxlagan joyingda ishlat. Funksiya dasturchining kodini sezilarni darajada
qisqartiradi va bu orqali dastur kodini o’qish osonlashadi  va qotira hajmidan ham
yutiladi.
C# da funksiyadan foydalanish   Dasturlashda funksiyalar ikki toifaga bo’linadi •
Qiymat qaytaruvchi • Qiymat qaytarmaydigan
Dastlab   biz   qiymat   qaytaruvchi   funksiyalar   ni   ko’rib   chiqamiz.   Qiymat
qaytaruvchi funksiyalar  malum bir qiymatni (int ,float ,string va boshq) qaytaradi
Qiymat qaytaruvchi funksiya larning tuzilishini ko’ramiz
Bularning   barchasiga   alohida   to’xtalib   o’tamiz   1.   -   bu   funksiya   qaytaradigan
qiymat   bo’lib   turli   xil   ma’lumot   turlaridan   foydalanishimiz   mumkin   masalan   int, float   string kabilar.  2. -  funksiyaning  nomi  yani   uni  chaqiradigan  ism  deyishimiz
ham   mumkin   unga   ism   tanlayotganda   lotin   alifbosidagi   katta   va   kichik   harflar   ,
raqamlar   va   tagchiziq   (‘_’)   foydalangan   holda   ,   raqamdan   boshlamasdan   va   c#
tilidagi kalit so’zlardan foydalanmagan holda xoxlagan ismni berishimiz mumkin.
3. (<parametrlar>) – bu funksiya yakuniy qiymatni yaratish uchun foydalanadigan
yordamchilar   deyishimiz   mumkin   ushbu   yordamchilar   sifatida   esa   turli   xil
malumot tipidagi o’zgaruvchilar keladi . yordamchilar sifatida 0 tadan xoxlagancha
o’zgaruvchilar   bo’lishi   mumkin   ular   quyidagicha   yoziladi   (int   a,   float   b,   int   c)   .
4.   //   funksiya   tanasi   -   ushbu   qism   funksiyaning   asosiy   qismi   hisoblaning
qaytariladigan   yakuniy   qiymatgacha   bo’lgan   barcha   ishlar   shu   yerda   qilinadi   va
figurali   qavs   (‘{‘)   bilan   boshlanadi   ushbu   qismda   parametr   sifatida   kiritilgan
o’zgaruvchilar   ham   ishlatiladi.   5.   //   return   -   ushbu   amal   biz   funksiyaning
qaytaradigan   qiymatini   aniqlaydi.   ning   turi   funksiyada   elon   qilingan   dastlabki
qiymat   bilan   bir   xil   bo’lishi   shart.yani   funksiya   int   turida   bo’lsa   biz   return   dan
keyin   ham   int   turidagi   o’zgaruvchi   bo’ladi.   Ming   marta   eshitgandan   ko’ra   bir
marta ko’rgan yaxshi deganlaridek biz C# tilida Funksiya ga oddiygana ikki sonda
kattasini topuvchi funksiya orqali misol keltiramiz
int max( int a , int b)
C# Console dasturida funksiyadan foydalanish
1
}
Copied!
output: 8
Yuqorida   console   dasturida   max   yani   ikki   sondan   kattasini   topuvchi   funksiya
yaratildi   va   undan   dasturning   Main   qismida   foydalanildi.   Albatta   bu   yerda
funksiyaning foydasi  yaqqol  sezilmagandir  ammo siz dastur  ichida funksiyani  bir
necha marotaba foydalansangiz naqadar foydali ekanligini tushunasiz.
Qiymat qaytarmaydigan funksiyalar  Agar biz funksiyalarni xizmatchi inson deb
bilsak qiymat qaytaradigan va qaytarmaydigan funksiyalarni shunday tariflashimiz
mumkin   .   Deylik   xizmatchiga   qanchadir   pul(ya’ni   parametr)   berib   do’konga jo’natamiz   va   bizga   aytgan   narsamizni   (qaytaradigan   qiymat)   ni   olib   keladi   bu
qiymat qaytaradigan funksiyaga  misol  bo’ladi . boshqa xizmatchiga esa pul(ya’ni
parametr)   berib   unga   hovlidagi   qandaydir   ishlarni   aytamiz   va   u   aytgan
ishlaringizni   qildi   lekin   sizga   hech   narsa   qaytarib   kelmadi   bu   qiymat
qaytarmaydigan   funksiyaga   misol   bo’la   oladi.   Qisqa   qilib   aytganda   qiymat
qaytarmaydigan   funksiyaning   qaytaruvchi   qiymati   bo’lmaydi   va   u   qandaydir
vazifani bajargan bo’ladi.
Endi esa qiymat qaytarmaydigan funksiyalarning tuzilishini ko’rib chiqamiz
Qiymat   qaytarmaydigan   funksiyaning   qiymat   qaytaradigan   funksiyadan   asosiy
farqi   bu   funksiyalar   qaytariladigan   qiymat   turi   o’rniga   ‘void’   kalit   so’zi   bilan
boshlanadi   va   qaytariladigan   qiymat   return   yozilmaydi.   Endi   esa   qiymat
qaytarmaydigan   funksiyaga   misol   yozamiz
Copied !
Bu   shunchaki   s   matnni   n   marta   takma   tak   chiqaruvchi   funksiya   Bundan
foydalanishni   yana   console   dasturda   ham   ko ’ ramiz .
Copied!
Output: dot-net.uz dot-net.uz dot-net.uz
Xulosa   qilib   aytadigan   bo’lsak   funksilar   bizning   og’irimizni   yengil   uzog’imizni
yaqin   qiluvchi   yordamchi   zamonaviy   dasturlash   tillarini   funksiyalarsiz   tasavvur
qilib   bo’lmaydi   .   Katta   loyiha   qila   turib   funksiyalardan   foydalanmaslikni   yangi
uyni   faqat   qo’l   mehnati   bilan   qurmoqchi   bo’lgan   inson   harakati   bilan   o’xshatish
mumkin.   Bu   boshlanishi   edi   keyingi   darslarda   funksiyalarga   yanada   kengroq
to’xtalamiz.
                          Ayrim   algoritmlarning   hisoblash   jarayonlari   o'zlarining   ko'p   tarmoqliligi
bilan   ajralib   turadi.   Umuman   olganda,   tarmoqli   jarayonlarni   hisoblash   uchun
shartli operatordan foydalanish yetarlidir. Lekin, tarmoqlar soni ko'p bo'lsa, shartli
operatordan   foydalanish   algoritmning   ko'rinishini   qo'pollashtirib   yuboradi.   Bu
hollarda   shartli   operatorning   umumlashmasi   bo'lgan   variant   tanlash   operatoridan
foydalanish maqsadga muvofiqdir.
                       Variant tanlash operatorining sintaksis aniqlanmasi quyidagicha:
                       <variant tanlash operatori>::=   case   <operator selektori>
                       of <variant ro'yxatining hadlari>   end;
bu yerda        <operator selektori>::= <ifoda>;
                        <variant   ro'yxatining   hadi>::=<variantlar   metkalarining
ro'yxati>:<operator>;
                        <variantlar   metkalarining   ro'yxati>::=<variant   metkasi>{,<   variant
metkasi>};
                       <variant metkasi>::=<o'zgarmas>
                          Variant   tanlash   operatori   bajarilish   paytida   oldin   selektorning   qiymati
hisoblanadi,   shundan   so'ng   selektorning   qiymatiga   mos   metka   bilan   jihozlangan
operator   bajariladi   va   shu   bilan   variant   tanlash   operatori   o'z   ishini   yakunlaydi.
Shuni   esda   tutish   kerakki,   <variant   metka>si   bilan   <operator   metka>si   bir   xil
tushuncha   emas   va   variant   metkasi   metkalar   (Label)   bo'limida   ko'rsatilmasligi
kerak. Bundan tashqari, ular o'tish operatorida ishlatilishi mumkin emas.
.   Case       kun       of
dush, sesh, chor, pay, jum:      writeln('ish kuni'); shan, yaksh: writeln('dam olish kuni') end.
                        Variant tanlash operatorining tana qismiga kirish faqat   case   orqali  amalga
oshiriladi.
                        Endi   shartli   operatornng   variant   tanlash   operatori   orqali   ifodalanishini
ko'rib chiqaylik:
                       Quyidagi shartli va variant tanlash operatorlari bir-biriga mos keladi:
 
 
                         Quyidagi chala shartli va variant tanlash operatorian bir-biriga mos keladi:
 
Variant   tanlash   operatorlaridan   sanalma   tiplar   qiymatlarini   ko'rishga   qulay   holda
chop etish uchun foydalanish mumkin. Buni quyidagi misolda ko'rib chiqamiz:
 
                          Sanalma   tipli   qiymatlarni   kiritish   ancha   qiyin   masala   hisoblanib,   bu   ishni
tashkil   qilish   uchun   to'g'ridan-to'g'ri   variant   tanlash   operatoridan   foydalanish
mumkin   emas.   Ma'lumotlarni   kiritishda   asosan   qatorli   (String)   tiplarning
imkoniyatlaridan foydalaniladi.
 
3.9.3.Cheklangan tiplar
 
                        Faraz   qilaylik,   « n »   o'zgaruvchisi   dasturda   qaysidir   oyning   biror   kunini
ifodalovchi   butun   son   bo'lsin.   Bu   o'zgaruvchini   integer   tipi   bilan   e'lon   qilsak,
«n»ga   ixtiyoriy   butun   sonni   o'zlashtirish   mumkin.   Lekin,   yechilayotgan
masalaning   mohiyatiga   ko'ra   « n »ning   faqat   [1;   31]   oraliqdagi   qiymatlarigina
ma'noga   ega   xolos.   O'zgaruvchining   boshqa   qiymatga   ega   bo'lishi   uning   xato
hisoblanayotganligini yoki dasturga berilgan ma'lumotlarning xatoligini anglatadi.
Shunga   o'xshash,   dasturchi   dasturni   tuzish   davomida   ma'lum   bir   o'zgaruvchilar
qiymatlarining   o'zgarish   oraliqlari   haqida   ma'lumotga   ega   bo'ladi.   Bunday
ma'lumotlarning   dasturda   ko'rsatib   qo'yilishi,   dastur   ishining   to'g'ri
bajarilayotganligi ustidan nazorat qilib turish imkoniyatini yaratadi.                         Shunday   cheklashlarni   amalga   oshirish   uchun   Paskal   tilida   cheklangan
tiplar kiritilgan. Har bir shunday tip oldindan ma'lum bo'lgan tiplarga cheklashlar
kiritish orqali aniqlanadi.
                        Yuqorida   aytganimizdek,   cheklanma   oldindan   aniqlan gan   tipga   nisbatan
aniqlanadi.   Masalan,   (dush,   sesh,   chor,   pay,   jum,   shan,   yaksh)   sanalma   tipini
aniqlamasdan turib dush...jum cheklangan tipini kiritish mumkin emas.
                        Cheklanma   tip   ham   boshqa   tiplar   kabi   yangi   tip   aniqlash   bo'limida   yoki
o'zgaruvchilarning tiplarini e'lon qilish bo'limida aniqlanishi mumkin.
 
                          Cheklangan   "tiplarni   e’lon   qilishga   doir   bo’lgan   misollardan   yana   ko'rib
chiqaylik:
  type
   
3.10.  KOMBINATSIYALI   TIPLAR  ( YOZUVLAR )
 
                        E ' tiboringizga   yana   bir   yangi ,  boshqa   algoritmik   tillarda   mavjud   bo ' lmagan
Paskal   tilining   hosilaviy   tiplaridan   birini   —   kombinatsiyali   tipni   havola   qilamiz .
Kombinatsiyali   tipning   qiymati   ham   xuddi   massivlarniki   kabi   bir   nechta   haddan
tashkil   topadi.   Lekin   massivdan   farqli   o'laroq,   uning   har   bir   hadi   turlicha   tipli
bo'lishi   mumkin.   Bu   tipning   hadlariga   ularning   joylashgan   tartib   raqamlari   bilan
emas, balki ismlari orqali murojaat qilinadi.
Kombinatsiyali tipni odatda soddagina qilib —   yozuv-lar   deb ataladi.
Kombinatsiyali tip qiymatlari asosan murakkab, bir jinsli emas tashkil etuvchilarga
ega   bo'lgan   ob'ektlarni   ifoda-lashga   bag'ishlangan.   Bu   tipdan   amalda   turli   xil
ma'lumotlar majmuasini  yaratishda keng foydalaniladi. Masalan,  biror tashkilotda
ishlovchi   xodimlar   haqidagi   ma'lumotlar   majmuasi   —   xodimlarning   turli   xil
anketali xabarlarini o'zida jamlaydi:
                       familiyasi,
                       ismi-sharifi,
                       tug'ilgan yili—oyi—kuni,
                       yashash manzili, ishchi va uy telefon raqamlari,
                       ma'lumoti, mutaxassisligi,
                       oilaviy ahvoli,
                       harbiyga aloqadorligi va h.k.
                       Sanab o'tilgan va bitta shaxsga tegishli bo'lgan ushbu ma'lumotlarning turli
xil tipga tegishligiga ahamiyat bering:
                        telefonlar,tug'ilgan   yili—oyi—kunlari   —   butun   sonlardan,   boshqa
ma'lumotlar esa belgili qatorlardan tashkil topgan.
                        Shunday   qilib,   kombinatsiyali   tip   qiymati   —   maydonlar   deb   atalmish
chekli sondagi hadlardan tashkil topgan ma'lumotlar strukturasidir. Yozuvning har
bir maydoniga o'ziga xos ism beriladi va bu maydon qiymatining tipi ko'rsatiladi.
Bunda maydon qiymatining tipiga hech qanday  cheklashlar  qo'yilmaydi. Shuning uchun   yozuv   hadlari   o'z   navbatida   yana   yozuv   bo'lishi   mumkin.   Demak,   yozuv
aniq   ifodalangan   iyerarxik   (shajarali)   tuzilishga   ega   bo'lishi   mumkin.   Bir   xil
darajada   turgan   bitta   yozuvning   barcha   ismlari   turli   xil   bo'lishi   lozim,   xuddi
shuningdek,   turli   yozuvlar   bir   xil   ismli   maydonlarni   o'z   ichiga   olishi   mumkin.
Bunda   bu   maydonlarga   murojaat   qilishda   hech   qanday   anglashilmovchilik
bo'lmaydi, chunki murojaat tashqi yozuv orqali amalga oshiriladi.
                        Yozuvlardan   foydalanib   mukammal   dasturlar   yaratishdan   oldin   sodda
hollarda uning imkoniyatlari bilan tani-shib chiqaylik.
                        Oddiy  kombinatsiyali  tiplar.   Soddalik  uchun,  bir   avlodli   struktura  orqali
yozilgan kombinatsiyali tip ma'lu-motlari bilan tanishib chiqaylik.
                        Yozuvlarni   aniqlash   (kiritish)   quyidagi   sintaksis   qoida   bo'yicha   amalga
oshiriladi:
                       <kombinatsiyali tipni aniqlash>::= record < maydon-lar ro'yxati> end
                       <maydonlar ro'yxati>::=< >
yozuv seksiyasi>{;<'yozuv seksiyasi>}
                       <"yozuv seksiyasi>::=<maydon ismi>{,<maydon ismi>}: <tip>
                        Bu   tipni   quyidagicha   tushuntirish   mumkin :   CompLex   tipiga   tegishli
ixtiyoriy   qiymat   ikkita   hadli   ( maydonli )   yozuvdan   tashkil   topgan   strukturadir .
Yozuv maydonlari re va im nomlari bilan ataladi va ular real tipiga tegishlidir.
                        re va im bir xil tipli bo'lgani uchun ularni bitta ro'yxatga birlashtirib yozsa
ham bo'ladi:
                        type                       Endi   barcha   kompleks   ( mavhum )   qiymatlar   qabul   qiluvchi
o ' zgaruvchilarning   tiplarini   var   bo ' limida   aniqlash   mumkin :
                        Bu   tipdagi   o ' zgaruvchilarga   biror   qiymat   o ' zlashtirish   uchun   ularning
maydonlarini   tashkil   etuvchilarga   qiymat   berish   kerak   bo ' ladi .
Masalan,   x   o'zgaruvchiga   4,5   +   + i   *   6,75   qiymatni   o'zlashtirish   uchun,   re   va   im
ismli maydonlarga qiymat berish kerak:
                        Bir   xil   kombinatsiyali   tipga   tegishli   o ' zgaruvchilar   uchun   faqat   o ' zlashtirish
amaligina   o ' rinli   xolos :
                        Yozuvlarga   doir   quyidagi   misol   ustida   ular   bilan   ishlash   malakamizni
oshiraylik:
Misol:   x   va   у   mavhum   sonlari   ustida   qo'shish,   ayirish   va   ko'paytirish   amallarini
bajarish dasturini tuzing.
   
                        Iyerarxik   ( shajarali )   yozuvlar .   Oldingi   mavzuda   biz   kiritgan
yozuvlarning   maydonlari   skalyar   ( o ' zgarmas )   miqdorlar   edi .   Paskal   tilida   esa ,
yuqorida     ta ' kidlaganimizdek ,   yozuv   maydonining   tiplariga   hech   qanday
cheklashlar   qo ' yilmaydi .   Shuning   uchun   yozuvning   hadlari   yana   yozuvlardan ,
ularning   hadlari   ham   o ' z   navbatida   yozuvlardan   tashkil   topishi   mumkin .
                        Yozuv maydonining tipi ikki xil usul bilan aniqlanishi mumkin:
                       ■      to'g'ridan-to'g'ri kombinatsiyali tip ichida;
                       ■      oldindan aniqlangan tiplar orqali.
                        Iyerarxik   (avlodli)   struktura   bo'yicha   aniqlangan   yozuvdagi   eng   past
darajada faqat oddiy skalyar tiplargina qatnashadi. Avlod darajasining o'sib borishi
davomida tiplarning murakkablik darajasi ham ortib boradi.
                       Misol sifatida «Ilmiy_xodim» degan yozuvli tipni ko'rib chiqaylik. Bu tipni
kiritishdan   avval   bir   nechta   yordamchi   tiplarni   aniqlab   olamiz.   Bu   tiplar   asosiy
«Ilmiy_xodim» tipini aniqlashda kerak bo'ladi:                      
 
                          Bog ' lama   operatori .   Oldingi   mavzuda   havola   qilingan   dasturdan   ko ' rinib
turibdiki ,   yozuvlar   bilan   ishlash   dasturning   matnini   juda   uzun   qilib   yuborib ,   har
doim   yozuvning   to ' liq   ismlarini   yozishga   to ' g ' ri   keladi .   Jumladan ,   bu   misolda   18
marta   « shaxs »   so ' zi   takrorlandi .   Shunday   takrorlanuvchi   yozuv   hadlarini
kamaytirish   maqsadida   bog ' lama   operatori   kiritilgan :
                        <bog'lama operatori>::=<sarlavha> <operator>
                          <sarlavha>::=with<yozuvli o'zgaruvchilar ro'yxati> do
                        <yozuvli   o'zgaruvchilar   ro'yxati>::=<yozuvli   o'zgaruvchi>{,<yozuvli
o'zgaruvchi>}
                       Endi bu operatorlarni amalda ishlatilishini ko'rib chiqamiz:
                       with       R       do       S
  bu yerda   with         va         do   —   xizmatchi so'zlar;
                       R    -     kombinatsiyali tipga tegishli o'zgaruvchi;
                       S — ixtiyoriy operator.
                        Bog'lama   operatorining   bajarilishi   S   operatorining   bajarilishi   demakdir.
Faqat S operatorining ichki qismida R.p yozuvi o'rniga ( p— maydon ismi) faqat p
yoziladi xolos.
Masalan,   oldingi   misolimiz   uchun         with         shaxs   do   operatoridan   keyin
o'zgaruvchilarning qiymatlarini yozsak: fish.ism :='Ahmad';      va h.k.
                        Bu   yerda   ko'rinib   turibdiki,   dastur   matni   o'zlashtirish   operatorining   chap
tomonidagi   ismlarda   «Shaxs»   so'zi   tushirib   qoldirilganligi   sababli   ancha
ixchamlashdi.
                       Operatorning ishlashini yaxshiroq tushunish uchun qisqaroq dasturni ko'rib
chiqaylik.
                        Quyidagi o'zgaruvchilarning qiymatlar tiplarini e'lon qilish bo'limi mavjud
bo'lsin:  
 
3.11. TO'PLAMLI TIPLAR
 
3.11.1. Paskal tilida to'plamlarni belgilash
 
                       To'plam tushunchasi matematika kursidan yaxshi ma'lum bo'lib, dasturlash
tillarida   ham   keng   ma'noda   ishlatiladi.   To'plamning   hadlari   bir   xil   tipli   va   chekli
sondagi   bo'lishi   kerak.   To'plamdagi   hadlarning   soni     256     tadan   ortmasligi   yoki
umuman to'plam bo'sh bo'lishi ham mumkin. To'plamning hadlari o'rta qavs ichiga
olinib, o'zaro vergul bilan ajratilib yoziladi.
                        Paskal   tilida   to'plam   tiplari   sifatida   oldingi   mavzularda   ko'rib   chiqilgan
ixtiyoriy skalyar tip qabul qilinishi mumkin, faqat Real tipini qabul qilishi mumkin
emas.
                          To ' plamlarning   umumiy   nazariyasidagi   kabi   Paskalda   ham   to ' plam
hadlarining   tartib   joyi   hech   qanday   vazifa   bajarmaydi   va   har   bir   had   faqat   bir   marta
hisobga   olinadi :
                        l)[true, false] va [false, true] to'plamlari ekvivalentdir;
                    2)   [1,2,3,2..5,6,4,3]   to'plam   [1,2,3,4,5,6]   to'plamga   ekvivalent,   u   esa   o'z
navbatida [1..6] to'plamiga ekvivalent.
                       Noto'g'ri yozilgan to'plamlardan namunalar:
                       1) [5.3, 2.5] — to'plam hadlari Real tipidagi son bo'lishi mumkin emas;
                       2) [9, 7, «P»,0] — to'plam hadlari bir xil tipli bo'lishi lozim edi;
                        3)   ['abc'.'Axad']   —   to'plam   hadlari   hosilaviy   tiplarga   tegishli   bo'lishi
mumkin emas.
                        To'plamlar   ustidagi   munosabat   amallarining   quyidagi   jadvalini
e'tiboringizga havola qilamiz:  
 
 
 
 
3.11.2.To'plamlar ustida amallar
 
   
3.11.3.To'plamli tipni berish va to'plamli o'zgaruvchilar
 
                       To'plamli tiplarni aniqlash quyidagicha amalga oshiriladi:
                       Set	 of   <to'plam tipi>;
bu yerda     Set,
 of   — Paskal tilining xizmatchi so'zlari.
     
 
3.12.  MASSIVLAR    ( JADVAL     KATTALIKLAR )
 
                        Biz   shu   paytgacha   qiymatlarning   oddiy  ( skalyar )  tiplaridan   foydalanib ,  turli
xil   dasturlar   tuzishni   o ' rgandik .   Skalyar   tipga   tegishli   har   bir   qiymat   yagona
ma ' lumot   hisoblanib ,   trivial   ( qat ' iy )   tuzilishga   egadir .   Amalda   esa ,   turli   xil
hosilaviy   tiplar   bilan   ishlashga ,   ulardan   foydalanib   murakkab   dasturlar   yaratishga
to ' g ' ri   keladi .  Bu   tiplarga   tegishli   qiymatlarning   har   biri   trivial   bo ' lmagan   tuzilishga
ega ,  ya ' ni   bu   qiymatlar   o ' z   navbatida   yana   bir   nechta     qiymatlardan   tashkil   topadi .                         Endi   shunday   tiplardan   biri   bo'lgan,   dasturlashda   eng   ko'p   qo'llaniladigan
dastur ob'ekti —   massivlar   bilan tanishib chiqamiz.
 
  3.12.1. Bir o'lchamli massivlar
 
                       Massiv   — bu bir xil tipli, chekli qiymatlarning tartiblangan to'plamidir.
Massivlarga   misol   sifatida   matematika   kursidan   ma'lum   bo'lgan   vektorlar,
matritsalar va tenzorlarni ko'rsatish mumkin.
                        Dasturda   ishlatiluvchi   barcha   massivlarga   o'ziga   xos   ism   berish   kerak.
Massivning   har   bir   hadiga   murojaat   esa   uning   nomi   va   o'rta   qavs   ichiga   olib
yozilgan tartib hadi orqali amalga oshiriladi:
                       <massiv nomi>[<indeks>]                                                                                             ;
bu   yerda   <indeks>   —   massiv   hadining   joylashgan   o'rnini   anglatuvchi   tartib
qiymati.
.                       Umuman   olganda,   <indeks>   o'rnida   <ifoda>   qatnashishi   ham   mumkin.
Indeksni   ifodalovchi   ifodaning   tipini   —   indeks	
 tipi   deb   ataladi.   Indeks   tipining
qiymatlar   to'plami   albatta   raqamlangan   to'plam   bo'lishi,   shu   bilan   bir   qatotda
massiv hadlari sonini aniqlashi va ularning tartibini belgilashi kerak.
                        Massivlarni  e'lon qilishda indeks tipi bilan bir  qatorda massiv hadlarining
tipi ham ko'rsatilishi kerak. Bir o'lcha mli massivni e'lon qilish quyidagicha amalga
oshiriladi:
array [<indeks tipi>] of <massiv hadining tipi>;
                       Ko'pincha <indeks tipi> sifatida cheklanma tiplardan foydalaniladi, chunki
bu tipga tegishli to'plam tartiblan-gan va qat'iy raqamlangandir. Misol uchun, 100
ta haqiqiy sonli hadlardan iborat massiv quyidagicha e'lon qilinadi:
array [1.. 100] of real;
Massivlarni   e'lon   qilish   haqida   to'liqroq   ma'lumot   berish   uchun   turli   tipdagi
indekslarga oid misollarni e'tiboringizga havola qilamiz:
                                                                                                                                                                                               
      Endi   massivlar   ustida   tipik   amallar   bajaruvchi   bir   nechta   dastur   bilan   tanishib
chiqaylik.
 
   
  Algoritmning   5   ta   asosiy   xossasi   bor.   1.   Diskretlilik   (Cheklilik).   Bu   xossaning
mazmuni   algoritmlarni   doimo   chekli   qadamlardan   iborat   qilib   bo‘laklash
imkoniyati   mavjudligida.   Ya’ni   uni   chekli   sondagi   oddiy   ko‘rsatmalar   ketma-
ketligi   shaklida   ifodalash   mumkin.   Agar   kuzatilayotgan   jarayonni   chekli
qadamlardan   iborat   qilib   qo‘llay   olmasak,   uni   algoritm   deb   bo‘lmaydi.   2.
Tushunarlilik.   Biz   kundalik   hayotimizda   berilgan   algoritmlar   bilan   ishlayotgan
elektron soatlar, mashinalar, dastgohlar, kompyuterlar, turli avtomatik va mexanik
qurilmalarni   kuzatamiz.   Ijrochiga   tavsiya   etilayotgan   ko‘rsatmalar   uning   uchun
tushinarli mazmunda bo‘lishi shart, aks holda, ijrochi oddiygina amalni ham bajara
olmaydi.   Bundan   tashqari,   ijrochi   har   qanday   amalni   bajara   olmasligi   ham
mumkin. Har bir ijrochining bajarishi mumkin bo‘lgan ko‘rsatmalar yoki buyruqlar
majmuasi   mavjud,   u   ijrochining   ko‘rsatmalar   tizimi   (sistemasi)   deyiladi.   Demak,
ijrochi   uchun   berilayotgan   har   bir   ko‘rsatma   ijrochining   ko‘rsatmalar   tizimiga
mansub bo‘lishi lozim. 9 Ko‘rsatmalarni ijrochining ko‘rsatmalar tizimiga tegishli
bo‘ladigan qilib ifodalay olishimiz muhim ahamiyatga ega. Masalan, quyi sinfning
a’lochi   o‘quvchisi   "son   kvadratga   oshirilsin"   degan   ko‘rsatmani   tushunmasligi
natijasida   bajara   olmaydi,   lekin   "son   o‘zini   o‘ziga   ko‘paytirilsin"   shaklidagi
ko‘rsatmani   bemalol   bajaradi,   chunki   u   ko‘rsatma   mazmunidan   ko‘paytirish
amalini   bajarish   kerakligini   anglaydi.   3.   Aniqlik.   Ijrochiga   berilayotgan ko‘rsatmalar   aniq va  mazmunli   bo‘lishi   zarur.  Chunki   ko‘rsatmadagi  noaniqliklar
mo‘ljaldagi maqsadga erishishga olib kelmaydi. Inson uchun tushunarli bo‘lgan "3-
4   marta   silkitilsin",   "5-10   daqiqa   qizdirilsin",   "1-2   qoshiq   solinsin",
"tenglamalardan biri echilsin" kabi noaniq ko‘rsatmalar kompyuterni qiyin ahvolga
solib   qo‘yadi.   Bundan   tashqari,   ko‘rsatmalarning   qaysi   ketma-ketlikda   bajarilishi
ham   muhim   ahamiyatga   ega.   Demak,   ko‘rsatmalar   aniq   berilishi   va   faqat
algoritmda   ko‘rsatilgan   tartibda   bajarilishi   shart   ekan.   4.   Ommaviylik.   Har   bir
algoritm   mazmuniga   ko‘ra   bir   turdagi   masalalarning   barchasi   uchun   ham   o‘rinli
bo‘lishi   kerak.   Ya’ni   masaladagi   boshlang‘ich   ma’lumotlar   qanday   bo‘lishidan
qat’i   nazar   algoritm   shu   xildagi   har   qanday   masalani   yechishga   yaroqli   bo‘lishi
kerak. Masalan, ikki oddiy kasrning umumiy maxrajini topish algoritmi, kasrlarni
turlicha   o‘zgartirib   bersangiz   ham   ularning   umumiy   maxrajlarini   aniqlab
beraveradi. Yoki uchburchakning yuzini topish algoritmi, uchburchakning qanday
bo‘lishidan qat’i nazar, uning yuzasini hisoblab beraveradi. 5. Natijaviylik. Har bir
algoritm   chekli   sondagi   qadamlardan   so‘ng,   albatta,   natija   berishi   shart.
Bajariladigan   amallar   ko‘p   bo‘lsa   ham   baribir   natijaga   olib   kelishi   kerak.   Chekli
qadamdan   so‘ng   qo‘yilgan   masalae   chimga   ega   emasligini   aniqlash   ham   natija
hisoblanadi.   Agar   ko‘rilayotgan   jarayon   cheksiz   davom   etib   natija   bermasa,   uni
algoritm deb atay olmaymiz.
Yuqorida   qayd   etganimizdek,   qo‘yilgan   biror   masalani   kompyuterda   yechish
uchun,  avval  uning  matematik  modelini,  keyin  esa   yechish   algoritmi  va  dasturini
tuzish kerak bo‘ladi. Ushbu uchlikda algoritm bloki muhim ahamiyatga ega. Endi
algoritm   tushunchasining   ta’rifi   va   xossalarini   bayon   qilamiz.   Masala   echimini
cheklangan   qadamlar   natijasida   hosil   qiladigan,   oldindan   tayinlangan   va   aniq
belgilangan   qoidalar   yoki   buyruqlar   ketma-ketligi   algoritm   deyiladi.   Soddaroq
qilib   aytganda,   algoritm   bu   -   oldimizga   qo‘yilgan   masalani   yechish   uchun   zarur
bo‘lgan   amallar   ketma-ketligidir.   Algoritm   tuzish   -   bu   dasturlashdir,   algoritmni
tuzuvchilar esa dasturchilardir. Masalan, ax 2 +bx+c=0 kvadrat tenglamani yechish
uchun   quyidagi   amallar   ketma-ketligi   zarur   bo‘ladi:   1.   a,   b,   c   koeffitsiyentlar berilgan bo‘lsin. 2. Berilgan a, b, c koeffitsiyentlar yordamida discriminant. D= b2
-4ac hisoblanadi. 3. D>0 bo‘lsa X ( b D) ( *2/ a) 21 = − ± - hisoblanadi. 4. D
Faqat   ketma-ket   bajariladigan   amallardan   tashkil   topgan   algoritmlarga   -   chiziqli
algoritmlar   deyiladi.   Bunday   algoritmni   ifodalash   uchun   ketma-ketlik   strukturasi
ishlatiladi.   Strukturada   bajariladigan   amal   mos   keluvchi   shakl   bilan   ko‘rsatiladi.
Chiziqli  algoritmlar  blok-sxemasining umumiy tuzilishi  1.4-rasmda keltirilgan. 1-
misol. Uchburchak tomonlarining uzunligi bilan berilgan. Uchburchakka ichki r va
tashqi R chizilgan aylanalar radiuslarini hisoblang. Ichki chizilgan aylana radiusi r
=   (a+b+c)/2S,   tashqi   chizilgan   aylana   radiusi   R=   4S   abc   formulalar   orqali
hisoblanadi. Bu yerda S - uchburchakning yuzi, a, b, c – uchburchak tomonlarining
uzunliklari.  Masala   echimining  blok-sxemasi  1.5-rasmda  keltirilgan.  14  1.5-rasm.
Uchburchakka   ichki   va   tashqi   chizilgan   aylanalar   radiuslarini   hisoblash
bloksxemasi 2-misol. Quyida keltirilgan munosabatni hisoblash algoritmini ko‘rib
chiqaylik. Jarayon amallarni ketma-ket bajarilishidan iborat. x z sin(x y) 2 = + + ,
bu yerda x = cos ( a – b ), y = ln ( a2 - x 2 ), a = 0.7, b = 2.1. Bunda: a, b - aniq
qiymatga   ega   bo‘lgan   boshlang‘ich   ma’lumotlar;   x,   y   -   oraliq   ma’lumotlar;   z   -
natija.   Masalani   yechish   jarayoni   chiziqli   hisoblanadi,   chunki   boshlang‘ich
ma’lumotlar   kiritilgach,   munosabatlarning   qiymati   dasturda   joylashgan   tartibda
hisoblanadi,   ya’ni   dastlab   x,   so‘ng   -   y   qiymati   va   nihoyat   z   natija   hisoblanadi.
Mazkur   jarayonning   blok-sxemasi   1.6-rasmda   keltirilgan.   15   1.6-rasm.   Hisoblash
blok-sxemasi   1.6.   Tarmoqlanuvchi   algoritmlar   Agar   hisoblash   jarayoni   biror-bir
berilgan   shartning   bajarilishiga   qarab   turli   tarmoqlar   bo‘yicha   davom   ettirilsa   va
hisoblash   jarayonida   har   bir   tarmoq   faqat   bir   marta   bajarilsa,   bunday   hisoblash
jarayonlari   tarmoqlanuvchi   algoritmlar   deyiladi.   Tarmoqlanuvchi   algoritmlarni
tasvirlash   uchun   “ayri”   tuzilmasi   ishlatiladi.   Tarmoqlanuvchi   tuzilmasi   berilgan
shartning   bajarilishiga   qarab   ko‘rsatilgan   tarmoqdan   faqat   bittasining   bajarilishi
ta’minlanadi   (1.7-rasm).   1.7-rasm.   Tarmoqlanishning   umumiy   ko‘rinishi   16
Berilgan   R-shart   romb   figurasi   ichida   tasvirlanadi.   Agar   shart   bajarilsa,   "ha"
tarmoq bo‘yicha A-amal, aks holda (shart bajarilmasa) "yo‘q" tarmoq bo‘yicha V-
amal bajariladi. 1-misol. Tarmoqlanuvchi algoritmga misol sifatida quyidagi sodda masala keltiriladi:            ≥ = 2 , . , 0 2 x aks holda x agar x   у   Natijaviy qiymat y
berilgan x ning qiytmatiga bog‘liq holda bo‘ladi: agar x≥0 shart rost bo‘lsa, tarmoq
bo‘yicha   y   =   x   2   munosabatning   qiymati,   aks   holda,   y   =   2*x   munosabatning
qiymati   hisoblanadi.   Bu   masala   bajarilishining   so‘z   bilan   ifodalangan   algoritmi
quyidagicha: agar ( x ≥ 0 ) shart bajarilsa, u holda u=x2 , aks holda u=2*x. Masala
echimining   blok-sxemasi   1.8-rasmda   keltirilgan.   1.8-rasm.   Interval   ko‘rinishidagi
funksiya  qiymatini  hisoblash  blok-sxemasi  Ko‘pgina masalalarni  yechishda, shart
asosida   tarmoqlanuvchi   algoritmning   ikki   tarmog‘idan   biri,   ya’ni   «rost»   yoki
«yolg‘on»ning   bajarilishi   etarli   bo‘ladi.   Bu   holat   tarmoqlanuvchi   algoritmning
xususiy   holi   sifatida   qisqartirilgan   strukturasi   deb   atash   mumkin.   Qisqartirilgan
struktura   blok-sxemasi   quyidagi   ko‘rinishga   ega   (1.9-rasm).   17   1.9-rasm.
Qisqartirilgan   strukturaning   umumiy   ko‘rinishi   2-misol.   Berilgan   x,   u,   z   sonlari
ichidan   eng   kattasini   aniqlang.   Ushbu   masalaga   mos   matematik   modelni
quyidagicha   tasvirlash   mumkin:   p   =   max{x,   y,z}.   Berilgan   x,   y,   z   sonlardan   eng
kattasi   p   deb   belgilangan.   So‘zlar   orqali   ifodalangan   algoritm   asosida   masala
echimini   quydagicha   tasvirlash   mumkin:   1)   kiritish   (x,   y,   z);   2)   agar   (   x   >   u   )
bo‘lsa,  u  holda  p = x,  aks  holda  p =  u;  3)  agar   (r  <  z )  bo‘lsa,  u  holda  p  = z;   4)
muhrlash (r). Keltirilgan algoritmga mos blok-sxema 1.10-rasmda tasvirlangan. Bu
algoritmda, avva, x va y o‘zaro solishtiriladi, katta qiymatligi ega r ga yuklanadi.
So‘ngra x va y larning kattasi deb aniqlangan r va z o‘zaro solishtiriladi. Agar r < z
sharti   bajarilsa,   u   holda   eng   katta   qiymat   p=   z   deb   olinadi,   aks   holda   boshqarish
navbatdagi amalga uzatiladi. Natijada p da uchta qiymatdan eng kattasi aniqlanadi.
Ushbu masalani yechish algoritmining yana bir usulini ko‘rib chiqamiz. 1) kiritish
(x, y, z); 2) p = x; 3) agar (p < y ) bo‘lsa, u holda p= y; 4) agar (p < z ) bo‘lsa, u
holda   p=   z;   5)   muhrlash   (r).   Bu   algoritmga   mos   blok-sxema   1.11-rasmda
tasvirlangan. Bu usulga asosan, avvalo sonlar ichida birinchisi eng kattasi deb faraz
qilinadi,   ya’ni   p   =   x.   So‘ngra   har   bir   qadamda   navbatdagi   son   –   r   ning   qiymati
bilan   solishtiriladi   va   shart   bajarilsa,   u   eng   kattasi   deb   qabul   qilinadi.   Bu
algoritmning afzalligi shundaki, uning asosida uchta va undan ko‘p sonlar ichidan
eng   kattasini   (kichigini)   topishning   qulay   imkoniyati   mavjud.   19   1.11-rasm. Hisoblash   blok-sxemasi   3-misol.   Quyidagi   ifoda   bilan   berilgan   munosabatni
hisoblang [2, 52 b.].                + + < − > = , . , ,0 , ,0 a b aks holda x a agar x b x
agar x Y Bu misol natija x ning qiymatiga bog‘liq shart bilan berilgan va masala
quyidagicha   so‘zlar   orqali   ifodalangan   algoritm   asosida   aniqlanadi:   agar   x   >   0
bo‘lsa, u holda u = b - x bo‘ladi, aks holda; agar x < 0 bo‘lsa, u holda u = x + a, aks
holda   u   =   a+   b.   Avvalo,   birinchi   shart   tekshiriladi   va   agar   u   bajarilsa,   y   =   b   -   x
amal   bajariladi,   aks   holda            +   +   <   =   ,   .   ,   ,0   a   b   aks   holda   x   a   agar   x   Y
munosabat hisoblanadi. Bu fikrlar quyidagi blok-sxemada o‘z aksini topgan (1.12-
rasm). 20 1.12-rasm. Hisoblash blok-sxemasi 1.7. Takrorlanuvchi algoritmlar Agar
biror masalani yechish uchun zarur bo‘lgan amallar ketma-ketligining ma’lum bir
qismi   biror   parametrga   bog‘liq   holda   ko‘p   marta   qayta   bajarilsa,   bunday   jarayon
takrorlanuvchi   algoritm   deyiladi.   Takrorlanuvchi   algoritmlarga   misol   sifatida
odatda   qatorlarning   yig‘indisi   yoki   ko‘paytmasini   hisoblash   jarayonlarini   qarash
mumkin. 1-misol. Birdan n gacha bo‘lgan natural sonlarning yig‘indisini hisoblash
algoritmini tuzaylik. Masalaning matematik modeli quyidagicha: ∑= = + + + + = n
i   S   n   i   1   1   2   3   ...   Bu   yig‘indini   hisoblash   uchun,   avvalo,   natiga   boshlangich
qiymatini   S=0   va   indeksning   boshlangich   qiymatini   i   =1   deb   olamiz   va   joriy
amallar S = S + i va i = i + 1 hisoblanadi. Bu erda birinchi va ikkinchi qadamlar
uchun yig‘indi 21 hisoblandi va keyingi qadamda i parametr yana bittaga orttiriladi
va navbatdagi qiymat avvalgi yig‘indi S ga qo‘shiladi. Mazkur jarayon shu tartibda
indeksning joriy qiymati i≤ n sharti bajarilmaguncha davom ettiriladi va natijada,
izlangan   yig‘indiga   ega   bo‘lamiz.   Ushbu   fikrlarni   quyidagi   so‘zlar   orqali
ifodalangan algoritm  bilan ifodalash mumkin:  1) kiritish (n);  2)  S= 0 - natijaning
boshlang‘ich   qiymati;   3)   i=   1   -   indeksning   boshlang‘ich   qiymati;   4)   S=   S   +   i   -
natijaning   joriy   qiymatini   hisoblang;   5)   i=   i+   1-   indeksning   joriy   qiymatini
hisoblang; 6) agar (i ≤ n) sharti tekshirilsin va u bajarilsa => (4) ; 7) muhrlash (S).
Bu jarayonga mos keladigan blok-sxemaning ko‘rinishi 1.13-rasmda tasvirlangan.
1.13-rasm.   1   dan   n-gacha   bo‘lgan   sonlar   yig‘indisini   hisoblash   blok-sxemasi   22
Yuqorida   keltirilgan   so‘zlar   asosida   ifodalangan   algoritm   va   blok-sxemadan
ko‘rinib turibdiki, amallar ketma-ketligining ma’lum qismi parametr i ga nisbatan n marta takrorlanadi. 2-misol. Quyidagi ko‘paytmani hisoblash algoritmi va blok-
sxemasini   tuzaylik:   P=   1 ⋅   2   ⋅   3 ⋅⋅⋅ n   =   n!   (odatda,   1   dan   n   gacha   bo‘lgan   natural
sonlarning   ko‘paytmasi   n!   ko‘rinishda   belgilanadi   va   “en”   faktorial   deb   ataladi:
P=n! ( jarayonning matematik modeli: ∏ = = n i P i 1 ) [2, 57-58 b.]. Ko‘paytmani
hosil   qilish   algoritmi   ham   yig‘indini   hosil   qilish   algoritmiga   o‘xshash,   faqat
ko‘paytmani hosil qilish uchun, avvalo, i=1 da P= 1 deb olinadi, so‘ngra i= i +1 da
P=   P ∗ i   munosabatlar   hisoblanadi.   Keyingi   qadamda   i   parametrning   qiymati   yana
bittaga   orttiriladi   va   navbatdagi   qiymat   avvalgi   hosil   bo‘lgan   ko‘paytma   -   P   ga
ko‘paytiriladi.   Bu   jarayon   shu   tartibda   to   i   ≤   n   sharti   bajarilmaguncha   davom
ettiriladi   va   natijaviy   ko‘paytmaning   qiymatiga   ega   bo‘lamiz.   Quyidagi   so‘zlar
orqali ifodalangan algoritmda bu fikrlar o‘z aksini topgan: 1) kiritish (n); 2) P= 1 -
natijaning boshlang‘ich qiymati; 3) i= 1 - indeksning boshlang‘ich qiymati; 4) P=
P ∗ i   -   natijaning   joriy   qiymatini   hisoblash;   5)   i=   i+1   -   indeksning   joriy   qiymatini
hisoblash;   6)   agar   (i   <=   n)   shart   bajarilsa,   u   holda   =>   (4);   7)   muhrlash   (P).   Bu
algoritmga mos blok-sxema 1.14-rasmda keltirilgan. 23 1.14-rasm. 1 dan n gacha
bo‘lgan  sonlar   ko‘paytmasini  hisoblash   blok-sxemasi   Yuqorida  ko‘rilgan  yig‘indi
va   ko‘paytmalarning   blok-sxemalaridagi   takrorlanuvchi   qismlariga   (punktir
chiziqlar   ichiga   olingan)   1.14   rasmdagi   sharti   keyin   berilgan   takrorlanuvchi
struktura   mos   kelishini   ko‘rish   mumkin.   3-misol.   Yuqoridagi   blok-sxemalarda
shartni oldin tekshiriladigan holatda chizish mumkin edi. Masalan, ∑ = = n i S i 1
yig‘indini   xisoblash   algoritmi   tadqiqi   keltiriladi.   Bu   masalani   yechishda
algoritmning takrorlanuvchi  qismiga quyidagi sharti oldin berilgan takrorlanuvchi
strukturaning   mos   kelishini   ko‘rish   mumkin.   1)   kiritish   (n);   2)   S=0;   3)   i   =   0;   4)
agar ( i > n ) => (8); 5) i = i + 1; 6) S = S + i ; 7)shartsiz o‘tish=> (4); 8) muhrlash
(S). Bu algoritmga mos blok-sxema 1.15- rasmda keltirilgan. 24 1.15-rasm. 1 dan n
gacha   bo‘lgan   sonlar   yig‘indisini   hisoblash   blok-sxemasi   4-misol.   Haqiqiy   x
sonining n chi darajasini hisoblash masalasi ko‘riladi. Uning matematik modeli: n
q   =   x   ko‘rinishga   ega.   Takrorlanuvchi   jarayonni   tashkil   etish   quyidagidan   farqli,
yuqoridagilar   bilan   bir   xil:   -   ko‘paytirish   jarayoni   uchun   boshlang‘ich   qiymat
berilishi:   q   =   1   ;   -   joriy   natijani   hisoblash:   q   =   q   *   x   ifoda   bo‘yicha   amalga oshiriladi.   Shunday   qilib,   x   ning   n   chi   darajasini   hisoblash   uchun   takrorlanuvchi
jarayonni   tashkil   etish   blok-sxemasi   1.16-rasmda   keltirilgan.   25   1.16-rasm.
Hisoblash blok-sxemasi 5-misol. Quyidagi munosabatni hisoblash kerak bo‘lsin [2,
55-56  b.]:   ∑= =  n i  i   i  x  S 1  !  . Munosabatni   ochib, quyidagi   ko‘rinishda  yozish
mumkin:   s   =   x   1   /1!   +   x   2   /2!   +   …   +   xn   /   n!   .   Masalani   yechish   algoritmida
boshlang‘ich qiymat sifatida s=0 ni olamiz, chunki ifodada yig‘indi belgisi mavjud.
Yig‘indi belgisi ostidagi munosabat kasr sonni anglatadi: suratda - x i , mahrajda - i
!. Ularning har biri uchun boshlang‘ich va joriy munosabatlar shakllantiriladi: surat
mahraj natija boshlang‘ich munosabat q = 1 p = 1 s=0 joriy munosabat q = q * x p
=   p   *   i   s   =   s   +   q   /   p   26   1.17-rasm.   Hisoblash   blok-sxemasi   Bu   jarayonni
shakllantirish   uchun   i   indeks-parametri   ishlatiladi.   Indeks-parametrni   boshqarish
amallari quyidagicha: a) i = 1 – parametrning boshlang‘ich qiymati, b) i = i + 1 –
parametrning   orttirmasi   (orttirma   h=1),   c)   i   ≤   n   –   jarayon   yakunlanish   sharti.
Bunga   muvofiq,   masalani   yechish   blok-sxemasi   quyidagi   1.17-rasmdagi
ko‘rinishga   ega   bo‘ladi.   6-misol.   A={ai}   (i=1,   2,   …,   n)   massiv   elementlarining
yig‘indisini  hisoblash jarayonini  aks ettiradigan algoritm  yarating. 27 Masalaning
matematik modeli quyidagidan iborat: ∑= = n i i S a 1 . Yig‘indini hisoblash uchun
S o‘zgaruvchidan foydalanamiz va uning boshlang‘ich qiymati deb S = 0 olinadi.
So‘ngra indeksning i = 1 qiymatidan boshlab, uning i = i + 1 orttirmasi bilan to ( i
<= n ) shart bajarilguncha S = S + a i munosabat  qiymati  ketma-ket hisoblanadi.
Quyidagi   algoritmda   jarayon   amallari   bajarilishi   ketma-ketligi   keltiriladi:   1)
kiritish (n, a i ); 2) S = 0, 3) i = 1, 4) S = S + a i , 5) i = i + 1, 6) agar ( i <= n ) shart
bajarilsa,   u   holda   =>   (4),   7)   muhrlash   (S)   .   7-misol.   Massiv   elementlari   o‘rta
qiymatini   hisoblash.   Masalaning   matematik   modeli   :   ∑=   =   n   i   i   a   n   Ð   1   .   1
Yuqoridagi   masaladan   farqi   –   elementlar   yig‘indisini   elementlar   soniga   bo‘lish
amali bilan algoritm to‘ldiriladi, ya’ni: 1) kiritish (n, a i ); 2) S = 0; 3) i = 1; 4) S =
S + a i ; 5) i = i + 1; 6) agar ( i <= n ) shart bajarilsa, u xolda => (4); 7) P =S / n ; 8)
muhrlash (P) . 8-misol. Massiv elementlari qiymatlarining ko‘paytmasini hisoblash
algoritmini tuzing. Masalaning matematik modeli quyidagidan iborat: ∏= = n i P
ai   1   .   Hisoblash   jarayoni   yuqoridagiga   o‘xshash   bo‘ladi,   faqat   ko‘paytmaning   28 boshlang‘ich   qiymati   R   =   1   va   joriy   amal   R   =   R   *   ai   bo‘ladi.   Bu   jarayonning
so‘zlar orqali ifodalangan algoritmi quyidagicha: 1) kiritish (n, ai ); 2) R = 1; 3) i =
1; 4) R = R * ai ; 5) i = i + 1; 6) agar ( i <= n ) shart bajarilsa, u holda => (4) 7)
muhrlash (R) .
Algoritm hozirgi zam on m ate m atik a sin in g eng k e n g tushunchalaridan biri
hisoblanadi. Algoritm (a lg o rifm ) s o ‘zi o ‘rta a s r l a r d a paydo b o 'lg a n
bo'lib, buyuk m utafakkir  bobokalonim  iz Al-X orazm  iyning (783— 855) ishlari
bilan yevropaliklarning birinchi b o r tanishishi bilan bog'liqdir. B u ish lar ularda
juda ch u q u r taassurot qoldirib algoritm (algorithm i) so'zining kelib chiqishiga
sabab bo'ldiki, u A l-X orazm iy ismining lotincha aytilishidir. U p a y tla r d a bu s
o ‘z a ra b la rd a qo‘lla n ilad ig a n o*nlik sanoq tizim i (sistem asi) va bu sanoq
tizimida hisoblash usulini b ild ira r edi. S h u n i t a ’k id la s h lozimki, y e v ro -
paliklar tom onidan arab san o q tizim ining A l-X orazm iy ishlari orqali o ‘z la s h
tirilis h ig a , k e y in c h a lik hisoblash u s u llarining rivojlanishiga katta tu rtk i
bo'lg   an   .   Hozirgi   paytda   o'nlik   san   oq   tizim   ida   arifmetik   am   allarnibajarish
usullari hisoblash algoritm lariga soddagina m isol bo‘la oladi xolos. H ozirgi z a m
o n n u q t a i n azarid an a l g o   ritm tushunchasi n im a n i ifodalaydi? M a ’lum
ki,   inson   k   u   n   -   dalik   turm   ushida   turli-tum   an   ishlarni   bajaradi.   Har   b   ir   ishni
bajarishda e s a bir qancha elem entar (mayda) ishlarni k etm a-k et a m a l g a o s h
ir is h g a t o ‘g ‘ri keladi. M a n a s h u ketm a-ketlikning o ‘zi b a ja rila d ig a n is
h n in g a lg o ritm id ir. A m m o bu k e tm a -k e tlik k a e ’t i b o r b e rs a k , biz
ijro e t a y o t g a n e lem entar ishlar m a ’lum q o id a b o 'y ic h a bajarilishi k e r
a k bo'lgan ketm a-ketlikdan iborat ekanligini ko'ramiz. A g a r bu ketma-ketlikdagi
qoidani b u z sa k , m aqsadga erishm asligimiz mumkin. I b o b 5 M a s a la n , sh
a x m a t o'yinini boshlashda shohni yura olm a y m iz , chunki bu o ‘yin algoritm
ida yurishni boshqa bir sh a x m a t donalaridan boshlash kerak yoki palov pishirish
algoritm   ida   birinchi   navbatda   qozonga   suv   solib   ko'ringchi,   osh   qanday   bo'lar
ekan. Berilgan m atematik ifodani soddalashtirishda amallam ing bajarilish ketma-
ketligiga e ’t i b o r berm aslik n o to ‘g ‘ri natijaga olib kelishi barchaga m a ’lum .
D e m a k ishni, y a’ni qo'yilgan m asalani bajarishga mayda elem entar ishlarni m uayyan ketma-ketlikda ijro etish o rq a li erishiladi. B undan ko‘rinib turibdiki, har
bir   ish   qandaydir   algoritmningbajarilishidan   iboratdir.   Algoritmni   bajaru   v   c   h   i
algoritm ijrochisidir. Algoritmning ijrochisi masalan i n g qanday qo'yilishiga e ’tib
or berm ag an holda natijaga erish ish i m umkin. B uning uch un u faqat avvaldan
m a ’lum q o id a va ko'rsatmalarni q at’iy bajarishi shart. Bu esa algoritm n in g
juda   muhim   xususiyatlaridan   biridir.   U   m   um   an   ,   algoritmlarni   ikki   guruhga
ajratish mumkin. Birinchi guruh algoritmning ijrochisi faqat inson b o 'lis h i m um
kin ( m a sa la n palovni faqat inson pishira oladi ), ikkinchi guruh algoritm larning
ijrochisi ham inson, h a m E H M bo'lishi m um kin (faqat aqliy m eh nat bilan b
og‘-   liq   b   o   'lg   an   raasalalar).   Ikkinchi   guruh   algorimtlarning   ijrochisini   EHM
zimm asiga yuklash mumkin. Buning u c h u n algoritmni EHM tüshunadigan biror
tilda yozib, uni m ashina xotirasiga kiritish kifoya. S h u n d a y qilib, biz algoritm
deganda, berilgan m asalani y ec h ish uchun m a ’lum tartib bilan bajarilishi kerak
b o  ‘lg  a n  chekli   sondagi   buyruqlar  ketma-ketligini  tushuTiaiTi  i   B  iro  r  sohaga
tegishli   masalani   yechish   algoritmini   tuzish   algoritm   tuzuvchidan   shu   sohani
mukammal bilgan holda, qo'yilgan masalani chuqur tahlil qilishni talab qiladi. B u
n d a masalani  yechish uchun kerak bo'lgan ishlarning rejasini  tuza bilish muhim
ahamiyatga   ega.   Shuningdek,   m   a   sa   la   n   i   yechishda   ishtirok   etadigan
ob’ektlarning   qaysilari   b   o   s   h   la   n   g   'ic   h   m   a   ’lum   ot   va   qaysilari   natijaligini
aniqlash, 6 ular o'rtasidagi o 'z a ro bogM anishni aniq va to ‘la k o 'rs a ta bilish,
yoki dastur (p ro g ra m m a ) tuzuvchilar tili bilan a y tg a n d a , m a s a la n in g
m a ’lu m o tla r m odelini b erish lozim. Berilgan masala algoritm ini yozishning
turli   usullari  m   avjud bo‘lib, ular  q  ato rig a  s  o ‘z  bilan, b  lok-tarh (bloksxema)
shaklida, form ulalar, o p erato rlar yordamida, algoritmik yoki dasturlash tillarida
yozish va xokazolarni kiritish mumkin. Endi biror usulda tuzilgan algo ritm nin g
ayrim xossalari va algoritm ga q o 'y ilg a n b a ’zi bir talab larni k o ‘rib chiqaylik.
1. Algoritm har doim t o ’liq bir qiym atlidir, y a ’ni uni bir xil b oshlan g'ich q iy
m a tla r bilan k o ‘p m a rta q o 'lla sh har doim bir xil n atija beradi. 2. Algoritm b
irg in a m a s a la n i y ec h ish qoidasi b o ‘lib qolm ay , balki tu rli-tu m a n b o s h
la n g 'ic h s h a rtla r a so s id a m a ’- lum turdagi m a s a la la r t o ‘p la m in i y ec h ish yo'lidir. 3. Algoritm ni q o 'lla s h n a tij asida chekli q a d a m d a n keyin
natijaga erisham iz yoki m asalaning yechimga ega emasligi haqidagi m a ’lu m o
tg a ega boMamiz. Yuqorida k e ltirilg a n x o s s a la r n i h a r bir ijrochi o ‘zi
tuzgan   biror   m   asalaning   algoritm   idan   foydalanib   tekshirib   ko'rishi   rnumkin.   M
asalan: ax2 + bx + c = 0 kvadrat tenglamani yechish algoritm i uchun yuqorida san
ab o‘tilgan a lg o r itm n in g x o s s a la rin i q u y id a g ic h a te k   shirib ko'rish m
um kin. Agar kvadrat tenglam ani yechish algoritmi biror usulda yaratilgan bo‘lsa,
b iz ijrochiga bu algoritm qaysi m asalan i yechish algoritmi ekanligini aytm asdan
a, b, c lam ing aniq qiymatlari uchun bajarishni topshirsak, u natijaga erishadi  va
bu   natija   kvadrat   teng   lam   anin   g   yechimi   bo'ladi.   Demak,   algoritmni   ijro   etish
algoritm yaratuvchisiga bog'liq emas. Xuddi shuningdek a, b, c larga har doim bir
xil qiym atlar bersak, a lg o ritm har doim bir xil natija beradi, y a ’ni to ‘liqdir.. 7
Yaratilgan bu algoritm faqatgina bitta kvadrat tenglam an i yechish algoritmi bo'lib
qolmay, balki u a,b,c laming m um kin bo'lgan barcha qiymatlari uchun natija hosil
qiladi, b in o b a rin u sh u turdagi barcha kvadrat te n g lam a larn in g yechish
algoritmi bo'ladi. A lgoritm ning oxirg^i xossasi  o ‘z-o‘zidan bajariladi, y a ’ni k
vadrat   tenglamani   yechish   albatta   chekli   qadamda   amalga   oshiriladi.   Dastur
tuzuvchi   uchun   EHM   ning   ikkita   asosiy   param   e   tr   i   o   ‘ta   muhimdir:   hisoblash
mashinasi   xotirasining   hajmi   va   mashinaning   tezkorligi.   Shuningdek,   algoritm
tuzuvchidan   ikki   narsa   talab   qilinadi.   Birinchidan,   u   tuzgan   dastur   m   ashina
xotirasida   eng   kam   joy   talab   etsin,   ikkinchidan,   e   n   g   kam   amallar   bajarib
masalaning   natijasiga   erishsin.   U   m   u   m   a   n   olganda,   bu   ikki   talab   bir-biriga
qarama-qarshidir,   y   a   ’   ni   algoritmning   ishlash   tezligini   oshirish   algoritm   uchun
kerakli   xotirani   oshirishga   olib   kelishi   mumkin.   Bu   xol,   ayniqsa   murakkab
masalalarni   yechish   algoritmini   tuzishda   yaqqol   seziladi.   Shuning   uchun   ham   bu
ikki   parametrning   e   n   g   maqbul   holatini   topishga   harakat   qilish   kerak.   1.2.
ALGORITMNI   TAVSIFLASH   USULLARI   Algoritm   so'zlar,   matematik
formulalar,   algoritmik   tillar,   g   eom   etrik   tarhlar   (sxemalar),   dasturlash   tillari   va
boshqalar   yordamida   tavsiflanadi.   Algoritmning   so'zlar   yordamida   berilishiga,
tavsiflanishiga   misol   tariqasida   liftda   kerakli   qavatga   ko'tarilish   algoritm   ini keltirish   mumkin.   Bu   quyidagicha   ketmaketlikda   bajariladi:   1.   L-iitgs   ku   ;n   g.   2.
Kerakli-qavat tartib soniga mos tugm achani  bosing. 3. Liftni harakatga keltiring.
4. Lift to'xtashini kuting. 5. Lift eshigi ochilgandan keyin undan chiqing. Algoritm
matematik   formulalar   yordamida   tavsiflang   an   da   har   bir   qadam   aniq   formulalar
yordamida yoziladi. M isol tariqasida kvadrat te n g lam a y e c h im la ri b o ‘lm
ish   xr   x2  ni   aniqlash   algoritmini   ko'rib   chiqaylik.  L.  a,   b,   c  koeffitsiyentlar   qiym
atlari berilsin. 2. D = b2—4ac diskriminant hisoblansin. 3. D < O b o 'ls a , t e n g l
a m a n i n g haqiqiy yechim  lari y o ‘q. Faqat  haqiqiy ildizlar iz .lan ay o tg an
bo'lsa, masala hal b o ‘ldi. 4. D = 0 b o ‘lsa, t e n g l a m a ik k ita bir-biriga te n g ,
y a ’ni karrali yechimga ega bo'ladi v a ular formulalar bilan hisoblanadi. Masala
hal   bo'ldi.   5.   D   >   0   bo'lsa,   tenglama   ikkita   haqiqiy   yechimga   ega,   ular   x,   =   (b   +
y[D)/2a va x 2 = (-b - ■JD)/ 2a formulalar bilan hisob lan ad i. Y a ’ni m asala hal
bo'ldi. Shunday qilib, kvadrat ten g lam an in g haqiqiy yechim   lari ni aniqlashda:
1. «T en glam an ing haq iqiy y e c h im la ri y o ‘q» m atn i; 2. «Tenglama karrali
yechimga ega, x = x2» matni va xp x2 ning qiymatlari; 3. «Tenglama ik k ita y e c
h im g a ega» matni, x, va x 2 ning qiymatlari natijalar bo'ladi. Algoritmik tillar —
a lg  o r  itm   n i   bir   m  a  ’noli   tav siflash  imkonini  beradigan  belgilar  v  a qoidalar
majmuidir.  H ar  qanday  tillardagidek u  la  r  h a  m  o  ‘z  alifbosi, s  in  ta k  sisi  v  a
semantikasi bilan aniqlanadi. Bizga o 'rta m a k t a b d a n m a ’lu m boMgan ( a k
a d e m ik A. P. Yerstiov rah barlig id a y a ra tilg a n ) E H M siz algoritmlashga m
o'ljallangan algoritm ik tizim algoritrnik tilning naraunasidir. A lgoritm ik tilga m
isol sifatida yana algoritmlarni belgili operatorlar tizimi shaklida tavsiflashni ham
ko'rsatish   m   um   kin.   B   u   tillar   o   d   a   td   a   g   i   tilga   o   ‘x   sh   a   sh   bo'lib,   EHM   da
bevosita   b   ajarish   g   a   m   o'ljallanm   agan.   U   lardan   maqsad   algoritmni   b   ir   xil
shaklda va tushunarli qilib, tahlil qilishga oson qilib yozishdir. Algoritmlarni g e o
m e trik ta rh la r yordam ida tavsiflash ko‘rgazmali va, shu sab ab li tu sh u n arliro
q bo'lgani uchun k o ‘p q o ‘llaniladi. B u n d a x a r b ir o 'z ig a xos o p e ra ts iy a
a x 2 + bx + c = 0 (a * 0) 9 alohida geom etrik shakl (blok) bilan tavsiflanadi va
ularn in g bajarilish tartib i, ular orasidagi m a ’lu m o tla r uzatilishi va yo'nalishi
bloklarni   bir-biri   bilan   ko'rsatkichli   to'g'ri   chiziqlar   yordamida   tutashtirib ko'rsatiladi. Algoritmning g eo m e trik ta rh ig a u n in g blok-tarhi (blok-sxem asi)
deyiladi. Bloklarga mos geometrik shakllar, ularning o'lchamlari va ular yordamida
blok-tarhlarni chizish qoidalari davla t sta n d artla rid a berilgan. 1-jadvalda e n g
ko‘p ishlatilad ig a n bloklar shakli va ularning m a ’nosi keltirilgan. Bu d a v la t
stan d artlarig a ko‘ra bloklarni tu tash tiru v ch i to 'g 'ri chiziq y o 2uv tekisligiga
vertikal yoki gorizontal holatda bo'lishi kerak, y a’ni ularni og'm a chiziqlar bilan
tutashtirish taqiqlanadi. Bloklarni bajarish tabiiy yozish tartibida bo'lsa, y a ’ni y u
q   o   rid   an   p   a   s   tg   a   yoki   ch   ap   d   an   o   'n   g   g   a   bo'lsa,   tutashtiruvchi   chiziq
ko'rsatkichsiz   bo'lishi   mumkin.   B   o   sh   q   a   barcha   hollarda   m   a   ’lumot   oqimi
yo'nalishini   ko'rsatuvchi   ko'rsatkich   qo'yilishi   shart.   Blokning   tartib   soni
tutashtiruvchi   chiziqdan   chapga,   alohida   ajratilgan   b   o   'sh   joyga   qo'yiladi.
Chiziqning birlashgan joyi yirikroq n u q ta yordam ida ko'rsatiladi. Blokda ko'zda
tutilgan   o   p   eratsiy   a   uning   ichiga   yozib   qo'yiladi.   Tarhlar   davlat   stand   arti
formatlarida bajariladi. Am alda yechiladigan masalalar va demak, algoritmlar tu r
la   r   i   h   am   juda   ko‘p   bo‘lishiga   q   aram   asdan   ular   asosan   b   esh   xil:   chiziqli,
tarmoqlanuvchi, siklik, iteratsion va cheksiz takrorlanuvchi shakllarda bo'ladi deb
aytish   mumkin.   A   gar   murakkab   masalalar   algoritmlariningblok-tarhini   bir   bino
desak, bu tuzilishdagi  algoritmlar uni  tashkil qiluvchi  rom, g'isht, to'sin, ustun va
boshqalarni   ifodalaydi   deb  aytish   mumkin.   Har   qanday   murakkab   bino   ana  s   h   u
ashyolardan   qurilganidek,   murakkab   algoritmlar   ham   yuqoridagidek   tarhlardan
tuziladi. Aslida oxirgi uchta tu zilish d ag i algoritm larni bitta nom bilan takrorlash
algoritm   lari   deb   atash   mumkin.   Ammo   ularning   har   biri   o   ‘ziga   xos   bo'lganligi
uchun alohida nomlanadi.

Mavzu: Kop parametrli qiymat qaytaruvchi funksiyalarga doir misollar yechish Reja: 1. Kop parametrli qiymat qaytaruvchi funksiyalar. 2. Kop parametrli qiymat qaytaruvchi funksiyalarga doir misollar yechish. 3. “Algoritm” tushunchasi .

C# dasturlash tilida funksiyalar nimaligini o’rganishdan oldin funksiyaning o’zi nima u bizga nega kerak degan savollarga javob topamiz. Funksiya nega kerak ? Biz biroz yirikroq dastur yozish mobaynida juda ko’p bir xil bo’lgan vazifani qayta va qayta yozayotgandek bo’lamiz. Bu xuddi kuni bilan paxta terayotgan kishining ishiga o’xshaydi qaniydi bitta robot bo’lsayu unga bir marta paxta terishni o’rgatib qo’ysak keyin har safar aytganingda paxtani terib qo’ysa deb orzu qiladi paxta teruvchi , albatta terimchining bu orzusini amalga oshirish qiyin . Lekin sizning ishingizni (ya’ni kodlashda bir vazifani qayta yozishni) yengillashtirishning yo’li bor , bu yerda bizga Funksiyalar yordamga keladi Funksiya nima? Bir marta kod yozib uni dasturning istalgan joyida istalgancha ishlatish imkonini beruvchi operatorlar guruhi Funksiya deyiladi. Bu huddi yuqoridagi misolimizga o’xshash bir marta qanday qilishni o’rgat va xoxlagan vaqting xoxlagan joyingda ishlat. Funksiya dasturchining kodini sezilarni darajada qisqartiradi va bu orqali dastur kodini o’qish osonlashadi va qotira hajmidan ham yutiladi. C# da funksiyadan foydalanish Dasturlashda funksiyalar ikki toifaga bo’linadi • Qiymat qaytaruvchi • Qiymat qaytarmaydigan Dastlab biz qiymat qaytaruvchi funksiyalar ni ko’rib chiqamiz. Qiymat qaytaruvchi funksiyalar malum bir qiymatni (int ,float ,string va boshq) qaytaradi Qiymat qaytaruvchi funksiya larning tuzilishini ko’ramiz Bularning barchasiga alohida to’xtalib o’tamiz 1. - bu funksiya qaytaradigan qiymat bo’lib turli xil ma’lumot turlaridan foydalanishimiz mumkin masalan int,

float string kabilar. 2. - funksiyaning nomi yani uni chaqiradigan ism deyishimiz ham mumkin unga ism tanlayotganda lotin alifbosidagi katta va kichik harflar , raqamlar va tagchiziq (‘_’) foydalangan holda , raqamdan boshlamasdan va c# tilidagi kalit so’zlardan foydalanmagan holda xoxlagan ismni berishimiz mumkin. 3. (<parametrlar>) – bu funksiya yakuniy qiymatni yaratish uchun foydalanadigan yordamchilar deyishimiz mumkin ushbu yordamchilar sifatida esa turli xil malumot tipidagi o’zgaruvchilar keladi . yordamchilar sifatida 0 tadan xoxlagancha o’zgaruvchilar bo’lishi mumkin ular quyidagicha yoziladi (int a, float b, int c) . 4. // funksiya tanasi - ushbu qism funksiyaning asosiy qismi hisoblaning qaytariladigan yakuniy qiymatgacha bo’lgan barcha ishlar shu yerda qilinadi va figurali qavs (‘{‘) bilan boshlanadi ushbu qismda parametr sifatida kiritilgan o’zgaruvchilar ham ishlatiladi. 5. // return - ushbu amal biz funksiyaning qaytaradigan qiymatini aniqlaydi. ning turi funksiyada elon qilingan dastlabki qiymat bilan bir xil bo’lishi shart.yani funksiya int turida bo’lsa biz return dan keyin ham int turidagi o’zgaruvchi bo’ladi. Ming marta eshitgandan ko’ra bir marta ko’rgan yaxshi deganlaridek biz C# tilida Funksiya ga oddiygana ikki sonda kattasini topuvchi funksiya orqali misol keltiramiz int max( int a , int b) C# Console dasturida funksiyadan foydalanish 1 } Copied! output: 8 Yuqorida console dasturida max yani ikki sondan kattasini topuvchi funksiya yaratildi va undan dasturning Main qismida foydalanildi. Albatta bu yerda funksiyaning foydasi yaqqol sezilmagandir ammo siz dastur ichida funksiyani bir necha marotaba foydalansangiz naqadar foydali ekanligini tushunasiz. Qiymat qaytarmaydigan funksiyalar Agar biz funksiyalarni xizmatchi inson deb bilsak qiymat qaytaradigan va qaytarmaydigan funksiyalarni shunday tariflashimiz mumkin . Deylik xizmatchiga qanchadir pul(ya’ni parametr) berib do’konga

jo’natamiz va bizga aytgan narsamizni (qaytaradigan qiymat) ni olib keladi bu qiymat qaytaradigan funksiyaga misol bo’ladi . boshqa xizmatchiga esa pul(ya’ni parametr) berib unga hovlidagi qandaydir ishlarni aytamiz va u aytgan ishlaringizni qildi lekin sizga hech narsa qaytarib kelmadi bu qiymat qaytarmaydigan funksiyaga misol bo’la oladi. Qisqa qilib aytganda qiymat qaytarmaydigan funksiyaning qaytaruvchi qiymati bo’lmaydi va u qandaydir vazifani bajargan bo’ladi. Endi esa qiymat qaytarmaydigan funksiyalarning tuzilishini ko’rib chiqamiz Qiymat qaytarmaydigan funksiyaning qiymat qaytaradigan funksiyadan asosiy farqi bu funksiyalar qaytariladigan qiymat turi o’rniga ‘void’ kalit so’zi bilan boshlanadi va qaytariladigan qiymat return yozilmaydi. Endi esa qiymat qaytarmaydigan funksiyaga misol yozamiz Copied ! Bu shunchaki s matnni n marta takma tak chiqaruvchi funksiya Bundan foydalanishni yana console dasturda ham ko ’ ramiz . Copied! Output: dot-net.uz dot-net.uz dot-net.uz Xulosa qilib aytadigan bo’lsak funksilar bizning og’irimizni yengil uzog’imizni yaqin qiluvchi yordamchi zamonaviy dasturlash tillarini funksiyalarsiz tasavvur qilib bo’lmaydi . Katta loyiha qila turib funksiyalardan foydalanmaslikni yangi uyni faqat qo’l mehnati bilan qurmoqchi bo’lgan inson harakati bilan o’xshatish mumkin. Bu boshlanishi edi keyingi darslarda funksiyalarga yanada kengroq to’xtalamiz.

Ayrim algoritmlarning hisoblash jarayonlari o'zlarining ko'p tarmoqliligi bilan ajralib turadi. Umuman olganda, tarmoqli jarayonlarni hisoblash uchun shartli operatordan foydalanish yetarlidir. Lekin, tarmoqlar soni ko'p bo'lsa, shartli operatordan foydalanish algoritmning ko'rinishini qo'pollashtirib yuboradi. Bu hollarda shartli operatorning umumlashmasi bo'lgan variant tanlash operatoridan foydalanish maqsadga muvofiqdir. Variant tanlash operatorining sintaksis aniqlanmasi quyidagicha: <variant tanlash operatori>::= case   <operator selektori> of <variant ro'yxatining hadlari> end; bu yerda <operator selektori>::= <ifoda>; <variant ro'yxatining hadi>::=<variantlar metkalarining ro'yxati>:<operator>; <variantlar metkalarining ro'yxati>::=<variant metkasi>{,< variant metkasi>}; <variant metkasi>::=<o'zgarmas> Variant tanlash operatori bajarilish paytida oldin selektorning qiymati hisoblanadi, shundan so'ng selektorning qiymatiga mos metka bilan jihozlangan operator bajariladi va shu bilan variant tanlash operatori o'z ishini yakunlaydi. Shuni esda tutish kerakki, <variant metka>si bilan <operator metka>si bir xil tushuncha emas va variant metkasi metkalar (Label) bo'limida ko'rsatilmasligi kerak. Bundan tashqari, ular o'tish operatorida ishlatilishi mumkin emas. . Case kun of dush, sesh, chor, pay, jum: writeln('ish kuni');