Mantiqiy solishtirish operatorlari. C++ bir necha solishtirish operatorlariga ega.
5.8-jadval. Mantiqiy solishtirish operatorlari.
Algebraik ifoda
|
C++ dagi
operator
|
C++ dagi ifoda
|
Algebraik ma`nosi
|
tenglik guruhi
|
==
|
x==y
|
x tengdir y ga
|
teng emas
|
!=
|
x!=y
|
x teng emas y ga
|
solishtirish guruhi
|
>
<
|
x>y
x |
x katta y dan
x kichkina y dan
|
katta-teng
|
>=
|
x>=y
|
x katta yoki teng y ga
|
kichik-teng
|
<=
|
x<=y
|
x kichik yoki teng y ga
|
[==], [!=], [>=] va [<=] operatorlarni yozganda oraga bo`sh joy qo`yib ketish sintaksis xatodir. Yani kompilyator dasturdagi xatoni ko`rsatib beradi va uni tuzatilishini talab qiladi. Ushbu ikki belgili operatorlarning belgilarining joyini almashtirish, masalan, [<=] ni [=<] qilib yozish ko`p hollarda sintaksis xatolarga olib keladi. Gohida esa [!=] ni [=!] deb yozganda sintaksis xato vujudga keladi, bu mantiqiy xato bo`ladi. Mantiqiy xatolarni kompilyator topa olmaydi. Lekin ular programma ishlash matnini o`zgartirib yuboradi. Bu kabi xatolarni topish esa ancha mashaqqatli ishdir (! operatori mantiqiy inkordir). Yana boshqa xatolardan biri tenglik operatori (==) va tenglashtirish, qiymat berish operatorlarini (=) bir-biri bilan almashtirib qo`yishdir. Bu ham juda ayanchli oqibatlarga olib keladi, chunki ushbu xato aksariyat hollarda mantiq xatolariga olib keladi.
Yuqoridagi solishtirish operatorlarini ishlatadigan bir misolni ko`raylik.
3-listing.
|
Output:
|
# include int main() {
int a, b;
|
Ikki sonni kiriting: 10 5
10 katta yoki teng
|
cout << "Ikki son kiriting: " << endl;
cin >> a >> b; //Ikki son olindi.
if (a == b) cout << a << " teng " << b << " ga" << endl; if (a < b) cout << a << " kichik " << b << " dan" << endl;
if (a >= b) cout << a << " katta yoki teng " << b << " ga"
<< endl;
if (a != b) cout << a << " teng emas " << b << " ga" << endl;
return (0); }
|
5 ga
10 teng emas 5 ga
|
Bu yerda bizga yangi bu C++ ning if (agar) strukturasidir. if ifodasi ma`lum bir shartning to`g`ri (true) yoki noto`g`ri (false)bo`lishiga qarab, dasturning u yoki bu blokini bajarishga imkon beradi. Agar shart to`g`ri bo`lsa, if dan so`ng keluvchi amal bajariladi. Agar shart bajarilmasa, u holda if tanasidagi ifoda bajarilmay, if dan so`ng keluvchi ifodalar ijrosi davom ettiriladi. Bu strukturaning ko`rinishi quyidagichadir:
if (shart) ifoda;
Shart qismi qavs ichida bo`lishi majburiydir. Eng oxirida keluvchi nuqta- vergul (;) shart qismidan keyin qo`yilsa ( if (shart) ; ifoda; ) mantiq xatosi vujudga keladi. Chunki bunda if tanasi bo`sh qoladi. Ifoda qismi esa shartning to`g`ri- noto`g`ri bo`lishiga qaramay ijro qilaveradi.
C++ da bitta ifodani qo`yish mumkin bo`lgan joyga ifodalar guruhini ham qo`yish mumkin. Bu guruhni {} qavslar ichida yozish kerak. if da bu bunday bo`ladi:
if (shart) { ifoda1; ifoda2;
...
ifodaN; }
|
Agar shart to`g`ri javobni bersa, ifodalar guruhi bajariladi, aksi taqdirda blokni yopuvchi qavslardan keyingi ifodalarda dastur ijrosi davom ettiriladi.
Mustahkamlash uchun savollar.
Main funksiyasining vazifasini ayting.
Tipli va tipsiz main funksiyasiga misol keltiring.
cout operatori qanday amalni bajaradi ?
define ning vazifasini ayting.
Kompilyatsiya nima?
Preprotsessor vazifasini ayting.
# include nima amalga oshiradi ?
2==0 amali to`g`ri yozilganmi?
2=>2 amali to`g`ri yozilganmi?
C++ das hart qaysi operator bilan aniqlanadi ?
Operatorlar
Muhim so`zlar: nuqta vergul [;], qiymat berish operatori [=], qo`shimcha operatorlar, kiritish –chiqarish operatorlari, increment, decrement, mantiqiy operatorlar, and [&&], or [||], not [!].
Bilib olasiz: C++da har bir operatorni tugatish, operator turlari, qo`shimcha operatorlarni ishlatish, cin kiritish, cout chiqarish operatorlarini ishlatish, qiymat berish, increment, decrement operatorlari, mantiqiy and [&&], or [||], not [!] larni vazifalari va ishlatishni.
Har qanday dastur funksiyalar ketma ketligidan iborat bo`ladi. Funksiyalar sarlavha va funksiya tanasidan iborat bo`ladi. Funksiya sarlavhasiga void main() ifoda misol bo`la oladi. Funksiya tanasi ob`yektlar ta`riflari va operatorlardan iborat bo`ladi.
Har qanday operator nuqta-vergul [;] belgisi bilan tugashi lozim. Quyidagi ifodalar X=0, yoki I++ operatorga aylanadi agar ulardan so`ng nuqtali vergul [;] kelsa (X = 0; I++;).
Operatorlar bajariluvchi va bajarilmaydigan operatorlarga ajratiladi. Bajarilmaydigan operator bu izoh operatoridir. Izoh operatori [/*] belgisi bilan boshlanib, [*/] belgisi bilan tugaydi. Bu ikki simvol orasida ixtiyoriy jumla yozish mumkin. Kompilyator bu jumlani tekshirib o`tirmaydi. Izoh operatoridan dasturni tushunarli qilish maqsadida izohlar kiritish uchun foydalaniladi.
Bajariluvchi operatorlar o`z navbatida ma`lumotlarni o`zgartiruvchi va boshqaruvchi operatorlarga ajratiladi. Ma`lumotlarni o`zgartiruvchi operatorlarga qiymat berish operatorlari va [;] bilan tugovchi ifodalar kiradi. Masalan,
Boshqaruvchi operatorlar dasturni boshqaruvchi konstruktsiyalar deb ataladi.
Bu operatorlarga quyidagilar kiradi:
Qo`shma operatorlar;
Tanlash operatorlari;
Takrorlash operatorlari;
O`tish operatorlari;
Dostları ilə paylaş: |