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


Операция(амал белгилари) ва ифодалар



Download 4,03 Mb.
bet12/102
Sana23.02.2022
Hajmi4,03 Mb.
#136190
1   ...   8   9   10   11   12   13   14   15   ...   102
Bog'liq
Dasturlash asoslari majmua

6.2. Операция(амал белгилари) ва ифодалар
Операция ёки амал белгилари - бу операндлар устида белгиланган тартибда бирор амални бажарувчи белги ёки белгилар кетма кетлигидир.
Ифода – маълум бир ҳисоблаш қоидасига асосан амал белгилари билан боғланган операндлардир. Ифодада амал белгилари ёрдамида боғланган операндлар иштирок этади. Операндлар ўзгармас ёки ўзгарувчи ёки функция бўлиши мумкин.
Масалан, a + 2. Бу операндлар + белгиси билан боғланган ифодадир, а ва 2 эса операнд.
С# нинг амал белгилари қуйидаги 4.2.1 жадвалда келтирилган.

4.2.1- жадвал. C# нинг амал белгилари

Категорияси

Амал белгиси

Номланиши

Биринчи даража

x()

Функция, услуб ёки делегатни чақириш

x[]

Бирор тўплам, массив ёки мажмуа элементига мурожаат

x++

Постфиксли инкремент

x--

Постфиксли декремент

new

Хотирадан жой белгилаш

typeof

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

checked

Текширилувчи код

unchecked

Текширилмайдиган код

Унар

+

Унар қўшиш амали

-

Унар айириш амали

!

Мантиқий айириш(эмас)

~

Разряд бўйича айириш

++x

Префиксли инкремент

--x

Префиксли декремент

(тип)x

Типни ўзгартириш

Мультипликатив

*

Кўпайтириш

/

Бўлиш

%

Қолдиқли бўлиш

Аддитив

+

Қўшиш

-

Айириш

Суриш

<<

Чапга суриш

>>

Ўнгга суриш

Солиштириш(таққослаш) ва типни текшириш

<

Кичик

>

Катта

<=

Кичик ёки тенг

>=

Катта ёки тенг

is

Тегишлилик

as

Келтириш, тенглаш

Тенгликни текшириш

==

Тенг

!=

Тенг эмас

Мантиқий разрядли

&

Разрядли конъюнкция (ВА)



Разрядли истисно этувчи ЁКИ амали

|

Разрядли дизъюнкция (ЁКИ)

Мантиқий

&&

Мантиқий ВА

||

Мантиқий ЁКИ

Шартли

?:

Шартли операция

Ўзлаштириш

=

Ўзлаштириш

*=

Кўпайтириб ўзлаштириш

/=

Бўлиб ўзлаштириш

%=

қолдиқли бўлиб ўзлаштириш

+=

Қўшиб ўзлаштириш

-=

Айириб ўзлаштириш

<<=

чапга суриб ўзлаштириш

>>=

ўнгга суриб ўзлаштириш

&=

разрядли ВА амалини бажариб ўзлаштириш



разрядли истисно этувчи ЁКИ амалини бажариб ўзлаштириш

|=

разрядли ЁКИ амалини бажариб ўзлаштириш

6.2.1 – жадвалда келтирилган амал белгилари - ифодаларда бажарилиш кетма-кетлиги камайиш тартибида жойлаштирилган, яъни аввал юқорида жойлшаган категориядаги амаллар бажарилади.


Агар ифодада бир нечта битта категорияга мансуб операциялар кетма-кет жойлашган бўлса, ўзлаштириш ва шартли амаллар ўнгдан чапга қараб бажарилади, қолган амаллар эса чапдан ўнгга қараб бажарилади. Амалларнинг бажарилиш кетма-кетлигини бузиш учун оддий қавслардан фойдаланилади.


7 - маъруза(2-соат)
Ўзгартиришлар. Стандарт, ошкормас ва ошкор ўзгартиришлар.


Режа:

        1. Ўзгартиришлар

        2. С# нинг асосий операциялари

7.1. Ўзгартиришлар


