Ўзгарувчилар ва ифодалар



Yüklə 38,2 Kb.
səhifə3/6
tarix14.12.2023
ölçüsü38,2 Kb.
#178436
1   2   3   4   5   6
3-maruza KRILL

Unar amallari

++
--
Sizeof
~
!
-
+
&
*
new
delete
(type)

1 ga orttirish
1 ga kamaytirish
O’lcham
razryadli inkor
mantiqiy inkor
arifmetik inkor (unar minus)
unar plyus
manzilni olish
manzilni ajratish
xotira ajratish
xotirani tozalash
tipni almashtirish

Binar va ternar amallari

*
/
%

ko’paytirish
bo’lish
bo’lishdan qoldiq

+
-

qo’sish
ayirish

<<
>>

chapga siljish
o’ngga siljish

<
<=
>
>=

Kicnik
kam yoki teng
katta
katta yoki teng

==
!=

Teng
teng emas

&
^
|
&&
||

razriyadli konyunksiya (VA)
razryadli inkor (YOKI)
razryadli dizyunksiya (YOKI)
mantiqiy VA
mantiqiy YOKI

? :

shartli amal

=

qiymat berish

*=

ko’paytirishli qiymat berish

/=

bo’lishli qiymat berish

%=

Qoldiq hisoblashli qiymat berish

+=

qo’shishli qiymat berish

- =

ayirishli qiymat berish

<<=
>>=

qiymat beruvchi chapga siljish
qiymat beruvchi o’ngga siljish

&=

qiymat beruvchi razryadli VA

|=

qiymat beruvchi razryadli YOKI

^=

qiymat beruvchi razryadli inkor YOKI

.

hisoblashni yakunlash

Asosiy amallarni batafsil qaraymiz.


1 ga orttirish va kamaytirish amallari (++ va - -). Bu amallar inkrement va dekrement deb ham aytilib, ikkita yozish shakliga ega – prefiksli, bunda amal operand oldiga yoziladi va postfiksli shakllar. Prefiks shaklda avval operand o’zgartiriladi, so’ngra uning qiymati natijaviy qiymatiga aylanadi, postfiks skaklda ifodaning qiymati bo’lib operandning dastlabki qiymati hisoblanadi, so’ngra u o’zgartiriladi.
#include
int main( ) {
int x = 3, у = 3;
printf ("prefiks ifoda qiymati: %d\n", ++х);
printf ("postfiks ifoda qiymati: %d\n", у++);
printf ("orttirmadan so’ng x ning qiymati: %d\n", х);
printf ("orttirmadan so’ng y ning qiymati: ^d\n", у);
return 0;
}
Dastur ishining natijasi:
Prefiks ifoda qiymati: 4
Postfiks ifoda qiymati: 3
Orttirmadan so’ng x ning qiymati: 4
Orttirmadan so’ng y ning qiymati: 4
Inkrement amalining operandi umumiy holda L-qiymat (L-value) hisoblanadi. Qiymatni joylashtirish mumkin bo’lgan xotiraning biror qismini manzillovchi ixtiyoriy ifoda shunday ifodalanadi. Uning nomi qiymat berish amalidan paydo bo’lgan, chunki uning chap (Left) qismi amal natijasi xotira sohasining qaysi qismiga joylashtirishi mumkinligini aniqlaydi. O’zgaruvchi L-qiymatining xususiy holi hisoblanadi.
O’lchamini aniqlash sizeof amali obyektning yoki tipning baytlardagi o’lchamini aniqlash uchun mo’ljallangan va 2 ta shaklga ega:
Sizeof daraja
Sizeof (tip)
Misol:
#include
int main( ) {
float x = 1;
cout << "sizeof (float) :" << sizeof (float);
cout << "\nsizeof x :" << sizeof x;
cout << "\nsizeof (x + 1.0) :" << sizeof (x +1.0);
return 0;
}
Dastur ishi natijasi:
sizeof (float) : 4
sizeof x : 4
sizeof (x + 1.0) : 8
Oxirgi natija jimlik bo’yicha xaqiiy konstantalar double tipiga ega, uzunroq sifatida x o’zgaruvchi va butun ifoda tipiga keltiriladi qavslar unda turuvchi ifoda qo’shishga nisbatan katta o’zgaruvchiga ega tipga keltirish amalidan oldinroq hisoblanishi zarur.
( - , ! va ~ ) inkor amallari. Arifmetik amal (- unar minus) butun yoki haqiqiy tip operandi ishorasi qarama-qarshisiga o’zgartiradi. Mantiqiy inkor (!) natijada agar operand rost bo’lsa (nol bo’lmasa ), teng bo’lsa 1 qiymat beradi.
Operand butun yoki haqiqiy tipda bo’lishi lozim, hamda ko’rsatgich tipga ega bo’lishi mumkin. Razryadli inkor (~) butun sonli operand ikkilik tasvirida har bir razryadni ifodalaydi.
( / ) bo’linish va (%) bo’lishdan qoldiq. Bo’lish amali arifmetika tipidagi operandlarga qo’llaniladi. Agar ikkala operand butun sonli bo’lsa, amal natijasi butun songacha yaxlitlanadi, aks holda, natija tipi almashtirish qoidalari bilan aniqlanadi. Bo’lishdagi qoldiq amali faqat butun sonli operandlarga qo’llaniladi. Natija ishorasi amalga oshirishga bog’liq.
#include
int main(){
int x = 11, у = 4;
float z = 4;
printf ("bo’lish natijalari: %d %f\n", x/y, x/z);
printf ("qoldiq: %d\n", x^y);
return 0;
}
Dastur ishi natijasi:
Bo’linish natijalari: 2 2.750000
Qoldiq: 3
Siljitish amali (<< va >>) butun sonli operandlarga qo’llaniladi. Ular birinchi operand ikkilik tasvirini ikkinchi operand bergan ikkilik razryadlar soniga chapga yoki o’ngga siljitadi. Chapga siljitishda (<<) bo’sh qolgan razryadlar nollar bilan to’ldiriladi. O’ngga siljitishda (>>) berilgan operand ishorasiz tip bo’lsa bo’sh qolgan bitlar nollar bilan to’ldiriladi, aks holda, ishorali razryad bilan to’ldiriladi. Siljitish amallari to’lib ketishi va ahamiyatlilikning yo’qolishini e’tiborga olmaydi.
(<, <=, >, >=, ==, != ) munosabat amllari. Birinchi operandni ikkinchisi bilan taqqoslaydi. Operandlar arifmetik tipda yoki ko’rsatkichli bo’lishi mumkin. Amal natijasi true yoki false bo’ladi (nolga teng bo’lmasa ixtiyoriy true sifatida qabul qilinadi). Tenglik va tengsizlikka taqqoslash amallari qolgan taqqoslash amallariga nisbatan xam afzalikka ega.

DIQQAT
Tenglikka tekshirish(= =) va qiymat berish (=) amali orasida farqqa e’tibor bering, (=) amali natijasi chap operandga berilgan qiymat hisoblanadi.

Yüklə 38,2 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin