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.
!false → true.
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.