С# тилининг типлари тизими Маълумотларнинг типлари



Download 95,52 Kb.
bet2/9
Sana24.02.2022
Hajmi95,52 Kb.
#220308
1   2   3   4   5   6   7   8   9
Bog'liq
курс иши

Бутун типлар.
Жадвал 2

Тип

Диапазони

Формати(разряди)

System.SByte

-128…127

8 бит, ишорали

System.Int16
(System.Short)

-32768…32767

16 бит, ишорали

System.Int32

-2 147 483 648…2 147 483 647

32 бит, ишорали

System.Int64

-263…263

64 бит, ишорали

System.Byte

0…255

8 бит, ишорасиз

System.Uint16
(System.Ushort)

0…65535

16 бит, ишорасиз

System.Uint32
(System.Uint)

0…4 294 9 67 295

32 бит, ишорасиз

System.Long

-9 223 372 036 854 775 808-
9 223 372 036 854 775 807

64 бит, ишорали

System.Long

0 - 18 446 744 073 709 551 615

64 бит, ишорасиз



Ҳақиқий типлар
Жадвал 3

Тип

Диапазони

Белгили сонлар хонаси(разряди)

Формати

System.Single

1.5*1045…3.14*1038

7-8

4 байт

System.Double

-5.0*10324…1.7*10308

15-16

8 байт

Белгили типлар


Асосий белгили тип: System.Char;
Асосий сатрли тип: System.String;

C# да белгили типларнинг қийматлари битталик қўштирноқ(апостроф) билан, сатрли типларнинг қийматлари иккиталик қўштирноқ билан берилади.


Масалан:
String x=”f”;
Char ch=’f’;
Мантиқий тип
Асосий мантиқий тип: System.Bool;
Қабул қилувчи қийматлари: true, false.
2. Қийматлар билан характерланган типлар.
3. Мурожаат этиш типлари.
Ўзгарувчилар
Ўзгарувчи - дастур бажарилиши жараёнида ўз қийматини бир ёки бир неча маротаба алмаштириши мумкин бўлган хотиранинг номланган қисми. Ном эса ўзгарувчи белгиланган сўз, ҳарф ёки ҳарф ва белгилар кетма кетлиги бўлиши мумкин. Дастурда фойдаланилувчи барча ўзгарувчилар аниқ эълон қилиниши лозим. Ҳар бир ўзгарувчи эълон қилинаётганда унинг номи ва типи кўрсатилади. Ўзгарувчининг номи унинг қиймати жойлашган хотира қисмига мурожаат қилиш учун хизмат қилади. Тип эса маълумот учун хотирадан қанча жой ажратилиши лозимлигини билдиради.
Ўзгарувчилар қуйидагича эълон қилиниши мумкин:
<ўзгарувчи типи> <ўзгарувчи номи> [= ўзлаштирилувчи қиймат];

Мисоллар:


int a=10, c=12,abc=0;
double b=11.5;
//a=10;
Console.Writeline(a);

bool isEnabled = true;


int x;
double y=3.0;
string hello="Hello World";
char c='s';
int a=4;
int z=a+5;

Ўзгарувчини эълон қилишда бир типли бир нечта ўзгарувчиларни битта тип ёзиб, сўнгра шу типли ўзгарувчиларни кетма-кет “,” билан ажратган холда ёзиш орқали эълон қилиш ҳамда тўғридан-тўғри уларнинг бошланғич қийматини бериб кетиш мумкин, яъни уларни инициализация қилиб олиш мумкин. Ўзгарувчини инициализация қилиш деганда эълон қилинган ўзгарувчига бошланғич қийматни бериш тушунилади. Масалан:


int a, b = 1;


Бу ерда:
a int типидаги ўзгарувчи бўлиб, унинг бошланғич қиймати ўрнатилмаган, яъни инициализация қилинмаган;
b int типидаги ўзгарувчи бўлиб, унинг бошланғич қиймати 1 га тенг;

