Vergul Operatori
Vergul Operatori bir qancha ifodalar qatoridir. Bergul operatorining chap tomoni har doim void kabi hisoblanadi. Bu esa ifodaning o‘ng tomoni umumiy vergul-ajratilgan ifoda qiymatidan tashkil topishini bildiradi. Masalan,
y = (x = 5, x + 2);
Dastlab x ga 5 qiymatni o‘zlashtirish, keyin y ga 7 qiymatni o‘zlashtirish bajariladi. Qavs bu yerda kerak, chunki vergul operatori o‘zlashtirish operatoriga qaraganda quyi ustunlik darajasiga ega.
Operatorlarning ustunlik darajalari va assotsiativligi (bajarilish yo‘nalishi)
Turbo C++ operatorlari 7.2-jadvalda keltirilganidek 16 ta toifaga bo‘linadi.
Ular yuqori ustunlik darajasidan quyi ustunlik darajasiga qarab tartiblangan.
Har bir toifadagi operatorlar teng ustunlik darajasiga ega. C++ da teng ustunlik darajasiga ega operatorlar darajasiga ko‘ra chapdan o‘ngga yoki o‘ngdan chapga qarab hisoblanadi. Bu operatorning assotsiativlik xossasi deb ham ataladi.
Unar, Shart va O‘zlshtirish operatorlari o‘ngdan-chapga, qolgan barcha operatorlar chapdan-o‘ngga yo‘nalish bo‘yicha bajariladi.35
7.2-jadval
Toifa
|
Operator
|
Nima ish bajaradi?
|
1. Eng yuqori
|
()
[]
->
::
.
|
Funksiyani chaqirish
Massiv indeksi
C++ ga qo‘shimcha komponent selektor
C++ sohasida ruxsat/yechim
C++ga bevosita komponent selektor
|
2. Unar
|
!
~
+
-
++
--
&
*
sizeof
new
delete
|
Mantiqiy inkor (NOT)
Razryadli qo‘shish
Unar plyus
Unar minus
Pre-inkrement yoki post-inkrement
Pre-dekrement yoki post-dekrement
Manzil
Qo‘shimcha
(operand o‘lchamini baytlarda qaytarish)
(C++ xotirasini dinamik taqsimlash)
(C++ xotirasini dinamik tozalash)
|
3. Ko‘paytirish
|
*
/
%
|
Ko‘paytirish
Bo‘lish
Qoldiq (modul)
|
4. Elementga ruxsat
|
.*
->*
|
C++ elementlariga yo‘l
C++ elementlariga yo‘l
|
5. Qo‘shish
|
+
-
|
Binar plyus
Binar minus
|
6. Surish
|
<<
>>
|
Chapga surish
O‘ngga surish
|
7. Taqqoslash
|
<
<=
>
>=
|
Kichik
Kichik yoki teng
Katta
Katta yoki teng
|
8. Tenglik
|
==
!=
|
Teng
Teng emas
|
9.
|
&
|
Razryadli VA
|
10.
|
^
|
Razryadli ISTISNO
|
11.
|
|
|
Razryadli YOKI
|
12.
|
&&
|
Mantiqiy VA
|
13.
|
||
|
Mantiqiy YOKI
|
14. Shart
|
?:
|
(ifoda ? x:y ma’nosi "if ifoda then x, else y")
|
15. O‘zlashtirish
|
=
*=
/=
%=
+=
-=
&=
^=
|=
<<=
>>=
|
Oddiy o‘zlashtirish
Ko‘paytmani o‘zlashtirish
Bo‘limani o‘zlashtirish
Qoldiqni o‘zlashtirish
Yig’indini o‘zlashtirish
Ayirmani o‘zlashtirish
Razryadli VAni o‘zlashtirish
Razryadli ISTISNOni o‘zlashtirish
Razryadli YOKIni o‘zlashtirish
Chapga surishni o‘zlashtirish
O‘ngga surishni o‘zlashtirish
|
16. Vergul
|
,
|
Hisoblash
|
Yuqoridagi jadvalda C++ dagi mavjud barcha operatorlar keltirilgan. Biz bu bo‘limda faqatgina arifmetik operatorlar (-, +, *, /, %), unary operator (-), Inkrement and Dekrement operatorlari (++, --), Taqqoslash operatorlari (>, >=, <, <=, ==, !=), Mantiqiy operatorlar (!, &&, || ) va Shart operatori (?:) ni ko‘rib chiqamiz.
Shunday qilib, turli operatorlarning ustunlik darajalarini diqqat bilan ko‘rib chiqdik.
Ifodalar
Operand yoki operandlar kombinatsiyasi va hisoblaganda bitta qiymat hosil bo‘ladigan operatorlar ifodalar deb ataladi. C++ da ifodalar quyidagi turlarga bo‘linadi:
(i) Arifmetik ifoda
(ii) Mantiqiy (yoki taqqoslash ifodasi)36
(iii) Aralash ifodalar (yoki murakkab ifodalar)
(i) Arifmetik ifoda
U ixtiyoriy butun ifoda yoki haqiqiy ifoda bo‘lishi mimkin. Haqiqiy va butun ifodalar kombinatsiyasi aralash ifoda hisoblanadi.
Butun ifodalar butun arifmetik operatorlardan foydalanilgan butun o‘zgarmaslar va/yoki butun o‘zgaruvchilar birikmalaridan tashkil topadi. Butun ifodalar natijasi har doim butun bo‘ladi. Masalan,
int a= 13, b=5, q;
q=a/b;
q ning natijasi 2 bo‘ladi (butunga bo‘linganligi uchun).
Haqiqiy ifodalar haqiqiy arifmetik operatorlardan (shuni unutmangki, % haqiqiy arifmetik operator emas) foydalanilgan haqiqiy o‘zgarmaslar va/yoki haqiqiy o‘zgaruvchilar birikmalaridan tashkil topadi. Haqiqiy ifodalar natijasi har doim haqiqiy bo‘ladi. Masalan,
float x = 13.0, y= 5.0, q;
q = x/y;
q ning natijasi 2.6 bo‘ladi (suzuvchi nuqtali songa bo‘linganligi uchun).
Arifmetik ifoda hattoki o‘zgaruvchilar, o‘zgarmaslar va arifmetik operatorlar bilan birga kelgan C++ ning matematik funksiyalaridan tashkil topishi mumkin. Bu funksiyalar C++ standart kutubxonasining qismlari hisoblanadi va math.h sarlavha faylida joylashgan bo‘ladi. Shunday ekan math.h sarlavha fayli matematik funksiyalardan foydalanish uchun dasturingizda ko‘rsatilgan bo‘lishi lozim. Matematik funksiyalar keyinroq batafsil keltiriladi.
Do'stlaringiz bilan baham: |