12-mavzu: Sinflar tuzilishi: atributlar, operatsiyalar, bog’lanishlar, umumiylashtirish, assotsiatsiyalar


Download 151.75 Kb.
Pdf ko'rish
bet4/7
Sana30.04.2023
Hajmi151.75 Kb.
#1406097
1   2   3   4   5   6   7
Bog'liq
12-Sinflar tuzilishi

Parametrlarni o'tkazish usullari 
Dasturlash tillaridagi protseduralar parametrlarga ega. Parametrlarning 
mavjudligi 
turli xil ma'lumotlarni qayta ishlash yoki hisoblash uchun bir xil protsedurani 
qayta-qayta qo'llash imkonini beradi. Ushbu xususiyatdan foydalanish uchun 
protseduraga qo'ng'iroq qilishda siz qandaydir tarzda ushbu qo'ng'iroqda kirish 
ma'lumotlarini qaerdan olish kerakligini va natijalarni qaerga qo'yish kerakligini 
belgilashingiz kerak. Buni belgilash mexanizmi parametrlarni o'tkazish usuli deb 
ataladi. 
Turli tillar va dasturlash tizimlari protseduralar va funktsiyalarga 
parametrlarni o'tkazishning turli (ba'zan juda murakkab) usullaridan foydalanadi. 
Biz bu erda deyarli barcha dasturlash tillari va tizimlarida u yoki bu shaklda 


qo'llaniladigan ikkita eng keng tarqalganini tasvirlab beramiz: parametrlarni mos 
yozuvlar va qiymat bo'yicha o'tkazish. 
Agar o'zgaruvchi52 mos yozuvlar bo'yicha protseduraga uzatilsa, u holda 
ushbu o'zgaruvchining xotiradagi manzili protseduraga uzatiladi. Shu bilan birga, bu 
sodir bo'ladi 
Dasturlash tizimlari odatda konstantalarni havola orqali uzatishni taqiqlaydi. 
Buning sababi shundaki, protsedura doimiy qiymatni o'zgartirishi va shu bilan 
keyingi hisob-kitoblar jarayonida xatolikka olib kelishi mumkin.
Protseduraning rasmiy parametrini va o'tgan haqiqiy argumentni aniqlash. 
Shunday qilib, chaqirilgan protsedura argumentning qiymatini o'zgartirib, unga 
uzatilgan o'zgaruvchining qiymatini o'zgartiradi. Ushbu uzatish usuli chiqish 
parametrlari uchun javob beradi. Agar o'zgaruvchi (yoki doimiy) qiymat bo'yicha 
uzatilsa, kompilyator ushbu o'zgaruvchining vaqtinchalik nusxasini yaratadi va 
aynan shu nusxa o'zgaruvchining manzili protseduraga uzatiladi. Shunday qilib, 
chaqirilgan protsedura argumentning qiymatini o'zgartirib, protsedura tugagandan 
so'ng yo'q qilinadigan nusxa o'zgaruvchining qiymatini o'zgartiradi (lekin 
o'zgaruvchining o'zi emas). Ushbu o'tish usuli kirish parametrlari uchun mos keladi. 
UMLda parametr o'tish yo'nalishi ma'lum bir o'tish mexanizmini 
ko'rsatmasdan parametrlarning semantik maqsadini tavsiflaydi. Modelda 
ko'rsatilgan parametrlarni uzatish yo'nalishlarini qanday talqin qilish kerakligi 
ishlatiladigan dasturlash tizimiga bog'liq. Etkazish yo'nalishining mumkin bo'lgan 
qiymatlari jadvalda keltirilgan. 3.4. 
Kirish 
parametri 

argument 
operatsiyada 
ishlatiladigan, 
lekin 
o'zgartirilmagan qiymat bo'lishi kerak 
Chiqish parametri - argument operatsiya amalga oshiriladigan do'kon bo'lishi 
kerak qiymatini qo'yadi 
Kirish va chiqish parametri - argument qiymatni o'z ichiga olgan do'kon 
bo'lishi kerak. Amaliyot o'tkazilgan argument qiymatidan foydalanadi va natijani 
saqlaydi 
Amaliyot tomonidan qaytarilgan qiymat. Hech qanday dalil talab qilinmaydi 