float x = 0.1, y = 0.1f;


Бу ерда: float типидаги х ва y ўзгарувчиларга бошланғич холда 0.1 қиймат ўзлаштирилмоқда. Фарқи, x ўзгарувчи инициализация қилинаётганда аввал унинг типи double типидаги константа сифатида шакллантирилади сўнгра float типига ўзгартирилади, y ўзгарувчи эса тўғридан тўғри оралиқ ўзгартиришсиз float типи сифатида эълон қилинади ва 0.1 ни ўзлаштириб олади.


Ўзгарувчиларни эълон қилиш жараёнида уларнинг қиймати тўғридан-тўғри ифода билан бериб кетиш мумкин, фақат ифодада иштирок этувчи ўзгарувчилар аввалроқ инициализация қилинган бўлиши лозим, масалан:
int b = 1, a = 100;
int x = b * a + 25;

Баъзи холларда ўзгарувчига null (бўш) қиймат ўзлаштириш лозим бўлади. string типидаги ёки ишорат(ссылка)ли типдаги ўзгарувчилар тўғридан тўғри null қиймат қабул қилади.


Мисол учун: string=null;


Оддий типдаги ўзгарувчилар эса тўғридан-тўғри null қиймат олмайди. Улар бўш қиймат олиши учун типни эълон қилгандан сўнг ? белгиси қўйиш лозим бўлади.


int? i = null;

C# да ўзгарувчиларни ихтиёрий жойда эълон қилиш мумкин.



using System;
class ozgaruvchi
{
public static void Main()
{
int i; //ўзгарувчини эълон қилиш;
i=10; // ўзгарувчига қиймат бериш
Console.WriteLine(i.tostring());// экранга чиқариш
Console.ReadKey(); //бирор тугма босилгунча кутиш
}
}



C# да катта ва кичик ҳарфли ўзгарувчи ва ўзгармасларнинг номлари бир-биридан фарқланади. Катта ва кичик ҳарфда ёзилган бир ҳил номли ўзгарувчилар алоҳида-алоҳида ўзгарувчи ва ўзгармаслар сифатида ҳисобланади.


C# да ўзгарувчининг аввалги қийматини бирга ошириш учун кетма-кет жойлашган ++, камайтириш учун кетма-кет жойлашган –- амал белгиларидан фойдаланиш мумкин.
Агар ++(--) ўзгарувчининг ўнг томонида жойлашган бўлса, аввал қиймати 1 га оширилувчи(камайтирилувчи) ўзгарувчининг жорий қиймати бўйича ҳисоблаш ишлари бажарилиб, ундан сўнг унинг қиймати 1 га оширилади(камайтирилади).
int i=1;
int j=i++;

Ушбу холда j га аввал 1 ўзлаштирилади. Сўнгра i нинг қиймати бирга оширилади. Яъни, ҳисоблашдан сўнг j=1, i=2 бўлади.
Агар ++(--) ўзгарувчининг чап томонида жойлашса, у холда ўзгарувчининг қиймати ҳисоблашдан аввал 1 га оширилади(камайтирилади),сўнгра ҳисоблаш бажарилади. Масалан:
int i=1;
int j=++i;
...
Ушбу холда i нинг қиймати аввал 1 га оширилади, сўнгра ҳисоблаш натижаси j га узатилади. Яъни, ҳисоблаш натижасида, j=2, i=2 бўлади.
Қуйидаги холатни кўрамиз:
...
int i=1;
Console.WriteLine(“i=”+i++);
...
Ушбу дастур коди бажарилиши натижасида, аввал i нинг жорий қиймати (яъни 1) экранга чиқарилади, сўнгра i нинг қийматига 1 қўшилади.
Агар, ўзгарувчига уни эълон қилиш вақтида тўғридан-тўғри қиймат ўзлаштириш, ҳисоблаш ишлари орқали амалга ошириладиган бўлса, амал бажарилувчи операндлар барчаси, бир хил типга эга бўлиши ҳамда натижа ҳам эълон қилинувчи ўзгарувчи типи диапазонидан чиқиб кетмаслиги лозим. Масалан:
int i=15*10; //тўғри;
byte j=10;
int i=j*50; /* тўғри; чунки, j қабул қилиш мумкин бўлган қийматлар int типи диапазонидан чиқиб кетмайди шу сабабли қабул қилади*/;

