logo

C++ dasturlash tilida ifodalar va operatorlar

Загружено в:

08.08.2023

Скачано:

0

Размер:

107.5 KB
C++ dasturlash tilida ifodalar va operatorlar
R e j a
KIRISH.
  I.       C++ TILIDA IFODALAR VA OPERATORLAR  
1.1.   Ifodalar 
1.2.   Bloklar va kompleks ifodalar 
1.3.   Amallar, Operatorlar
1.4.   O'zlashtirish operatori. Matematik operatorlar
1.5.   Butun songa bo'lish va qoldiqni olish operatorlari
1.6.   Inkrement va dekrement
1.7.   Prefiks va postfiks
1.8.   Operatorlar prioriteti. Ichki qavslar
1.9.   Munosabat operatorlari. if operatori
1.10. Mantiqiy operatorlar. Mantiqiy ko'paytirish operatori       
II.     AMALIY MASALA 
2.1.  Masalaning quyilishi va tahlili
2.2.  Algoritm  blok - sxemasi
  2.3.  Algoritm dasturiiy kodi va natijalar
Xulosa
Foydalanilgan adabiyotlar KIRISH
Hozirgi   kunda   respublikamizdagi   texnika   oliy   o`quv   yurtlarida
“Telekommunikatsiya”   va  “Informatika   va   axborot   texnologiyalari”   yo`nalishi   va
mutaxassisliklariga   turli   xil   dasturlash   tillarini   o`rgatish   mo`ljallangan.   Bizga
ma`lumki,   dasturlash   tillarining   yuzdan   ortiq   ko`rinishlari   mavjud,   lekin
qo`llanilishi   ko`lamiga   qarab   C/C++   va   C#   dasturlash   tillari   yuqori   dasturlash
sinfiga mansubdir.
Mutaxassislarning   fikriga   ko`ra   C++   dasturlash   tili   Assembler   dasturlash
tiliga eng yaqin bo`lib, tezlik jihatidan 10 % ortda qolar ekan.
Keyingi yillarda amaliy dasturchilarga juda ko`p integratsion dastur tuzish
muhitlari   taklif   etilmoqda.   Bu   muhitlar   u   yoki   bu   imkoniyatlari   bilan   bir–biridan
farq qiladi. Aksariyat dasturlashtirish muhitlarining fundamental asosi  C / C ++ tiliga
borib taqaladi.
Ushbu   kurs   ishi   hozirgi   kunda   komp’yuterda   berilgan   masalalarni
dasturlash   tillari   orqali   echih   va   dasturda   ifodalar     va   operatorlar   o`zgaruvchi,
funksiya, va protsedura tushunchalaridan foydalanish   kabi vazifalarni o`rg anishga
olib keladi .  Ifodalar
Dastur   biror   bir   aniqlangan   ketma   -   ketlikda   bajariluvchi   komandalar
to'plamidan iborat. .
C++   tilida   ifodalar   biror   bir   hisoblash   natijasini   qaytaruvchi   boshqa   ifodalar
ketma-ketligini boshqaradi yoki hech nima qilmaydi (nol ifodalar).
C++   tilida   barcha   ifodalar   nuqtali   vergul   bilan   yakunlanadi.   Ifodaga   misol
qilib o'zlashtirish amalini olish mumkin.
     x=a+b;
Algebradan farqli ravishda bu ifoda x a+v ga teng ekanligini anglatmaydi. Bu
ifodani quyidagicha tushinish kerak:
a va v o'zgaruvchilarni qiymatlarini yig'ib natijasini  x o'zgaruvchiga beramiz
yoki x o'zgaruvchiga a+v qiymatni o'zlashtiramiz. Bu ifoda birdaniga ikkita amalni
bajaradi,   yig'indini   hisoblaydi   va   natijani   o'zlashtiradi.   Ifodadan   so'ng   nuqtali
vergul  qo'yiladi.  (=)  operatori  o'zidan  chap tomondagi  operandga o'ng tomondagi
operandlar ustida bajarilgan amallar natijasini o'zlashtiradi.
Bo'sh joy (probel) belgisi.
Bo'sh   joy   belgilariga   nafaqat   probel,   balki   yangi   satrga   o'tish   va   tabulyasiya
belgilari   ham   kiradi.   Yuqorida   keltirilgan   ifodani   quyidagicha   ham   yozish
mumkin:
x      = a+ b   ;
Bu variantda keltirilgan ifoda ko'rimsiz va tushunarsiz bo'lsa ham to'g'ridir.
Bo'sh joy belgilari dasturning o'qilishliligini ta'minlaydi. Bloklar va kompleks ifodalar.
Ba'zan  dastur  tushunarli  bo'lishi  uchun o'zaro mantiqiy bog'langan ifodalarni
blok   deb   ataluvchi   komplekslarga   birlashtirish   qulaydir.   Blok   ochiluvchi   figurali
qavs   ({)   bilan   boshlanadi   va   yopiluvchi   figurali   qavs   (})   bilan   tugaydi.   Blok
ochilganda va yopilganda nuqtali vergul qo'yilmaydi.
{
  temp= a;
  a = b;
  b = temp;
}
Bu   blok   xuddi   bir   ifodadek   bajariladi,   u   a   va   v   o'zgaruvchilar   qiymatlarini
almashtiradi.
     
Amallar.
Bajarilishi natijasida biror bir qiymat qaytaradigan barcha ifodalar C++ tilida
amallar deyiladi. Amallar albatta biror bir qiymat qaytaradi. Masalan, 3+2 amali 5
qiymatni qaytaradi.
Operatorlar.
Operator  - bu qandaydir amalni bajarish tug'risida kompilyatorga uzatiladigan
literaldir.   Operatorlar   operandlarga   ta'sir   qiladi.   C++   da   operandlar   deb   alohida
literallar va butun ifodalar tushuniladi.
C++ tilida ikki ko'rinishdagi operatorlar bor:
o'zlashtirish operatorlari
matematik operatorlar
O'zlashtirish operatori . O'zlashtirish   operatori   (=)   o'zidan   chap   tomonda   turgan   operand   qiymatini
tenglik   belgisidan   o'ng   tomondagilarni   hisoblangan   qiymatiga   almashtiradi.
Masalan, 
       x = a+b;
ifodasi   x   operandga   a   va   v   o'zgaruvchilarni   qiymatlarini   qo'shishdan   hosil
bo'lgan natijani o'zlashtiradi.
O'zlashtirish   operatoridan   chapda   joylashgan   operand   adresli   operand   yoki
l–kiymat (chap-chap so'zidan olingan) deyiladi. O'zlashtirish   operatoridan o'ngda
joylashgan operand operasion operand yoki r–kiymat   deyiladi.
O'zgarmaslar   faqatgina   r–kiymat   bo'lishi   mumkin   va   hech   qachon   adresli
operand   bo'la   olmaydi,   chunki   dasturning   bajarilishi   jarayonida   o'zgarmas
qiymatini o'zgartirib bo'lmaydi.
35 = x // notugri!
l–kiymat esa  r–kiymat  bo'lishi mumkin.
Matematik operatorlar .
C++ tilida 5 ta asosiy matematik operatorlar ko'llaniladi: qo'shish (+), ayirish
(-), ko'paytirish (*), butun songa bo'lish (\) va modul bo'yicha bo'lish (%)(qoldiqni
olish).
Ishorasiz butun sonlarni ayirishda, agarda natija manfiy son bo'lsa g'ayrioddiy
natija beradi.
Ayirish natijasida butun sonni to'lib qolishiga misol
# include < iostream.h >
int main()
{
unsiegned int ayirma unsisgned int kattaSon = 100;
unsigned int kichikSon = 50;
ayirma = kattaSon – kichikSon;
cout << “Ayirma“:<< ayirma<< “ ga teng\n”;
ayirma = kichikSon - kattaSon ;
cout << “Ayirma“:<< ayirma<< “ ga teng\n”;
endl;
return 0;
}
NATIJA:
Ayirma: 50 ga teng
Ayirma: 4294967246 ga teng Butun songa bo'lish va qoldiqni olish operatorlari .
Butun   songa   bo'lish   odatdagi   bo'lishdan   farq   qiladi.   Butun   songa   bo'lishdan
hosil bo'lgan bo'linmaning faqatgina butun qismi olinadi. Masalan, 21 sonini 4 ga
bo'lsak   5   soni   va   1   qoldiq   hosil   bo'ladi.   5   butun   songa   bo'lishni   qiymati,   1   esa
qoldiqni olish qiymati hisoblanadi.
Inkrement va dekrement.
Dasturlarda o'zgaruvchiga 1 ni qo'shish va ayirish amallari juda ko'p hollarda
uchraydi.   C++   tilida   qiymatni   1   ga   oshirish   inkrement,   1   ga   kamaytirish   esa
dekrement deyiladi. Bu amallar uchun maxsus operatorlar mavjuddir.
  Inkrement   operatori   (++)   o'zgaruvchi   qiymatini   1   ga   oshiradi,   dekrement
operatori   (--)   esa   o'zgaruvchi   qiymatini   1   ga   kamaytiradi.   Masalan,   s
o'zgaruvchisiga 1 qiymatni qo'shmoqchi bo'lsak quyidagi ifodani yozishimiz lozim.
C++ //s o'zgaruvchi kiymatini 1 ga oshirdik.
  Bu ifodani quyidagicha yozishimiz mumkin edi.
s=s+1;
 
  Bu ifoda  o'z navbatida quyidagi ifodaga teng kuchli: 
s+=1;
      Prefiks va postfiks.
Inkrement   operatori   ham,   dekrement   operatori   ham   ikki   variantda   ishlaydi:
prefiksli   va   postfiksli.   Perefiksli   variantda   ular   o'zgaruvchidan   oldin   (++Age),
postfiksli variantda esa o'zgaruvchidan keyin (Age++) yoziladi.
Oddiy   ifodalarda   bu   variantlarni   qo'llanishida   farq   katta   emas,   lekin   bir
o'zgaruvchiga   boshqa   o'zgaruvchining   qiymatini   o'zlashtirishda   ularning
qo'llanilishi   boshqacha   xarakterga   ega.   Perefeksli   operator   qiymat
o'zlashtirilguncha,   postfiksli   operator   esa   qiymat   o'zlashtirilgandan   keyin
bajariladi. Buni quyidagi listingdan ko'rishimiz mumkin:
Prefiksli va postfiksli operatorlarni qo'llanishi.
# include < iostream. h >
int main()
{
int myAge = 39;
int yourAge = 39;
cout << “Men” << MyAge <<”yoshdaman \n”;
cout << “Siz” << yourAge <<“yoshdasiz \n”;
myAge++ ; // postfiksli inkrement
++yourAge; // prefeksli inkrement
cout << “Bir yil o`tdi …\ n”;
cout << “Men” << MyAge <<”yoshdaman \n”;
cout << “Siz” << yourAge <<“yoshdasiz \n”;
cout << “Yana bir yil o`tdi \n”;
cout <<” Men”<< myAge++ <<“yoshdaman \n”;
cout <<”Siz”<<++yourAge<<“yoshdasiz \n”;
cout << “Ma`lumotlarni qaytadan”
cout << “chiqaraylik \n”; 
cout <<” Men”<< myAge<<“yoshdaman \n”; cout <<”Siz”<<yourAge<<“yoshdasiz \n”;
return 0;
}
NATIJA:
Men 39 yoshdaman 
Siz 39 yoshdasiz 
Bir yil o`tdi … 
Men 40 yoshdaman 
Siz 40 yoshdasiz
Yana bir yil o`tdi …
Men 40 yoshdaman 
Siz 41 yoshdasiz 
Ma`lumotlarni qaytadan chiqaraylik 
Men 41 yoshdaman 
Siz 41 yoshdasiz 
Operatorlar prioriteti.
Murakkab ifodalarda qaysi amal birinchi navbatda bajariladi, qo'shishmi yoki
ko'paytirishmi?  Masalan:
       x=5+3*8;
ifodada   agarda   birinchi   qo'shish   bajarilsa   natija   64   ga,   agarda   ko'paytirish
birinchi bajarilsa natija 29 ga teng bo'ladi.
Har   bir   operator   prioritet   qiymatiga   ega.   Ko'paytirish   qo'shishga   nisbatan
yuqoriroq prioritetga ega. Shuning uchun bu ifoda qiymati 29 ga teng bo'ladi.
Agarda ikkita matematik ifodaning prioriteti teng bo'lsa, ular chapdan o'ngga
qarab ketma – ket bajariladi. Demak
x=5+3+8*9+6*4
ifodada birinchi ko'paytirish amallari chapdan o'ngga qarab bajariladi  8*9=72
va 6*4=24.  Keyin bu ifoda soddaroq ko'rinish hosil qiladi.
        x=5+3+72+24
Endi qo'shishni ham xuddi shunday chapdan unga qarab bajaramiz: 
5+3=8; 8+72= 80; 80+24=104;
  Lekin,   barcha   operatorlar   ham   bu   tartibga   amal   qilmaydi.   Masalan,
o'zlashtirish operatori o'ngdan chapga qarab bajariladi.
Ichki qavslar
Murakkab   ifodalarni   tuzishda   ichki   qavslardan   foydalaniladi.   Masalan,   sizga
sekundlarning   umumiy   soni   keyin   esa   barcha   qaralayotgan   odamlar   soni,   undan
keyin esa ularning ko'paytmasini hisoblash kerak bo'lsin.
TotalPersonSeconds=((NumMinutesToThink+
NumMinutesToType)*60*(PeopleInTheOffice+ PeopleOnVocation ))
Bu   ifoda   quyidagicha   bajariladi.   Oldin   NumMinutesToThink
o'zgaruvchisining qiymati NumMinutesToType o'zgaruvchisi qiymatiga qo'shiladi.
Keyin   esa   hosil   qilingan   yig'indi   60   ga   ko'paytiriladi.   Bundan   keyin
PeopleInTheOffice   o'zgaruvchi   qiymati   PeopleOnVocation   qiymatiga   qo'shiladi.
Keyin esa sekundlar soni kishilar soniga ko'paytiriladi.
Munosabat operatorlari
Bunday operatorlar ikkita qiymatni teng yoki teng emasligini aniqlash uchun
ishlatiladi.   Taqqoslash   ifodasi   doimo   true   (rost)   yoki   false   (yolg'on)   qiymat
qaytaradi.   Munosabat   operatorlarining   ko'llanilishiga   oid   misol   4.1.   jadvalda
keltirilgan.
Munosabat operatorlari.                                                                       
Nomi Operator
Misol
Qaytaradigan qiymat
Tenglik
==
100==50
 50==50
false
true
Teng emas
!=
100!=50
 50!=50
true
false
Katta
>
100>50
 50>50
true
false
Katta yoki teng
>=
100>=50
 50>=50
true true
Kichik
<
100<50
 50<50
true
false
Kichik yoki teng
<=
100<=50
 50<=50
false
true
I F operatori
    Odatda   dastur   satrma–satr   tartib   bilan     bajariladi.   If   operatori   shartni
tekshirish (masalan, ikki o'zgaruvchi tengmi)   va uning natijasiga bog'liq ravishda
dasturni   bajarilish   tartibini   o'zgartirish   imkonini   beradi.   If   operatorining   oddiy
shakli quyidagi ko'rinishdadir:
     if (shart)
       ifoda;
Qavs   ichidagi   shart   ixtiyoriy   ifoda   bo'lishi   mumkin.   Agarda   bu   ifoda   false
qiymatini qaytarsa undan keyingi ifoda yoki blok tushirib qoldiriladi. Agarda shart
true qiymat qaytarsa navbatdagi ifoda bajariladi. Quyidagi misolni qaraymiz:
If (kattaSon>kichikSon)
KattaSon=kichikSon; Bu   erda   kattaSon   va   kichikSon   o'zgaruvchilari   taqqoslanayapti.   Agarda
kattaSon   o'zgaruvchisi   qiymati   katta   bo'lsa,   bu   navbatdagi   qatorda   unga   qiymat
sifatida kichikSon o'zgaruvchisining qiymati o'zlashtiriladi.
if   operatorida   figurali   qavs   ichiga   olingan   ifodalar   blokini   ham   ishlatish
mumkin. 
If (shart)
{
- ifoda
- ifoda
- ifoda
} 
 Quyida  ifodalar blokining qo'llanilishiga oid misol keltirilgan
if(kattaSon>kichikSon)
{  kattaSon=kichikSon
    cout<<”kattaSon:”<<kattaSon << “/n”;
    cout<<”kichikSon:”<<kichikSon<< “/n”;
} 
Bu   holda   kattaSon   o'zgaruvchisiga   nafaqat   kichikSon   o'zgaruvchisi
o'zlashtirilayapti, balki ekranga bu haqida axborot ham chiqarilayapti.
Munosabat operatorining qo'llanilishi orqali tarmoqlanishga misol
munosabat operatori 
// bilan birgalikda if instruksiyasining 
// ko'llanilishi namoyish etilgan
# include <iosrteam.h>
int main( )
{  int BuxoroGol, PaxtakorGol;
 cout<<“Buxoro komandasi kiritgan to`plar” 
 << “sonini yozing:”;
 cin >> BuxoroGol;
 cout<<“Paxtakor komandasi kiritgan” 
 << “to`plar sonini yozing:”;
 cin >> PaxtakorGol;
cout << “\n”;
 if ( BuxoroGol>PaxtakorGol)
cout << “Yashasin Buxoro!\n”
if (BuxoroGol < PaxtakorGol)
{
 cout << “Yashasin PaxtakorGol \n”
 cout << “Bugun Toshkentda bayram!\n”;
}
if (BuxoroGol==PaxtakorGol)
{
  cout << “Durrangmi? Yo-oq? Bo`lishi”<<
  “ mumkin emas \n”;
  cout <<“Paxtakorning kiritgan to`plari”
   << “haqida ma`lumotni qaytadan yozing\n”
   cin >> PaxtakorGol;
  if (BuxoroGol>PaxtakorGol)
{ cout<<“Buxoro yutishini oldindan bilgan”
<<“ edim! Shuning uchun qayta so`radim\n”;  
cout<< “Yashasin Buxoro!”;
if (BuxoroGol<PaxtakorGol)
{
cout<<“Paxtakor yutishini oldindan bilgan”
<<“ edim! Shuning uchun qayta so`radim\n”;  
cout<< “Yashasin Paxtakor!”;
cout << “Bugun Toshkentda bayram!\n”;
  if (BuxoroGol==PaxtakorGol)
cout<<“Qoyil! Haqiqatan ham during ekan\n”;
}
cout<<“\n Ma`lumotingiz uchun rahmat\n”;
return 0;
}
NATIJA: 
Buxoro komandasi kiritgan to`plar sonini yozing:3
Paxtakor komandasi kiritgan to`plar sonini yozing:3
Durrangmi? Yo-oq? Bo`lishi mumkin emas 
Paxtakorning kiritgan to`plari haqida ma`lumotni qaytadan yozing: 2
Buxoro yutishini oldindan bilgan edim! Shuning uchun qayta so`radim
Yashasin Buxoro!  
ELSE  kalit so'zi Dasturlarda ko'p hollarda   biror bir shartning bajarilishiga (ya'ni bu shart true
qiymat   qaytarsa)     bog'liq   ravishda   bir   blok,     uning   bajarilmasligiga   asosan   esa
(ya'ni bu shart false qiymat qaytarsa) boshqa bir blokning bajarilishi talab qilinadi.
4.3. – listingda birinchi tekshirish  (BuxoroGol>PaxtakorGol) true qiymat qaytarsa
ekranda bir xabar, false qiymatida esa boshqa bir xabar chiqariladi. 
Bunday masalalarni yuqorida ko'rsatilgan usul, ya'ni qator shartlarni tekshirish
uchun   bir   nechta   if   operatorini   qo'llash   orqali   hal   qilish   mumkin,   lekin   bu
tushunish   uchun   biroz   murakkabroqdir.   Dasturning   soddaligini   ta'minlash   uchun
else kalitli so'zidan foydalanish mumkin. 
If (shart) 
 Ifoda;
Else
 Ifoda;
else kalitli so'zining ishlatilishi.
If va else kalit so'zlarini
// ishlatilishiga oid misol 
 
# include <iostream.h>
int main()
{
int BirinchiSon, IkkinchiSon;
cout << “Katta sonni kiriting:
cin >> BirinchiSon;
cout<<“\n Kichik sonni kiriting:”;
cin >> IkkinchiSon;
if (BirinchiSon > IkkinchiSon)
cout << “\n Rahmat! \n”;
else  cout << “\n Ikkinchisi katta son-ku!”;
return 0;
}
NATIJA: 
Katta sonni kiriting: 10
Kichik sonni kiriting: 12
Ikkinchisi katta son - ku!
if  operatori orqali murakkab konstruksiyalarni hosil qilish 
If–else   konstruksiyasida   ifodalar   blokida   ixtiyoriy   operatorlarni   ishlatishda
hech   qanday   chegara   yo'q.   Shu   jumladan,     ifodalar   bloki   ichida     yana   if–else
operatorlarini ishlatish mumkin.  Bu holda bir nechta if  operatoridan iborat ichma
– ich konstruksiya hosil bo'ladi. 
if (1–shart) 
{
  if (2–shart)
   1–ifoda
  else
  {  
    if (3–shart)
     2–ifoda
    else
     3–ifoda
  }   }
  else
    4–ifoda;
 
Ushbu bir nechta if operatoridan tashkil topgan konstruksiya quyidagi tartibda
ishlaydi:   agarda   1–shart   va   2–shart   rost   bo'lsa   1–ifoda   bajariladi.   Agarda   1–shart
rost    va 2–shart  yolg'on natija qaytarsa, u holda 3–shart  tekshiriladi  va agarda bu shart rost bo'lsa 2–ifoda, yolg'on bo'lsa esa 3–ifoda bajariladi. Va eng oxiri, agarda
1–shart yolg'on bo'lsa 4–ifoda bajariladi. Bunday murakkab konstruksiyaga misol
keltirilgan. 
if operatori ichki bo'lgan murakkab konstruksiya
If operatori ichki 
// bo'lgan murakkab konstruksiyaga misol
# include < iostream.h>
{
// Ikkita son kiritamiz.Ularni BirinchiSon
//va IkkinchiSon o'zgaruvchilariga beramiz
//Agarda KattaSon kiymati KichikSon 
// kiymatidan katta bo'lsa katta son 
//kichigiga koldiksiz bo'linishini tekshira-
// miz. Agarda u koldiksiz bo'linsa ular
//teng yoki teng emasligini tekshiramiz.
int BirinchiSon, IkkinchiSon;
 cout<<“Ikkita son kiriting.\n Birinchisi: ”; 
  cin >> BirinchiSon;
 cout << “\n Ikkinchisi:
 cin >> IkkinchiSon;;
  cout << “\n\n;
 if (BirinchiSon>=IkkinchiSon;)
   if ( (BirinchiSon%IkkinchiSon)==0) 
    {
      if (BirinchiSon==IkkinchiSon;)
       cout<< “Ular bir – biriga teng!\n”;
else
cout<< “Birinchi son ikkinchisiga”<<
“karrali!\n”;      }
else 
cout<<“Ikkinchi son katta!\n”
return 0;
}
NATIJA 
Ikkita son kiriting
Birinchisi: 9
Ikkinchisi:    3
Birinchi son ikkinchisiga karrali! Mantiqiy operatorlar
Dasturlashda   bir   emas   balki   bir   nechta   shartli   ifodalarni   tekshirish   zaruriyati
juda   ko'p   uchraydi.   Masalan,   x   o'zgaruvchisi   y   o'zgaruvchisidan,   y   esa   o'z
navbatida   z   o'zgaruvchisidan   kattami   sharti   bunga   misol   bo'la   oladi.   Bizning
dasturimiz   mos   amalni   bajarishdan   oldin   bu   ikkala   shart   rost   yoki   yolg'onligini
tekshirishi lozim. 
Quyidagi   mantiq   asosida   yuqori   darajada   tashkil   qilingan   signalizasiya
sistemasini tasavvur qiling. Agarda eshikda signalizasiya o'rnatilgan bo'lsa VA kun
vaqti kech soat olti  VA bugun bayram YoKI dam olish kuni BO'LMASA polisiya
chaqirilsin.   Barcha   shartlarni   tekshirish   uchun   C++   tilining   uchta   mantiqiy
operatori ishlatiladi. 
Mantiqiy operatorlar
Operator
Belgi
Misol
VA
&&
1ifoda && 2ifoda
YoKI
||
1ifoda||2ifoda
INKOR
!
!ifoda 
Mantiqiy ko'paytirish operatori Mantiqiy   ko'paytirish   operatori   ikkita   ifodani   hisoblaydi,   agar   ikkala   ifoda
true   qiymat   qaytarsa   VA   operatori   ham   true   qiymat   qaytardi.   Agarda   sizning
qorningiz ochligi rost bo'lsa VA sizda pul borligi ham rost bo'lsa siz supermarketga
borishingiz   va   u   erdan   o'zingizga   tushlik   qilish   uchun   biror   bir   narsa   xarid
qilishingiz mumkin. Yoki yana bir misol, masalan, 
if(x==5)&&(y==5) 
mantiqiy ifodasi agarda x va u  o'zgaruvchilarini ikkalasining ham  qiymatlari
5   ga   teng   bo'lsagina   true   qiymat   qaytaradi.   Bu   ifoda   agarda   o'zgaruvchilardan
birortasi   5   ga   teng   bo'lmagan   qiymat   qabul   qilsa   false   qiymatini   qaytaradi.
Mantiqiy   ko'paytirish   operatori   faqatgina   o'zining   ikkala   ifodasi   ham   rost
bo'lsagina true qiymat qaytaradi.
Mantiqiy ko'paytirish operatori && belgi orqali belgilanadi. 
Mantiqiy qo'shish operatori
Mantiqiy   qo'shish   operatori   ham   ikkita   ifoda   orqali   hisoblanadi.   Agarda
ulardan   birortasi   rost   bo'lsa   mantiqiy   qo'shish   operatori   true   qiymat   qaytaradi.
Agarda sizda pul yoki kredit kartochkasi bo'lsa, siz schyotni to'lay olasiz. Bu holda
ikkita shartning birdaniga bajarilishi: pulga ham  va kredit kartochkasiga ham  ega
bo'lishingiz   shart   emas.   Sizga   ulardan   birini   bajarilishi   etarli.   Bu   operatorga   oid
yana bir misolni qaraymiz. Masalan, 
if(x==5)||(y==5)
ifodasi   yoki   x   o'zgaruvchi   qiymati,   yoki   u   o'zgaruvchi   qiymati,   yoki   ikkala
o'zgaruvchining qiymati ham 5 ga teng bo'lsa rost qiymat qaytaradi. 
Mantiqiy inkor operatori
  Mantiqiy   inkor   operatori   tekshirilayotgan   ifoda   yolg'on   bo'lsa   true   qiymat
qaytaradi.   Agarda   tekshirilayotgan   ifoda   rost   bo'lsa   inkor   operatori   false   qiymat
qaytaradi. Masalan, 
(if!(x==5)) ifodasining   qiymati,   agarda   x   o'zgaruvchisi   5   ga   teng   bo'lmasa   true   qiymat
qaytaradi. Bu ifodani boshqacha ham yozish mumkin:    
if(x!=5) Masalaning quyilishi va tahlili
2 ta   matrisa   berilgan.   Ularni   o'zaro   ko'paytirib   yangi   matrisa hosil qilish. Bu
erda 1-matrisaning ustunlar soni 2-matrisaning satrlar soniga teng bo'lishi kerak.
Algoritm blok-sxemasi.
Algoritm dasturiiy kodi va natijalar boshlash
kiritish
tamom # include <iostream.h> 
# include <conio.h> 
# include <stdlib.h> 
# include <time.h> 
void main ( ) 
{  
{ srand ( time (0)); 
int a[3][3], b[3][3],c[3][3], i, j, k; 
cout<<"\n";
cout<<"Hosil bo'lgan yangi matrisa elementlari";
cout<<"\n";
for (i=0; i<3; i++)
for (j=0; j<3; j++)
a[i][j] = rand ( );
for (i=0; i<3; i++)
for (j=0; j<3; j++)
b[i][j] = rand ( );
for (i=0; i<3; i++)
{ for (j=0; j<3; j++)
{  c[i][j] = 0;
cout<<"\n";
for (k=0; k<3; k++)
c[i][j] = c[i][j] + a[i][k]*b[k][j]; 
cout <<"  c="<<c[i][j]<<"\t"; }
cout << endl; }
cout<<"\n";
cout<<"Davom etirish uchun ixtiyoriy klavishni bosing . . ."<<endl;
cout<<"\n";
system("pause");
} }
Dastur ishga tusirib natija oladigan bo`lsak kompyuter ekranida quyidagini olamiz XULOSA
Xulosa   qilib   aytganda,   C++   dasturlash   tili   va   unda   o`zgarmaslar,
o`zgaruvchilar toifalari, hamda ifodalar va operatorlar bilan ishlash xaqida umumiy
ma’lumotlarga   ega   bo`ldim.     Borland   C++   Builder   -   Windows   muhitida
ishlaydigan dastur  tuzish  uchun qulay bo`lgan vosita bo`lib, komp’yuterda dastur
yaratish   ishlarini   avtomatlashtiradi,   xatoliklarni   kamaytiradi   va   dastur   tuzuvchi
mehnatini   engillashtiradi.   Borland   C++   dastur   zamonaviy   vizual   loyihalash
texnologiyasi asosida ob`ektga yo`naltirilgan dasturlash nazariyasini hisobga olgan
holda tuziladi. 
Borland   C++   Builder   6   sistemasi   C++   tilining   rivoji   bo`lgan   ob`ektga
yo`naltirilgan   Object   C / C #   dasturlash   tillarini   ishlatadi.   Borland   C++   Builder
sistemasi   dasturni   loyihalash   va   yaratish   vaqtini   kamaytiradi,   hamda   Windows
muhitida ishlovchi dastur ilovalarini tuzish jarayonini osonlashiradi.
Men   C++   dasturi   strukturasi   xaqida,   belgilar   bayoni,   algoritm   va   dastur
tushunchasi,   ma’lumotlarni   kiritish   va   chikarish   operatorlari   xamda   dasturda
ishlatiladigan   toifalar,   ifodalar   va   operatorlar   hamda   sinflar   va   funksiya   bilan
ishlash xaqida bilim va kunikmalarga ega bo`ldim. Foydalanilgan adabiyotlar.
1. Sh.А.Nаzirоv, R.V.Qobulоv «Оb’еktgа mo‘ljаllаngаn dаsturlаsh   »
2. Xaldjigitov A.A., Madraximov Sh. F., Adambayev U.E., Eshboyev E.A., 
Informatika va programmalash. T.:O`zMU, 2005, -148.
3. Гради Буч. Объектно –ориентированной анализ и  проектирование с 
примерами приложений на С++. Невский диалект, 560 стр, 2001 г. 
4. Грехем И. Объектно ориентированные методы. Принципы и практика. 
Вильямс. 879 стр, 2004 г.
5. Иванова Г.С. Объектно ориентированное программирование. Учебник. 
МГТУ им Баумана. 320 стр, 2003 г.
6. www.ziyonet.uz
7. www.tuit.uz
8. www.tuit.kf.uz
9. www.referat.uz
10. www.intuit.ru

