Олий таълим ўқув режаларидаги фанларга


Типларни алмаштириш амаллари



Download 4,03 Mb.
bet62/102
Sana23.02.2022
Hajmi4,03 Mb.
#136190
1   ...   58   59   60   61   62   63   64   65   ...   102
Bog'liq
Dasturlash asoslari majmua

Типларни алмаштириш амаллари


Типларни алмаштириш амаллари фойдаланувчи амаллари типарини ошкор ёки ошкормас кўринишда алмаштириш имконини беради. Типларни алмаштириш амаллари қуйидаги схема остида эълон қилинади:
implicit operator тип ( параметр ) // ошкормас алмаштириш
explicit operator тип ( параметр ) // ошкор алмаштириш
Бу амаллар параметр типидаги маълумотларни амал сарлавҳасида кўрсатилган типга алмаштиради. Бу типлардан бири амал аниқланган класс бўлиши керак. Шундай қилиб, амаллар класс типидаги маълумотларни бошқа типга ёки аксинча алмаштиришларни бажаради. Алмаштирилаётган тпплар ворислик муносабатлари билан боғланмаган бўлиши шарт. Monster классси учун типларни алмаштиришга мисоллар:
public static implicit operator int( Monster m )
{
return m.health;
}
public static explicit operator Monster( int h )
{
return new Monster( h, 100, "FromInt" );
}
Қуйида дастур таркибида типларни алмаштириш учун намуналар келтирилган:
Monster Masha = new Monster( 200, 200, "Masha" );
int i = Masha; // ошкормас алмаштириш
Masha = (Monster) 500; // ошкор алмаштириш
Классдаги барча амаллар турли сигнатураларга эга бўлиши керак. Методларнинг бошқа кўринишларидан фарқли ўлароқ, типларни алмаштириш амаллари учун қайтарилиши керак бўлган қиймат типлари сигнатураларга киритилиши лозим. Implicit ва explicit хизматчи сўзилари сигнатураларга киритилмайди ва демак, битта алмаштириш учун бир вақтда ошкор ва ошкормас тип алмаштиришларни аниқлаб бўлмайди.
Ошкормас алмаштиришларни аниқлашда уларнинг бажарилиши жараёнида аниқликнинг йўқолмаслиги ва истисноли вазиятлар юза келмаслиги шарт.


  1. Қайта юкланадиган класс ва амалларга намуна


Қуйидаги масала берилган бўлсин.
Матнли файлда ташкилотнинг ходимлар бўлими маълумотлар базаси берилган. Бу ташкилотда 100 та ходим ишлайди. Файлнинг хар бир сатри битта ходим ҳақидаги маълумотларни сақлайди. Ёзувларнинг ўлчами қуйидагича: фамилия ва исми (30 та белги, фамилиялар 1 белгидан бошланади), туғилган йили (5 та белги), иш ҳақи (10 та белги). Берилган фамилия бўйича ходим ҳақидаги маълумотларни хамда сўралган ходимларнинг ўртача иш ҳақларини экранга чиқарувчи дастур ишлаб чиқинг.
Бу масалани ҳал қилиш учун “ходим” классини яратиш ва бу кклассдаги экземплярлардан массив ташкил қилиш керак. Классни тавсифлашда бу классга нималарни киритиш лозим? деган саволга жавоб топиш талаб қилинади. Табиийки, биринчи вазифа - бу ходимлар ҳақидаги маълумотларни сақлашдан иборат. Бу маълумотлардан фойдаланиш учун мижоз (фойдаланувчи код) бу маълумотларни ўқиш имкониятига эга бўлиши керак. Бундан ташқари, ходимларни излаш учун уларни берилган маълумот билан солтиштириш хам назарда тутилади.
Класс майдонларини инкапсульяция приципига кўра ёпиқ усулда ташкил қиламиз. Бу бизга маълумотларни киритиш жараёнини назорат қилиш учун керак. Нотўғри маълумотларни киритишга уринишларни истино механизмидан фойдаланилади. Классни универсал бўлиши учун унга ходим иш ҳақини класс амалларини қайта юклаш орқали ошириш ёки камайтириш имконини эътиборга оламиз.
Шундай қилиб, масалани ечишнинг умумий тартибини қуйидагича ёзиш мумкин:
I. Бошланғич маълумотлар, натижалар ва оралиқ катталиклар.
Бошланғич маълумотлар. Ходимлар базаси матнли файлда сақланади. Файлдаги сатрларнинг максимал сони 100 та.
Натижалар. Дастур эакранга талаб қилинган маълумотларни чиқариши лозим. Бу маълумотлар бошланғич маълумотлар таркибида бўлгани учун уларга қўшимча хотира ажратиш шарт эмас. Бундан ташқари ходимларнинг ўртача иш ҳақини ҳам ҳисоблаш талаб қилингани учун ҳақиқий типдаги ўзгарувчи киритамиз..
II. Масалани ечиш алгоритми қуйидагича:

  1. Файлдан массивга ходимлар ҳақидаги маълумотларни ўқиш .

  2. Ходим ҳақидаги маълумотларни чиқариш циклини ташкил қилиш:

  3. ўртача иш ҳақини чоп қилиш.

Ходимлар ҳақидаги циклдан қандай қилиб чиқиш кераклигини аниқлаш лозим. Циклдан фамилия ўрнига Enter тугмаси чертилганда чиқишга келишиб оламиз 19.3-листинг).
using System;

Download 4,03 Mb.

Do'stlaringiz bilan baham:
1   ...   58   59   60   61   62   63   64   65   ...   102




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