Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr



Download 5,36 Mb.
Pdf ko'rish
bet218/335
Sana02.08.2021
Hajmi5,36 Mb.
#136132
1   ...   214   215   216   217   218   219   220   221   ...   335
Bog'liq
Dasturlash asoslari(O'zbekcha)

6. Qism dastur parametrlari 
Dasturlashda  ko‘pincha  agar  qism  dastur  nomi  boshqa  qism  dasturga 
parametr  kabi  yuborilsa,  uni  qayta  ishlash  afzalroq  bo‘lgan  holatlar  ham  bo‘ladi. 
Ba’zida,  qism  dastur  qandaydir  matematik  funksiyani  modellashtirishi  lozim 
bo‘lganda  bu  hol  yuzaga  keladi.  Masalan,  sonli  integralini  hisoblovchi  qism  dastur, 
funksiya  grafigi  ostidagi  shakl  yuzini  aniqlaydi  va  ushbu  funksiyani  turli  nuqtalarda 
hisoblashi  lozim.  Bunday  qism  dastur  har  qanday  berilgan  funksiya  uchun 
qo‘llanilishi  lozim.  Qism  dasturni  har  bir  funksiya  uchun  yozib  o‘tirish  shart 


Dasturlash tillari va axborot-kommunikatsiya texnologiyalari                                                              1-semestr
 
 
233 
 
bo‘lmasligi  kerak.  Buning  natijasida,  dasturdagi  matematik  funksiya  integralini 
hisoblovchi funksiya nomi integratsiyalovchi qism dasturga parametr kabi yuboriladi. 
Bu  g‘oya  oddiyligi  va  tabiiyligiga  qaramay,  uning  to‘liq  ishlashi  muammo 
tug‘dirishi  mumkin.  Agar  faqat  qism  dastur  kodini  yuborish  kerak  bo‘lganida  edi, 
alohida ko‘rsatkichni yuborishning o‘zi yetarli bo‘lar edi. Ammo, bir qator murakkab 
holatlar yuzaga keladi. 
Birinchidan,  parametr  kabi  yuboriluvchi  qism  dasturlarni  chaqirishda 
parametrlar  tiplarini  tekshirish  muammosi  mavjud.  Pascal  tilining  boshlang‘ich 
tavsifnomasida  qism  dasturlarni  ularning  parametrlari  tiplarini  qo‘shmay,  ularni 
parametr  kabi  yuborish  imkoniyati  berilar  edi.  Agar  mustaqil  kompilyatsiya  mavjud 
bo‘lsa,  kompilyator  parametrlar  sonining  to‘g‘riligini  tekshirishga  ham  imkon 
bermaydi.  Mustaqil  kompilyatsiya  mavjud  bo‘lmasa,  parametrlar  muvofiqligini 
tekshirishning  imkoni  bor,  ammo  bu  juda  ko‘p  qiyinchiliklar  tug‘diradi  va  odatda, 
buning umuman iloji  yo‘q. FORTRAN  77 tilida  ham ushbu  muammo mavjud, ammo 
FORTRAN  77  tilidagi  tiplar  muvofiqligini  tekshirish  hech  qachon  bajarilmaganligi 
uchun, bu unchalik ham muammo hisoblanmaydi. 
Agar qism dastur nomi ALGOL 68 tilida yoki Pascal tilining oxirgi versiyalarida 
parametr  kabi  yuborilsa,  rasmiy  parametrlar  tiplari  qism  dasturlardan  qabul 
qilinuvchi  rasmiy  parametrlar  ro‘yxatiga  qo‘shiladi,  shuning  uchun,  real  chaqiriqda 
qism  dasturga  yuboriluvchi  parametrlar  tiplari  muvofiqligini  statistik  holda  bajarish 
mumkin. Masalan, quyidagi kodni Pascal tilida ko‘rib chiqaylik: 
 
procedure integrate (function fun (x:real):real; 
lowerbd, upperbd:real; 
var result:real); 
… 
var funval; real; 
begin 
… 
funval := fun (lowerbd); 
… 
end; 
 
integrate  protsedurasidagi  fun  funksiyasini  chaqirishda  faktli  parametr  statik 
tarzda integrate protsedurasining rasmiy parametrlari ro‘yxatidan fun funksiyasining 
rasmiy parametri tipi bilan muvofiqligini tekshirish mumkin. 
S  va  C++  tillarida  funksiyalar  parametrlar  kabi  yuborila  olmaydi,  ammo 
funksiya ko‘rsatkichlari yuborilishi mumkin. Funksiya ko‘rsatkichi tipi uning protokoli 
hisoblanadi.  Protokol  barcha  parametrlar  tiplariga  ega  bo‘lgani  uchun,  bunday 
parametrlar tiplar muvofiqligiga tekshirilishi mumkin. 


Dasturlash tillari va axborot-kommunikatsiya texnologiyalari                                                              1-semestr
 
 
234 
 
Modula-2 tilida protseduralar tiplari o‘zgaruvchilar kabi, ularni yuborish uchun 
qo‘llaniladi.  Ushbu  metod  jo‘natilayotgan  qism  dasturlar  parametrlari  tiplari 
muvofiqligini  tekshirishga  imkon  beradi,  chunki  parametrlar  tiplari  protsedura 
tipining bir bo‘lagi hisoblanadi. FORTRAN 90 tilida qism dasturlar parametrlari tiplari 
muvofiqligini  tekshirishni  tavsiflovchi  mexanizm  mavjud  bo‘lib,  ularning  o‘zi 
parametrlar  kabi  yuboriladi.  Ada  tilida  qism  dasturlarni  parametr  kabi  qo‘llab 
bo‘lmaydi. Buning o‘rniga, parametrlar kabi yuboriluvchi qism dasturlar ta’minlovchi 
funksional  imkoniyatlar  Ada  tilida  o‘rnatilgan  funksiyalar  yordamida  egallaniladi  va 
bu to‘liq tarzda 8-qismida ko‘rib chiqilgan. 
Qism dasturlar nomlarini qo‘llashning yanada qiziq tarafi yuborilayotgan qism 
dastur ssыlkalarning  to‘g‘ri muhiti  haqidagi muammolar bilan bog‘liq. Buning  uchta 
imkoniyati bor: 
1. 
Chaqirish  operatori  muhiti,  bu  yuborilayotgan  qism  dasturni 
aktivlashtiradi (soyali bog‘lanish – shallow binding). 
2. 
Yuborilayotgan qism dasturni aniqlash muhiti (chuqur bog‘lanish – deep 
binding). 
3. 
Qism  dasturni  faktli  parametr  kabi  yuboruvchi  chaqirish  operatori 
muhiti (alohida bog‘lanish − ad hoc binding). 
Quyidagi  keltirilgan  dastur  ushbu  imkoniyatlarni  amalga  oshiradi.  SUB  3 
protsedurasi SUB 4 protsedurasini chaqira oladi deylik. 
 
procedure SUB1; 
var x : integer; 
procedure SUB2; 
begin 
write (‘x=’, x); 
end; {sub2} 
procedure SUB3; 
varx : integer; 
begin x : integer; 
x := 3; 
SUB4(SUB2) 
end; {SUB3} 
procedure SUB4(SUBX); 
varx : integer; 
 begin 
x := 4; 
SUBX; 
end; {SUB4} 
begin {SUB1} 


Dasturlash tillari va axborot-kommunikatsiya texnologiyalari                                                              1-semestr
 
 
235 
 
x := 1; 
SUB3 
end; {SUB1} 
 
SUB  3  qism  dasturini  SUB  4  orqali  chaqirishda  nima  kelib  chiqishini  ko‘rib 
chiqamiz.  Soyali  bog‘lanishda  bunday  bajarishning  ssыlkalar  muhiti  SUB  4  qism 
dasturi ssыlkalar muhiti bilan mos keladi, shuning uchun, x o‘zgaruvchi ssыlkasi SUB 
2 muhitidagi mahalliy o‘zgaruvchi bilan muvofiq bo‘ladi. 

Download 5,36 Mb.

Do'stlaringiz bilan baham:
1   ...   214   215   216   217   218   219   220   221   ...   335




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

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


yuklab olish