C++ da arifmetik amallar va incriment va decriment haqida
Tags: cpp, beginners, increment, decrement
Published: 2023-01-22 02:11:58

    

- 1. Assalomu alekum hurmatli o'quvchi. Bugun C++ dasturlash tilida arifmetik amallar va increment va dekrement haqida qisqacha gaplashib o'tamiz. Arifmetik amallar haqida gaplashadigan bo'lsak o'zimiz o'rgangan matematika bilan deyarli bir xil faqat ba'zi bir e'tibor beradigan joylari bor. Boshladik:
1) Qo'shish amali matematikadek bir xil `+` yozsak kompyuter tushinadi. Misol : `a+b` deb yozsak a qiymatga b qiymatni qo'shishim kerak ekan deb tushinadi.
2) Ayirish amali ham matematika bilan bir xil `-` yozsak kifoya. Misol : `a-b` deb yozsak a qiymatdan b qiymatni ayiraman ekan deb tushinadi.
3) Ko'paytirish amali (yuqori darajali amal) hisoblanadi ya'ni yuqorida ko'rib o'tgan qo'shish va ayirish amallari bilan birga kelganda birinchi bo'lib ko'paytirish amali bajariladi. Va `*` tarzida yoziladi. Misol : `a*b` deb yozsak a qiymatni b qiymatga ko'paytirish kerakligini tushinadi.
4) Bo'lish amali ham ko'paytirish amali kabi (yuqori darajali amal) hisoblanadi va bu ham birinchi bo'lib bajariladi. Va `/` tarzida yoziladi. Misol `a/b` qilib yozsak a qiymatni b qiymatga bo'laman ekan deb tushinadi.
5) Endigi yozadigan amalimiz (modula) qoldiqli bo'lish deb yuritishadi ko'pincha va `%` shu tarzda yoziladi va buning ham darajasi bo'lish va ko'paytirish amallari bilan tengdir.
Misol `10 % 3` tarzida yozadigan bo'lsak _natija = 1_ negaki bu amal faqat qoldiq qisminigina o'ziga saqlaydi.
    Endi shu yerda savol tug'ilishi mumkin yuqori darajali amallar birga kelib qolsa qaysi biri birinchi bajariladi? U holda chapdan o'nga qarab ketma ketlikda bajariladi. Misol `10 / 2 % 3` shu tarzdi misol kelsa bo'lish amali ham qoldiqli bo'lish amali ham bir xil darajadagi amallar hisoblanadi. Chapdan o'nga qarab ketma ketlikda bajarib ketaveramiz. 
   Va nihoyat _increment_ va _decrement_ haqida gaplashamiz. Bu amallar inglizcha _increse(o'sish, ko'yaish)_ ++a yoki a++ tarzida yoziladi, _decrese(kamayish)_ --a yoki a--tarzida yoziladi. Endi bu har ikkisini ham 2 tadan xususiyati bor ular : **prefiks** va **postfiks**. Keling increment amalini prefiks xususiyatini gaplashamiz.

```cpp
#include <iostream>

using namespace std;

int main() {
  
  int a=10;
  int b=++a;
  cout << b << a;

  return 0;
}
```
Yuqorida yozgan kodimizni javobini yuklaymiz.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qu5bzmz3hqee4g32b1xl.png)
ko'rib turganingizdek a=11 va b=11. Pre fiks xususiyatida a avval 1 taga ko'paytirib oldi keyin uni b ga o'zlashtirdi. Keling endi postfiks holatini ko'ramiz.

```cpp
#include <iostream>

using namespace std;

int main() {
  
  int a=10;
  int b=a++;
  cout << b  << "\n" << a;

  return 0;
}
```
Endi natijani yuklaymiz

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uxq6gn76esapaqes9ana.png)
Mana endi b=10 va a=11 ga. Jarayonni tushintiraman. Bu xususiyatda a ni qiymatini avval b ga o'zlashtirib olib keyin a ni qiymatini 1 ga oshiradi. Boshida a 10 ga teng edi shu qiymatini b ga o'zlashtirdi va undan keyin a o'zining qiymatini 1 ga oshirdi.
Decrement amali ham huddi shu yuqorida ko'rib o'tganimiz bilan bir xil. Yagona farqi 1 taga kamaytirai holos. Shu bilan maqolamizni yakunlaymiz.    Jamshidbek Tursunboev
@dawroun