12.8-rasm. Xotiradagi int va float turidagi o‘zgaruvchilar
327
12.9-rasm rvalue va lvalue o‘zgaruvchilarini qiymatlarini
ko‘rsatadi:
lvalue ifodasi C++ da bu qiymat taqdim etilishi mumkin
bo‘lgan ifodadir. Taqdim etish operatorining (=) chap tomonida
m a’lumotlar saqlanishi mumkin bo‘lgan mavjud xotira manzilini
ta’minlaydigan lvalue bo‘lishi kerak.
Eslatma: O'zgarmas qiymat kabi e ’lon qilingan o'zgarmas
qiymatlar va identifikatorlar (const kalit so'zini ishlatib e ’lon
qilingan) lvalue hisoblanmaydi va faqat taqdim etish operatorining
о ‘ng tomonida turishi mumkindir.
Xotira
adresi
5000
5001
5002
5003
5004
5005
Contents of memory
35
99
О ‘zgaruvchi
nomi
f rvalue of a a 35
] (value of a = 5001
f
rvalue of b = 99
^fva{ueofb = 5004
Xotira
12.9-rasm. rvalue va lvalue o‘zgaruvchilarni ko‘rinishi
O'zgaruvchini e ’lon qilish
uni boshlang'ich qiymatini
ta ’minlamaydi,
ya ’ni,
о 'zgaruvchi
aniqlanadi,
ammo
o'zgaruvchining
qiymati
aniqlanmagan.
E ’londa
bitta
o ‘zgaruvchidan
k o ‘ra
k o ‘proq
o ‘zgaruvchilar
bor
bo‘lsa,
328
o ‘zgaruvchilar ro ‘yxatda vergul bilan ajratilgan b o ‘ladi. Misol
uchun,
int i, j, k;
float x, y;
double d l,
d2. d3;
Bu yerda, yuqorida eslatib o ‘tilgan e ’lon qilingan barcha
o ‘zgaruvchilarda aniqlanm agan qiymatlardir.
Eslatma:
Agar o'zgaruvchiga hech qanday qiymat taqdim
etilmasa yoki kiritilmasa, и holda и hech narsali (yoki xato, yo ‘q)
qiymatga ega bo ‘ladi. Bu hech narsali qiymat, xotiraning xonasini
oldingi safar ishlatgan, dasturdan qolgan qiymat ham b o ‘lishi
mumkin.
0 ‘zgaruvchini aniqlash (initsiallash) u e ’lon qilingandan keyin
uni boshlang‘ich qiym at bilan ta ’minlash, degan m a’noni anglatadi.
C++ o ‘zgaruvchini e ’lon qilishda ikki turdagi aniqlashni ishlatadi.
M isol uchun, int i = 40; va int i (40);
B u yerda ikkila operator ham i ni 40 qiymati bilan aniqlaydi.
0 ‘zgaruvchini aniqlashga yana bir nechta misollar:
float salary = 20000.0; char chi = ‘A ’, ch2 = ‘a’ ;
double amount = 570.15;
C++ tilida o'zgaruvchilar shuningdek dasturni bajarilishi
vaqtida ham aniqlanishi mum kin. Bu bir
dinamik aniqlashtirish
sifatida tanilgan. 0 ‘zgaruvchi dasturni bajarilishi vaqtida (bajarilish
jarayonida) e ’lon qilish yordam ida ham aniqlanishi m umkin. Misol
uchun,
int total =amount + depozit;
Bu yerda,
total
o ‘zgaruvchisi, dasturni bajarilishi vaqtida,
amount
va
deposit
qiym atlar bilan aniqlanishi mumkin.
Eslatma:
O'zgaruvchini
C + +
dasturida istalgan joyda, lekin
unga birinchi yo ‘llanma bergungacha, e ’Ion qilish mumkin.
Taqdim etish operatori
Taqdim etish operatori о ‘zgaruvchi yoki о ‘zgarmas qiymatga
biror qiymat taqdim etish uchun ishlatiladi.
M isol uchun,
int x = 50;
329
float a = 30.6;
const float P I = 3.14159;
const char ch = ‘A ’ ;
“Teng” belgisi = o‘ng tomondagi ifodani qiymatini hisoblaydi
va chap tomonda turgan o‘zgaruvchiga qiymatni taqdim etadi.
Taqdim etish operatorining umumiy yozilish shakli quyida
ko'rsatilgan:
lvalue = rvalue;
Bu yerda, “=” belgisi taqdim etish operatori deb ataladi . C++
da, taqdim etishlar zanjirga birlashtirilishi mumkin, ya’ni ular
ketma-ket bajarilishi mumkin. Buni, bir xil qiymatlami bir nechta
elementlarga taqdim etilishi kerak bo‘lganda foydalidir.
Misol uchun,
int i, j, k;
i = j = к = 0; yoki (i = (j = (k = 0 )));
Bu yerda, 0 eng aw alo
к
ga taqdim etiladi, keyin
к
ning
qiymati
j
ga, keyin
j
ning qiymati
I
ga taqdim etiladi. Har doim
yodda saqlash kerakki, bu zanjir operatori o‘zgaruvchilami aniqlash
uchun e’lon qilish vaqtida ishlatilishi mumkin emas. Lekin biz,
yozishimiz mumkin,
int i = 0, j = 0, к = 0;
Turbo C++ ning 3.0 versiyasi zanjirga eng ko‘pi bilan 70 ta
taqdim etishni imkonini beradi. Taqdim etishning bittalik
operatorida ishlatiladigan barcha o‘zgaruvchilar oldindan e ’lon
qilinishi kerak.
Turbo C++ ning 3.0 versiyasida zanjirga 70 tadan ortiq
o‘zgaruvchilami, bitta taqdim etish operatori orqali, birlashtirishga
harakat qilgan holimizda, ekranga quyidagi xato haqidagi xabari
chiqariladi:
Xotira etishmavapti
С
++ da, sozlangan taqdim etish kabi ma’lum bo‘lgan taqdim
etishning boshqa usuli ham mavjud. Misol uchun,
int i, j;
i = (j = 20) * 4;
Bu yerda, (j = 20) sozlangan taqdim etish ko‘rinishiga egadir.
Ehg awalo, 20 qiymati j ga taqdim etiladi, va keyin natija 20 * 4 =
330
80 i
ga taqdim etiladi. Bu operator quyidagi ikkita operatorlar bilan
bir xil bo‘ladi:
j = 20; z = j * 4;
Eslatma: Siz о ‘zgaruvchilarga raqamli qiymatlami taqdim
etganingizda, hech qachon vergullarni ishlatmang.
Modifikatorlar turlari
C++da, boshlang‘ich ma’lumotlar turlari
(void
dan tashqari)
ba’zi bir talablarga muvofiq modifakatsiyalanishi (o‘zgartirilishi)
mumkin.
signed, insigned, long
va boshqa kalit so‘zlari turlami aniqlash
uchun ishlatilishi mumkin. C++ da ma’lumotlar turini tasvirlash
kompyuter turi bilan bog‘liqdir. 12.4-jadvalda ma’lumotlar turlarini
va ulaming modifikatorlarini
16-razryadli kompyuter uchun
ko‘rinishi berilgan.
signed
turidagi modifikator
char
va
int
turidagi ma’lumotlarga
qo‘llaniladi. Bu, mavjud bo‘lmagan tur uchun bo‘lgan o ‘sha
samaraga ega boladi.
Int
ma’lumotlar turi indamaslik bo‘yicha
taqdim etiladi.
Unsigned
turidagi
modifikator
char
va
int
turidagi
ma’lumotlarga qoilaniladi. Bu shu turdagi ma’lumotlarga faqatgina
musbat qiymatlarga ega bo‘lishini bildiradi.
Unsigned
turidagi
modifikator, o‘zgamvchilami diapazonini va hech qachon manfiy
bo‘lmagan o ‘zgaruvchining qiymatlarini oshirishi uchun, masalan,
talabalar soni, maqsadlar soni yoki sport musobaqalaridagi ochkolar
sh.o‘. ishlatiladi
Tilning ba’zi bir versiyalari
unsigned
ni suzib yuradigan
m a’lumotlar turiga (ishorasiz
double
dagi kabi) qo‘llash imkonini
beradi. Biroq, bu sizning dasturingizni harakatchanligini kamaytiradi
va odatda bunga yo‘l qo‘ymaslikka harakat qilish kerak.
Long
turidagi modifikatori
char, int
va
double
turidagi
ma’lumotlarga qo‘llaniladi. Bu, shuningdek, o‘zgaruvchilar bilan
bog‘liq qiymatlar diapazonni oshiradi.
331
12.4-jadva!52
M a’lu m o tlar tu rla ri va ularn in g m odifikatorlari
Chop
etish
Oralig'i
baytlar
tasvirlaydi
dan
gacha
char
- 128
127
1
belgili
signed
char
-128
127
1
belgili
unsigned
char
0
255
1
belgili
int
- 32,768
32,767
2
butun
sonlar
unsigned
int
0
65,535
2
butun
sonlar
long int
-2,147,483,648
2,147,483,648
4
butun
sonlar
unsigned
long int
0
4,294,967,295
4
butun
sonlar
float
-3.4 e 38
3.4 e 38
4
haqiqiy
sonlar
double
-1.7 e 308
1.7 e 308
8
haqiqiy
sonlar
long
double
-3.4 e 4932
3.4 e 4932
10
haqiqiy
sonlar
Turli turdagi modifikatorlar yana birgalikda ham ishlatilishi
mumkin. Quyidagi misollar sizga modifikatorlar turlari haqida
umumiy tasaw um i beradi:
unsigned int no o f students;
unsigned long int factorial;
long double x;
52 J.B .D ixsit. “ F undam entals o f com puter program m ing and IT” 2011. 212 p.
332
|