Algebraik ifoda - Nukus innovatsion instituti

|
Nukus innovatsion instituti
|
bet | 3/4 | Sana | 14.05.2024 | Hajmi | 77,6 Kb. | | #231878 |
Bog'liq Ko\'p tarmoqlanishlar Saburov DAlgebraik 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
|
solishtirish guruhi
|
>
|
x>y
|
X katta y dan
|
Katta teng
|
>=
|
x>=y
|
X katta yoki teng y
|
==, !=, >= va <= operatorlarni yozganda oraga bo'sh joy qo'yib ketish sintaksis hatodir. Yani kompilyator dasturdagi hatoni ko'rsatib beradi va uni tuzatilishini talab qiladi. Ushbu ikki belgili operatorlarning belgilarining joyini almashtirish, masalan <= ni =< qilib yozish ko'p hollarda sintaksis hatolarga olib keladi. Gohida esa != ni =! deb yozganda sintaksis hato vujudga ham, bu mantiqiy hato bo'ladi. Mantiqiy hatolarni kompilyator topa olmaydi. Lekin ular programma ishlash mantig'ini o'zgartirib yuboradi. Bu kabi hatolarni topish esa ancha mashaqqatli ishdir (! operatori mantiqiy inkordir). Yana boshqa hatolardan biri tenglik operatori (==) va tenglashtirish, qiymat berish operatorlarini (=) bir-biri bilan almashtirib qo'yishdir. Bu ham juda ayanchli oqibatlarga olib keladi, chunki ushbu hato aksariyat hollarda mantiq hatolariga olib keladi. Yuqoridagi solishtirish operatorlarini ishlatadigan bir dasturni ko'raylik.
//Mantiqiy solishtirish operatorlari # include
int main()
{in
t s1, s2;
cout << "Ikki son kiriting: " << endl; cin >> s1 >> s2; //Ikki son olindi.
if (s1 == s2) cout << s1 << " teng " << s2 << " ga" << endl; if (s1 < s2) cout << s1 << " kichik " << s2 << " dan" << endl;
if (s1 >= s2) cout << s1 << " katta yoki teng " << s2 << " ga" << endl; if (s1 != s2) cout << s1 << " teng emas " << s2 << " ga" << endl; return (0);
}E
kranda:
Ikki sonni kiriting: 74 33
74 katta yoki teng 33 ga
74 teng emas 33 ga
Bu yerda bizga yangi bu C++ ning if (agar) struktura- sidir. 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 ohirida keluvchi nuqta-vergul (;) shart qismidan keyin qo'yilsa ( if (shart); ifoda; ) mantiq hatosi 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 ifodalardan dastur ijrosi davom ettiriladi.
Shartli operator ikki ko’rinishda ishlatilishi mumkin:
if (ifoda)
operator
else
2- operator yoki
if (ifoda)
operator
Shartli operator bajarilganda avval ifoda hisoblanadi; agar qiymat rost ya’ni noldan farqli bo’lsa 1- operator bajariladi. Agar qiymat yolg’on ya’ni nol bo’lsa va else ishlatilsa 2-operator bajariladi. Operator else qismi har doim eng yaqin if ga mos qo’yiladi.
if( n>0)
if(a>b)
Z = a;
else
Z = b;
Agar else qismni yuqori if ga mos qo’yish lozim bo’lsa, figurali qavslar ishlatish lozim.
if( n>0) {
if(a>b)
z = a;
}
else
z = b;
Misol tariqasida uchta berilgan sonning eng kattasini aniqlash dasturi:
#include
int main()
{
float a,b,c,max;
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
if (a>b)
if (a>c) max = a;
else
max = c; else
if (b>c) max = b; else max = c;
printf("\n max = %f", max);
return 0;
}
|
| |