Тагйирёбандахо дар С++

Инак, шумо метавонед барномаеро нависед, ки манти дилхохи шуморо дар экран инъикос мекунад. Инчунин, имконпазир аст, ки барномаи шумо ягон маълумотро кабул кунад. Албатта, барои кабул ва коркарди маълумот, чое барои нигох доштани он лозим аст. Дар рафти ичрои барнома маълумот дар тагйирёбанда (variable) нигох дошта мешавад. Дар компиляторхои гуногун намуди (type) бисёри тагйирёбандахо мавчуданд. Дар С++ пеш аз истифодаи ягон тагйирёбанда, онро эълон кардан лозим аст (variable declaring). Хангоми эълони тагйирёбанда намуд ва номи онро аник кардан лозим аст. Якчанд намудхои асоситарин инхоянд: char, int, float.

Тагйирёбандахои намуди char барои нигох доштани рамзхои алохида лозиманд. Мисол, 'a', '(', '+', '5'.

Тагйирёбандахои намуди int барои нигох доштани ададхои бутун лозиманд. Мисол, 13, 20000, -2323.

Тагйирёбандахои намуди float барои нигох доштани ададхои хакики (кисми касри дахи дошта) лозиманд. Мисол, 13.5, 20.0065, -2323.33, 345.0.

Калимахои char, int, float калимахои махсус мебошанд, яъне истифодаи онхо ба гайр аз хангоми эълони тагйирёбандахо манъ аст. Тарзи эълони тагйирёбанда чунин аст:

намуд  <ном>; 

Мумкин аст, ки якчанд тагйирёбандахои як намуд дар як сатр эълон шаванд, номи тагйирёбандахо бояд аз хамдигар бо вергул (,) чудо карда шаванд:

намуд  <номи1>, <номи2>, ..., <номиn>; 

Эълони тагйирёбанда ё мачмуи тагйирёбандахо бояд, ки бо нуктавергул (;) ба итмом расад. Кайд мекунем, ки истифодаи (ё ки даъвати) функсияхо низ бояд, ки бо нуктавергул (;) ба итмом мерасад. Агар шумо ягон тагйирёбандаи эълоннашударо истифода бурдани шавед, программаи шумо кор намекунад, ва шумо ахбор дар бораи хатогиатонро мегиред.

Якчанд мисолхои эълони тагйирёбандахоро меорем:

int x;
int a,b,c, a22;
char harf, ramzi2;
float salary;

Гарчанде, ки шумо метавонед сохиби якчанд тагйирёбандаи як намуд бошед, лекин якчанд тагйирёбандаи номи якхела дошта наметавонанд. Зиеда аз ин, мавчудияти функсия ва тагйирёбандаи номашон якхела низ имконнопазир аст.

Баъди эълон намудани тагйирёбанда вобаста ба намуди он дар хотираи фаври (RAM, Random Access Memory) барои ин тагйирёбанда чой чудо карда мешавад. Дар як катор забонхои барномасози баъди эълони тагйирёбанда, автомати ба он нул бахшида мешавад. Кимати аввалаи тагйирёбанда баъди эълон дар С++ маълум нест, лекин имконияти бахшидани кимати аввала ба тагйирёбанда мавчуд аст. Мисол:

int a=2; 

ки ин баробаркувва аст ба

int a; 
a=2;

Истифодаи тагйирёбандахо, албатта, бе тагйир додани кимати онхо шавковар нест. Амалхои арифметикие, ки бо тагйирёбандахо истифода бурда мешаванд: + (чамъ), - (тарх), * (зарб), / (таксим).

//namuna03.cpp #include
int main() {
int x,y,z;
cout<<"Adadi yakum: ";
cin>>x;
cout<<"Adadi duyum: ";
cin>>y;
z=x+y;
cout<<x<<"+"<<y<<"="<<z;
z=x-y;
cout<<x<<"-"<<y<<"="<<z;
z=x*y;
cout<<x<<"*"<<y<<"="<<z;
z=x/y;
cout<<x<<"/"<<y<<"="<<z;
return 0;
}

Биёед ин мисолро тахлил мекунем. Ба воситаи калимаи махсуси int се тагйирёбандаи бутуни x, y, z эълон карда шудаанд. Ба воситаи функсияи cin ба тагйирёбандахои x ва y аз клавиатура кимат дохил мекунем. Истифодабаранда баъди дохил кардани кимат бояд клавишаи Enter-ро пахш кунад. Дар хотир нигох доштан зарур аст, ки тагйирёбандахои эълоншуда ададхои бутунро нигох медоранд. Хангоми дохил кардани адади кисми касри дошта, кисми касри аз тарафи барнома партофта мешавад. Кайд мекунем, ки дар функсияи cout номи тагйирёбандахо бе нохунак навишта шудааст. Набудани нохунакхо ба компилятор хабар медихад, ки ин тагйирёбанда аст ва барнома хангоми кор бояд номи тагйиёбандаро бо кимати он иваз намояд.

Оператори бахшиш (=) аз рост ба чап амал мекунад. Яъне, баъди сатрхои

float s=2.6;
w=-3.78;
s=w;

кимати хам s ва хам w ба -3.78 баробар мешавад. Дар тарафи чапи оператори бахшиш бояд, ки якто ва факат якто тагйирёбанда истад. Аломати баробари (=) дар як катор забонхо барои санчидани баробарии кимати тарафи рост бо чап низ истифода мешавад, барои ин максад дар С++ оператори == мавчуд аст (дуто аломати баробари).

Дар чадвали поени операторхои муносибат оварда шудаанд:

 

ОператорМазмунМисол
< Хурд 3<5
<= Хурд ё баробар F<=154
> Калон A2>5*c4
>= Калон ё баробар b+34>=z-2
== Баробар a==9
!= Нобаробар 13!=x

САВОЛХО БАРОИ МУСТАХКАМКУНИ
1. Тагйирёбанда чист?
2. Намудхои асосии тагйирёбандахо кадомхоанд?
3. Бигуед, ки a=b аз a==b чи фаркият дорад?
4. Кадом оператор ба оператори < баръакс аст?

Дополнительная информация