}
Programma bajarilganda, birinchi navbatda tenglama koeffitsientlari – a, b, s
o‘zgaruvchilar
qiymatlari kiritiladi, keyin diskriminant – D o‘zgaruvchi qiymati
hisoblanadi. Keyin D qiymatining manfiy ekanligi tekshiriladi. Agar shart o‘rinli
bo‘lsa, yaxlit operator sifatida keluvchi ‘{‘ va ‘}’ belgilari
orasidagi operatorlar
bajariladi va ekranga “Tenglama haqiqiy ildizlarga ega emas” xabari chiqadi va
programma o‘z ishini tugatadi (“return 0;” operatorini bajarish orqali). Diskriminant
noldan kichik bo‘lmasa, navbatdagi shart operatori uni nolga tengligini tekshiradi.
Agar shart o‘rinli bo’lsa, keyingi qatorlardagi operatorlar bloki bajariladi – ekranga
“ Tenglama yagona ildizga ega:” xabari, hamda x1 o‘zgaruvchi
qiymati chop
qilinadi va programma shu yerda o‘z ishini tugatadi, aks holda, ya’ni D qiymatni
noldan katta holati uchun else kalit so‘zidan keyingi operatorlar bloki bajariladi va
ekranga “Tenglama ikkita ildizga ega: “ xabari, hamda x1 va x2 o‘zgaruvchilar
qiymatlari chop etiladi. Shu bilan shart operatoridan chiqiladi va asosiy funksiyaning
return ko’rsatmasini bajarish orqali programma o‘z ishini tugatadi.
O‘z navbatida
1
> va
2
> ham shartli operator bo’lishi
mumkin. Ifodadagi har bir else kalit so‘zi, oldindagi eng yaqin if kalit so‘ziga
tegishli hisoblanadi (xuddi ochiluvchi va yopiluvchi qavslardek).
Buni inobatga
olmaslik mazmunan xatoliklarga olib kelishi mumkin.
Masalan:
if (x==1)
if (y==1) cout«”x=1 va y=1’’;
else cout <<’’x<>1’’;
Bu misolda «x<>1 » xabari x qiymatini 1 ga teng va u qiymatini 1 ga teng
bo‘lmagan holda ham chop etiladi. Quyidagi variantda ushbu mazmunan xatolik
bartaraf etilgan:
If (x==1)
{
If (y==1) cout<<”x=1 va y=1”;
}
else cout«”x<>1”;
Ikkinchi misol tariqasida uchta butun sonning maksimal qiymatini topadigan
programma bo‘lagini keltirishimiz mumkin:
…
a2=n%1000/100;
a1=n%100/10;
a0=n%10;
if(a3+a2==a1+a0) cout<<’’a3+a2=a1+a0’’;
else cout<<’’a3+a2<>a1+a0’’;
return 0;
}
Programma ishorasiz butun son kiritishni taklif qiladi. Agar kiritilgan son 4
xonali bo‘lmasa (n<1000 yoki n>9999), bu haqda xabar beriladi va programma o‘z
ishini tugatadi. Aks holda n sonining raqamlari ajratib olinadi,
hamda boshidagi
ikkita raqamning yig’indisi – (a3+a2) qolgan ikkita raqamlar yig‘indisi – (a1+a0)
bilan solishtiriladi va ularning teng yoki yo‘qligiga qarab mos javob chop qilinadi.
1000>