Тағйирёбандаҳо дар С++

Печать

Инак, шумо метавонед барномаеро нависед, ки манти дилхоҳи шуморо дар экран инъикос мекунад. Инчунин, имконпазир аст, ки барномаи шумо ягон маълумотро қабул кунад. Албатта, барои қабул ва коркарди маълумот, ҷое барои нигоҳ доштани он лозим аст. Дар рафти иҷрои барнома маълумот дар тағйирёбанда (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 <iostream>
using namespace std;
int main() {
int x,y,z;
cout<<"Adadi yakum: ";
cin>>x;
cout<<"Adadi duyum: ";
cin>>y;
z=x+y;
cout<<x<<"+"<<y<<"="<<z<<endl;
z=x-y;
cout<<x<<"-"<<y<<"="<<z<<endl;
z=x*y;
cout<<x<<"*"<<y<<"="<<z<<endl;
z=x/y;
cout<<x<<"/"<<y<<"="<<z<<endl;
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. Кадом оператор ба оператори < баръакс аст?

Добавить комментарий


Защитный код
Обновить

Произведение «OFTOB.COM» публикуется на условиях лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Непортированная.