Operatsiya 
parametrining 
turi, 
shuningdek 
operatsiya 
tomonidan 
qaytariladigan qiymat turi har qanday o'rnatilgan turdagi yoki modelda belgilangan 
sinf bo'lishi mumkin. Hammasi birgalikda (operatsiya nomi, parametrlari va natija 
turi) odatda imzo deb ataladi . Standart imzo operatsiya nomini, shuningdek 
parametrlarning soni, tartibi va turlarini (ya'ni, parametrlar o'tkaziladigan yo'nalish 
va ularning nomlari, shuningdek, natija turini o'z ichiga olmaydi) bo'lishini taklif 
qiladi. imzoda). Ammo bu semantikaning o'zgaruvchan nuqtasi - imzoning boshqa 
kontseptsiyasi ma'lum bir vositada amalga oshirilishi mumkin. Agar imzolar 
boshqacha bo'lsa, unda operatsiyalar boshqacha (ismlar bir xil bo'lsa ham). Bitta 
sinfda bir xil imzo bilan ikkita operatsiya bo'lishi mumkin emas - model nomuvofiq 
hisoblanadi. Agar bir xil imzo bilan operatsiya kichik sinfda aniqlangan bo'lsa, unda 
ikkita holat mumkin. Agar kichik sinfdagi amal tavsifi aynan bir xil bo'lsa yoki u 
izchil kengaytma bo'lsa (masalan, sinf natija turini ko'rsatmagan, lekin kichik sinf 
ko'rsatsa), u bir xil amalning takroriy tavsifidir. . Agar kichik sinfdagi bir xil imzo 
bilan operatsiya tavsifi sinfdagi tavsifga 
zid bo'lsa (masalan, parametrlarni o'tkazishning turli yo'nalishlari aniq 
ko'rsatilgan), u holda model mos kelmaydigan hisoblanadi.
Operatsiya ikkita muhim xususiyatga ega, ular mulk ro'yxatida sifatida 
ko'rsatilgan nomli qiymatlar. 
Birinchidan, bu parallellik - bu operatsiyaning bir vaqtning o'zida (parallel) 
chaqiruvining semantikasini aniqlaydigan xususiyat. Faqat bitta nazorat chizig'i 
mavjud bo'lgan ilovalarda parallel qo'ng'iroqlarni amalga oshirish mumkin emas. 
Haqiqatan ham, agar operatsiya chaqirilsa, u holda dasturning bajarilishi chaqirilgan 
operatsiyani bajarish tugagunga qadar chaqiruv nuqtasida to'xtatiladi. Bir ipli 
ilovalarda boshqaruv istalgan vaqtda dasturning ma'lum bir nuqtasida joylashgan 
bo'lib, aynan bitta maxsus operatsiya bajariladi. Rekursiv qo'ng'iroq (ya'ni, 
operatsiyani o'z ichidan chaqirish) bir vaqtning o'zida hisoblanmaydi, chunki 
rekursiv qo'ng'iroq odatdagidek operatsiyani bajarishni to'xtatib turadi va shuning 
uchun har doim rekursiv operatsiyaning faqat bitta nusxasi bajariladi. 
Boshqarishning bir nechta iplari mavjud bo'lgan ilovalarda bu shunday emas. 


Bunday holda, operatsiyani bitta ipdan chaqirish mumkin va uning bajarilishi hali 
tugamagan bo'lsa, boshqa ipdan chaqiriladi. Paradoksallik xususiyatining qiymati bu 
holatda nima bo'lishini belgilaydi. Mumkin variantlar va ularning tavsiflari jadvalda 
keltirilgan. 
Tavsif 
Operatsiya parallel chaqiruvga ruxsat bermaydi (qayta kiritilmaydi). Agar 
parallel qo'ng'iroq sodir bo'lsa, tizimning keyingi harakati aniqlanmagan. 
Bir vaqtning o'zida qo'ng'iroqlarga ruxsat beriladi, lekin ulardan faqat bittasi 
amalga oshiriladi -qolganlari bloklanadi va ularning bajarilishi kechiktiriladi. 
Operatsiya o'zboshimchalik bilan parallel qo'ng'iroqlar soniga imkon beradi 
va to'g'ri bajarilishini kafolatlaydi. Bunday operatsiyalar qayta kiritiladigan deb 
ataladi. 
Ikkinchidan, operatsiya isQuery xususiyatiga ega , uning qiymati 
operatsiyaning yon ta'siri bor yoki yo'qligini ko'rsatadi. Agar ushbu xususiyatning 
qiymati rost bo'lsa, u holda operatsiyaning bajarilishi tizim holatini o'zgartirmaydi - 
faqat operatsiya Aks holda, ya'ni qachon. 
qo'ng'iroq nuqtasiga qaytgan qiymatlarni hisoblab 
chiqadi. false , operatsiya tizim holatini o'zgartiradi: atributlarga yangi 
qiymatlar beradi, ob'ektlarni yaratadi yoki yo'q qiladi va hokazo. Odatiy bo'lib, 
operatsiya { isQuery=false} xususiyatiga ega. Shuning uchun, agar siz ushbu 
operatsiyani nojo'ya ta'sirlarsiz funksiya ekanligini ko'rsatishingiz kerak bo'lsa, unda 
{isQuery} ni yozish kifoya . Xodimlar bo'limi axborot tizimining Person sinfining 
mumkin bo'lgan operatsiyalari tavsiflarining misollarini ko'rib chiqing (3.7-jadval). 
Bunday semantika ikkita yoki undan ko'p bo'lgan o'lik (yoki o'lik) holatini 
keltirib chiqarishi mumkin ko'proq jarayonlar bir-birini to'sib qo'yadi va hech biri 
bajarishni davom ettira olmaydi. 
Bunday operatsiyalar an'anaviy ravishda funktsiyalar deb ataladi.
Misol harakat 
+ko‘chirish(dan, ichida) 
Tushuntirish Minimal mumkin bo'lgan tavsif - 


faqat operatsiya nomi ko'rsatilgan 
Operatsiyaning ko'rinishi, uzatish yo'nalishlari va parametr nomlari 
ko'rsatilgan 
+ko'chirish(dan: Dpt, ichida: Dpt) 
+getName() : {isQuery} satri 
+setPwd(pwdda: String = "parol") Qiymat ko'rsatilgan protsedura 
Imzoning batafsil tavsifi: operatsiyaning ko'rinishi, uzatish yo'nalishi, 
parametrlarning nomlari va turlari ko'rsatilgan. 
Atribut qiymatini qaytaradigan va hech qanday nojo'ya ta'sirga ega bo'lmagan 
funksiya 
standart argument 

Download 151.75 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




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