C++ dasturlash tilida ifodalar va operatorlar R e j a KIRISH. I. C++ TILIDA IFODALAR VA OPERATORLAR 1.1. Ifodalar 1.2. Bloklar va kompleks ifodalar 1.3. Amallar, Operatorlar 1.4. O'zlashtirish operatori. Matematik operatorlar 1.5. Butun songa bo'lish va qoldiqni olish operatorlari 1.6. Inkrement va dekrement 1.7. Prefiks va postfiks 1.8. Operatorlar prioriteti. Ichki qavslar 1.9. Munosabat operatorlari. if operatori 1.10. Mantiqiy operatorlar. Mantiqiy ko'paytirish operatori II. AMALIY MASALA 2.1. Masalaning quyilishi va tahlili 2.2. Algoritm blok - sxemasi 2.3. Algoritm dasturiiy kodi va natijalar Xulosa Foydalanilgan adabiyotlar

KIRISH Hozirgi kunda respublikamizdagi texnika oliy o`quv yurtlarida “Telekommunikatsiya” va “Informatika va axborot texnologiyalari” yo`nalishi va mutaxassisliklariga turli xil dasturlash tillarini o`rgatish mo`ljallangan. Bizga ma`lumki, dasturlash tillarining yuzdan ortiq ko`rinishlari mavjud, lekin qo`llanilishi ko`lamiga qarab C/C++ va C# dasturlash tillari yuqori dasturlash sinfiga mansubdir. Mutaxassislarning fikriga ko`ra C++ dasturlash tili Assembler dasturlash tiliga eng yaqin bo`lib, tezlik jihatidan 10 % ortda qolar ekan. Keyingi yillarda amaliy dasturchilarga juda ko`p integratsion dastur tuzish muhitlari taklif etilmoqda. Bu muhitlar u yoki bu imkoniyatlari bilan bir–biridan farq qiladi. Aksariyat dasturlashtirish muhitlarining fundamental asosi C / C ++ tiliga borib taqaladi. Ushbu kurs ishi hozirgi kunda komp’yuterda berilgan masalalarni dasturlash tillari orqali echih va dasturda ifodalar va operatorlar o`zgaruvchi, funksiya, va protsedura tushunchalaridan foydalanish kabi vazifalarni o`rg anishga olib keladi .