Қийматлар типини стандарт арифметик ўзгартириш
Ифодаларни арифметик ҳисоблаш жараёнида ҳисоблаш натижасидан келиб чиққан қиймат типини ўзгартиришга тўғри келиб қолиши мумкин. Агар операндларнинг ҳар иккиси бир хил типга тегишли бўлса ва бажарилувчи арифметик амал шу тип учун аниқланган бўлса у ҳолда натижа ҳам айнан шу типли қиймат бўлади. Тип учун арифметик амал аниқланган деб, шу тип учун ёзилган амални бажаришга рухсат этилишига айтилади.
Агар операндлар ҳар хил типли бўлса ва бу типлар учун арифметик амал аниқланмаган бўлса, ҳисоблашдан аввал кичикроқ типни унинг қийматини ва аниқлигини сақлаган холда каттароқ типга автоматик ўзгартириш бажарилади. Бундай ўзгартиришни автоматик ёки ошкор бўлмаган ўзгартириш дейилади.
Автоматик ўзгартириш қачонки қийматни йўқотишга олиб келмайдиган ҳолат бўлса шундагина амалга ошади. Акс холда ошкор ўзгартиришни амалга оширишга тўғри келади. Ошкор ўзгартириш дастурчи томонидан (тип)х амалини бажариш орқали амалга оширилади. Масалан: (int)a; Бунда қийматни аниқлилиги дастурчининг қандай тип танлашига боғлиқ бўлади.
Арифметик амаллар int типидан кичик бўлган типлар учун аниқланмаган. Бу шуни билдирадики агар ифодада sbyte, byte, short ва ushort каби типли катталиклар иштирок этган бўлса, амални бажаришдан олдин улар int типига автоматик ўзгартириб олинади, сўнгра амал бажарилади.
4.3.1 расмда автоматик ўзгартиришни амалга ошишини кетма-кетлиги келтирилган. Унга кўра ифодада операндларнинг бири иккинчисига нисбатан кичикроқ типга тегишли бўлса, ҳисоблаш жараёни давомида кичикроқ тип каттароғига автоматик ўзгартириб олинади. Ушбу ўзгартириш операндга таъсир этмайди. Агар тип чегарадан ўтиб кетса ёки расмдаги тартибга тўғри келмаса компильяция жараёнида хатолик юзага келади.
Ифодаларни ҳисоблаш жараёнида турли хил хатоликлар юзага келиши мумкин, масалан: 0 га бўлиш, хотиранинг тўлиб кетиш ва ш.к.лар. Бундай холларда барча юқори босқичли алгоритмик тилларда бўлгани каби C# да ҳам хатоликларни қайта ишлаш механизми мавжуд бўлиб, ушбу механизмдан фойдаланиб дастурнинг авария холати билан якунланишининг олди олинади. Бу механизм фавқулод(истисно)ли холатларни қайта ишлаш механизми деб юритилади.

4.3.1.-расм Типларни ошкор бўлмаган арифметик ўзгартириш кетма-кетлиги

Ҳисоблаш жараёнида хатолик юзага келса, механизм бу хатоликка мос келувчи махсус қиймат генерация қилади. Ҳар бир типнинг унга мос келувчи ўзининг фавқулод кодлари мавжуд. Бу кодлар С# да, хатоликларнинг умумий аждод синфи Exception синфи орқали тақдим этилади. Масалан, 0 га бўлишда DivideByZeroException хатолик коди, хотира етишмаслигида эса OutOfMemoryException хатолик коди қайтарилади. Дастурчи ушбу кодларни истисноли холатларни қайта ишлаш блоки try..catch конструкцияси орқали “тутиб” олади ва қайта ишлайди. Истисноли холатларни қайта ишлаш механизми тўғрисида кейинроқ батафсил тўхталиб ўтамиз.




4.4. C# да асосий операциялар

Инкремент ва декремент


Инкремент ва декремент амаллари операндни 1 қийматга ошириш ва камайтириш учун хизмат қилади. Уларнинг икки хил формаси бор бўлиб, биринчиси префиксли форма: бунда амал белгиси операнднинг олд тарафида жойлашади, иккинчиси постфиксли форма бўлиб: бунда амал белгиси операнддан кейин жойлашади. Префиксли формада аввал таъкидлаб ўтганимиздек, биринчи навбатда операнд қиймати 1 бирликка оширилади(камайтирилади), сўнгра операнднинг янги ҳосил бўлган қийматидан ифодада фойдаланилади. Постфиксли формада эса операнд шу жараёнгача бўлган қиймати ифодада ҳисобланиб бўлингандан сўнг бир бирликка орттирилади(камайтирилади).
Стандарт инкремент ва декремент амалларидан бутун, белгили, ҳақиқий ва пулли типларда фойдаланиш мумкин.


new операцияси
new операцияси янги объект яратиш учун хизмат қилади. Синтаксиси:
new тип ( [ аргументлар ] )
Мисол:
object z = new object();
int i = new int(); // бу холат int i = 0; га тенг кучли.
new операцияси бажаралиш жараёнида биринчи навбатда керакли хажмдаги жой хотирадан ажратилади, сўнгра конструктор усули орқали керакли объект инициализация қилинади. Қийматли типлар new ёрдамида эълон қилинганда ўзгарувчига бошланғич қиймат сифатида 0 ўзлаштирилади.

Download 4,03 Mb.

Do'stlaringiz bilan baham:
1   ...   8   9   10   11   12   13   14   15   ...   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