int k=15+10.0; //хато. 10.0 бутун сон эмас;

byte b=255*3; //Хато. Натижа byte диапазонидан чиқиб кетади.


C# дастурлаш тилидаги дастур ўзида услуб(усул) ва маълумотларни жамлаган синфлардан ташкил топади. Синф блоки ичида тўғридан тўғри эълон қилинган ўзгарувчи синфнинг майдони дейилади. Синф ичида эса алоҳида блок ичида синфнинг услуб(усул)лари ёзилади. Услуб ичида эълон қилинган ўзгарувчи локал ўзгарувчилар дейилади. Ўзгарувчилардан фойдаланилганда уларнинг фойдаланиш чегараси деган тушунчага эътибор бериш лозим. Ўзгарувчининг фойдаланиш чегараси уни инициализация қилинган жойдан бошлаб, дастурнинг шу қисмини якунловчи блокгача давом этади. Блок – бу фигурали қавслар билан чегараланган дастур кодидир. Блокнинг вазифаси – операторларни гуруҳлашдан иборат. С# да ҳар қандай ўзгарувчи қандайдир блок ичида эълон қилинади, масалан: синф блоки ичида, синф услубининг блоки ичида, услубнинг ичида жойлашган ички услуб ичида ва ҳ. Ўзгарувчининг номи унинг фойдаланиш чегараси ичида, яъни у жойлашган блок ичида уникал бўлиши лозим. Қуйидаги мисолни кўриб ўтайлик:

class X // X номли синфни эълон қилиш


{
int A; // Х синфнинг А номли майдонини эълон қилиш
int B; // Х синфнинг В номли майдонини эълон қилиш

void Y()


{//--Х синфнинг Y номли услуби блоки бошланиши---

int C; // C номли локал ўзгарувчи, унинг фойдаланиш чегарси фақат Y услуби блоки ичида


int A; // А номли локал ўзгарувчи, унинг фойдаланиш чегарси фақат Y услуби блоки ичида ва Х синфнинг юқорида эълон қилинган А майдони билан конфликт бермайди

{ //====== Y услубининг ички блоки бошланиши=========


int D; // D номли локал ўзгарувчи, унинг фойдаланиш чегарси фақат ушбу ички блок ичида
int А; // Бу хато. Чунки Y услуби ичида А номли ўзгарувчидан аввал фойдаланилган!

С = B; // С ўзгарувчига Х синфнинг В майдони қиймати ўзлаштирилмоқда


С = this.A; // С ўзгарувчига Х синфнинг А майдони қиймати ўзлаштирилмоқда


} // ======= Y услубининг ички блоки охири=====


} // Х синфнинг Y номли услуби блоки охири---


} // X синф блоки охири

Ўзгарувчилар дастурда улар эълон қилинган жойда яратилади ва улар жойлашган блок тугашида тозалаб ташланади. Шу блокка қайта мурожаат этилганда ўзгарувчи янгидан яратилади.


Ўзгармаслар.
Ўзгармаслар дастур бажарилиши жараёнида бир марта қиймат берилгандан сўнг қийматини ўзгартириб бўлмайдиган катталиклардир. Ўзгармасларни C# да const калит сўзи билан эълон қилинади.

const double Pi = 3.14;


Агар ўзгармас бутун бошли дастурнинг барча қисмларида фойдаланиш учун рухсат этилган бўлса, public калит сўзи билан қўлланилади.


public const double Pi = 3.14;



Ўзгармасларнинг қиймати ифода кўринишида берилиши ҳам мумкин.



Download 95,52 Kb.

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




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