4. Operatorlar

C++ dasturlarida ko‘pincha hisoblash va taqqoslash ishlarini bajarishimiz kerak bo‘ladi.

Masalan:

10 + 5

yoki:

yosh >= 18

Bunday amallarni bajarish uchun operatorlar ishlatiladi.


Arifmetik operatorlar

Matematik hisoblash uchun quyidagi operatorlardan foydalanamiz:

Operator Ma'nosi Misol
+ Qo‘shish 10 + 5
- Ayirish 10 - 5
* Ko‘paytirish 10 * 5
/ Bo‘lish 10 / 5
% Qoldiq 10 % 3

Qo‘shish

+ ikkita sonni qo‘shadi.

int a = 10;
int b = 5;

cout << a + b;

Natija:

15

Ayirish

- ayirish uchun ishlatiladi.

int a = 10;
int b = 5;

cout << a - b;

Natija:

5

Ko‘paytirish

* ko‘paytirish uchun ishlatiladi.

int a = 10;
int b = 5;

cout << a * b;

Natija:

50

Bo‘lish

/ bo‘lish uchun ishlatiladi.

int a = 20;
int b = 5;

cout << a / b;

Natija:

4

Lekin int bilan bo‘lishda kasr qismi saqlanmaydi.

Masalan:

int a = 5;
int b = 2;

cout << a / b;

Natija:

2

Chunki 5 / 2 matematik jihatdan 2.5, lekin ikkala qiymat ham int.

Kasr natija kerak bo‘lsa, double ishlatish mumkin:

double a = 5;
double b = 2;

cout << a / b;

Natija:

2.5

Qoldiq operatori %

% bo‘lishdan qolgan qoldiqni beradi.

Masalan:

cout << 10 % 3;

Natija:

1

Chunki:

10 / 3 = 3

va:

1

qoldiq qoladi.

Yana:

cout << 20 % 5;

Natija:

0

% qayerda ishlatiladi?

Masalan, son juft yoki toq ekanligini tekshirishda.

Agar:

son % 2 == 0

bo‘lsa, son juft.

Masalan:

int son = 10;

if (son % 2 == 0) {
    cout << "Juft son";
}

Natija:

Juft son

Taqqoslash operatorlari

C++ da ikkita qiymatni solishtirish uchun quyidagi operatorlardan foydalanamiz:

Operator Ma'nosi
== Teng
!= Teng emas
> Katta
< Kichik
>= Katta yoki teng
<= Kichik yoki teng

==

== ikkita qiymat tengligini tekshiradi.

Masalan:

int a = 10;
int b = 10;

cout << (a == b);

Natija:

1

Bu true ekanligini bildiradi.


!=

!= qiymatlar teng emasligini tekshiradi.

int a = 10;
int b = 5;

cout << (a != b);

Natija:

1

Chunki 10 va 5 teng emas.


> va <

Masalan:

int yosh = 20;

cout << (yosh > 18);

Natija:

1

Chunki 20 soni 18 dan katta.

Yoki:

cout << (yosh < 18);

Natija:

0

Chunki 20 soni 18 dan kichik emas.


>= va <=

>= katta yoki teng degani.

int yosh = 18;

cout << (yosh >= 18);

Natija:

1

<= kichik yoki teng degani.

int yosh = 18;

cout << (yosh <= 18);

Natija:

1

Mantiqiy operatorlar

Bir nechta shartni birlashtirish uchun mantiqiy operatorlardan foydalanamiz.

Asosiylari:

Operator Ma'nosi
&& Va
|| Yoki
! Emas

&&

&& ikkala shart ham to‘g‘ri bo‘lishini talab qiladi.

Masalan:

int yosh = 20;

cout << (yosh >= 18 && yosh <= 30);

Natija:

1

Bu yerda ikkala shart ham to‘g‘ri:

yosh >= 18

va:

yosh <= 30

||