Ifodalar Dastur biror bir aniqlangan ketma - ketlikda bajariluvchi komandalar to'plamidan iborat. . C++ tilida ifodalar biror bir hisoblash natijasini qaytaruvchi boshqa ifodalar ketma-ketligini boshqaradi yoki hech nima qilmaydi (nol ifodalar). C++ tilida barcha ifodalar nuqtali vergul bilan yakunlanadi. Ifodaga misol qilib o'zlashtirish amalini olish mumkin. x=a+b; Algebradan farqli ravishda bu ifoda x a+v ga teng ekanligini anglatmaydi. Bu ifodani quyidagicha tushinish kerak: a va v o'zgaruvchilarni qiymatlarini yig'ib natijasini x o'zgaruvchiga beramiz yoki x o'zgaruvchiga a+v qiymatni o'zlashtiramiz. Bu ifoda birdaniga ikkita amalni bajaradi, yig'indini hisoblaydi va natijani o'zlashtiradi. Ifodadan so'ng nuqtali vergul qo'yiladi. (=) operatori o'zidan chap tomondagi operandga o'ng tomondagi operandlar ustida bajarilgan amallar natijasini o'zlashtiradi. Bo'sh joy (probel) belgisi. Bo'sh joy belgilariga nafaqat probel, balki yangi satrga o'tish va tabulyasiya belgilari ham kiradi. Yuqorida keltirilgan ifodani quyidagicha ham yozish mumkin: x = a+ b ; Bu variantda keltirilgan ifoda ko'rimsiz va tushunarsiz bo'lsa ham to'g'ridir. Bo'sh joy belgilari dasturning o'qilishliligini ta'minlaydi.