|| shartlardan kamida bittasi to‘g‘ri bo‘lsa, true beradi.

Masalan:

int yosh = 15;

cout << (yosh < 18 || yosh > 60);

Natija:

1

Birinchi shart to‘g‘ri bo‘lgani uchun natija true.


!

! qiymatni teskarisiga o‘zgartiradi.

Masalan:

bool yomgir = false;

cout << !yomgir;

Natija:

1

Chunki yomgir false edi.

!falsetrue.


Qiymat berish operatorlari

Eng oddiy qiymat berish operatori:

=

Masalan:

int yosh = 18;

Keyinchalik:

yosh = 20;

deb qiymatni o‘zgartirish mumkin.


+=

+= mavjud qiymatga qo‘shadi.

Masalan:

int son = 10;

son += 5;

Endi:

son = 15

Bu:

son = son + 5;

bilan bir xil.


-=

-= qiymatdan ayiradi.

int son = 10;

son -= 3;

Natija:

7

Bu:

son = son - 3;

bilan bir xil.


*=

*= ko‘paytiradi.

int son = 5;

son *= 3;

Natija:

15

/=

/= bo‘ladi.

int son = 20;

son /= 4;

Natija:

5

++

++ qiymatni bittaga oshiradi.

int son = 10;

son++;

Endi:

son = 11

Bu:

son = son + 1;

bilan bir xil.


--

-- qiymatni bittaga kamaytiradi.

int son = 10;

son--;

Endi:

son = 9

Bu:

son = son - 1;

bilan bir xil.


Operatorlar bilan oddiy dastur

#include <iostream>

using namespace std;

int main() {
    int a = 10;
    int b = 3;

    cout << "Yig'indi: " << a + b << endl;
    cout << "Ayirma: " << a - b << endl;
    cout << "Kopaytma: " << a * b << endl;
    cout << "Bolim: " << a / b << endl;
    cout << "Qoldiq: " << a % b << endl;

    return 0;
}

Natija:

Yig'indi: 13
Ayirma: 7
Kopaytma: 30
Bolim: 3
Qoldiq: 1

Amallar tartibi

C++ matematik amallarni ma'lum tartibda bajaradi.

Masalan:

cout << 10 + 5 * 2;

Natija:

20

Avval:

5 * 2

bajariladi.

Keyin:

10 + 10

bo‘ladi.


Qavsdan foydalanish

Amallar tartibini o‘zgartirish uchun qavs ishlatamiz.

Masalan:

cout << (10 + 5) * 2;

Natija:

30

Avval:

10 + 5

bajariladi.

Keyin:

15 * 2

bo‘ladi.


Amaliy mashqlar

1-mashq

Quyidagi ikki sonning:

  • yig‘indisini;
  • ayirmasini;
  • ko‘paytmasini;
  • bo‘linmasini

hisoblang:

int a = 20;
int b = 4;

2-mashq

Quyidagi sonning juft yoki toq ekanligini aniqlang:

int son = 17;

3-mashq

Quyidagi shartni tekshiring:

int yosh = 20;

Yosh 18 dan katta yoki tengmi?


4-mashq

Quyidagi koddan keyin son qiymati nechaga teng bo‘ladi?

int son = 10;

son += 5;
son *= 2;
son -= 4;

5-mashq

Quyidagi ifodaning natijasini toping:

(10 + 5) * 2

Muhim narsalarni eslab qoling

Arifmetik operatorlar:

+  -  *  /  %

Taqqoslash operatorlari:

==  !=  >  <  >=  <=

Mantiqiy operatorlar:

&&  ||  !

Qiymatni o‘zgartirish:

=  +=  -=  *=  /=

Bittaga oshirish:

++

Bittaga kamaytirish:

--

Operatorlarni yaxshi tushunish C++ dasturlarini yozishda juda muhim.

Keyingi mavzularda bu operatorlardan if, while va boshqa konstruksiyalar bilan birga foydalanamiz.