Bloklar va kompleks ifodalar. Ba'zan dastur tushunarli bo'lishi uchun o'zaro mantiqiy bog'langan ifodalarni blok deb ataluvchi komplekslarga birlashtirish qulaydir. Blok ochiluvchi figurali qavs ({) bilan boshlanadi va yopiluvchi figurali qavs (}) bilan tugaydi. Blok ochilganda va yopilganda nuqtali vergul qo'yilmaydi. { temp= a; a = b; b = temp; } Bu blok xuddi bir ifodadek bajariladi, u a va v o'zgaruvchilar qiymatlarini almashtiradi. Amallar. Bajarilishi natijasida biror bir qiymat qaytaradigan barcha ifodalar C++ tilida amallar deyiladi. Amallar albatta biror bir qiymat qaytaradi. Masalan, 3+2 amali 5 qiymatni qaytaradi. Operatorlar. Operator - bu qandaydir amalni bajarish tug'risida kompilyatorga uzatiladigan literaldir. Operatorlar operandlarga ta'sir qiladi. C++ da operandlar deb alohida literallar va butun ifodalar tushuniladi. C++ tilida ikki ko'rinishdagi operatorlar bor: o'zlashtirish operatorlari matematik operatorlar O'zlashtirish operatori .

O'zlashtirish operatori (=) o'zidan chap tomonda turgan operand qiymatini tenglik belgisidan o'ng tomondagilarni hisoblangan qiymatiga almashtiradi. Masalan, x = a+b; ifodasi x operandga a va v o'zgaruvchilarni qiymatlarini qo'shishdan hosil bo'lgan natijani o'zlashtiradi. O'zlashtirish operatoridan chapda joylashgan operand adresli operand yoki l–kiymat (chap-chap so'zidan olingan) deyiladi. O'zlashtirish operatoridan o'ngda joylashgan operand operasion operand yoki r–kiymat deyiladi. O'zgarmaslar faqatgina r–kiymat bo'lishi mumkin va hech qachon adresli operand bo'la olmaydi, chunki dasturning bajarilishi jarayonida o'zgarmas qiymatini o'zgartirib bo'lmaydi. 35 = x // notugri! l–kiymat esa r–kiymat bo'lishi mumkin. Matematik operatorlar . C++ tilida 5 ta asosiy matematik operatorlar ko'llaniladi: qo'shish (+), ayirish (-), ko'paytirish (*), butun songa bo'lish (\) va modul bo'yicha bo'lish (%)(qoldiqni olish). Ishorasiz butun sonlarni ayirishda, agarda natija manfiy son bo'lsa g'ayrioddiy natija beradi. Ayirish natijasida butun sonni to'lib qolishiga misol # include < iostream.h > int main() { unsiegned int ayirma