|
5-ma’ruza. Tarmoqlanuvchi jarayonlarni dasturlash Reja
|
bet | 3/7 | Sana | 20.09.2024 | Hajmi | 90,95 Kb. | | #271786 |
if - else operatori. Shart operatorining if - else ko’rinishi quyidagicha:
if () 1>; else 2>;
Bu yerda 0 qiymatidan farqli yoki true bo’lsa, 1>, aks holda 2> bajariladi. if-else shart operatori maz-muniga ko’ra algoritmning tarmoqlanuvchi blokini ifodalaydi: - shart bloki (romb) va 1> blokning «ha» shoxiga, 2> esa blokning «yo’q» shoxiga mos keluvchi amallar bloklari deb qarash mumkin (2-rasm).
2-rasm. if(); else shart operatorining blok sxemasi
Misol tariqasida diskriminantni hisoblash usuli yordamida ax2+bx+c=0 ko’rinishidagi kvadrat tenglama ildizlarini topish masalasini ko’raylik:
#include stream.h>
#include th.h>
int main()
{
float a,b,c;
float D,x1,x2;
cout<<”ax^2+bx+c=0 tenglama ildizini topish. ”;
cout<<”\n a - koeffisiyentini kiriting: ”; cin>>a;
cout<<”\n b - koeffisiyentini kiriting: ”; cin>>b;
cout<<”\n c - koeffisiyentini kiriting: ”; cin>>c;
D=b*b-4*a*c; if(D<0)
{
cout << “Tenglama haqiqiy ildizga ega emas!”;
return 0;
}
if (D==0)
{
cout << “Tenglama yagona ildizga ega: ”; x1=-b/(2*a);
cout<<”\nx= “<1;
return 0;
}
else
{
cout << “Tenglama ikkita ildizga ega: ”;
x1=(-b+sqrt(D))/(2*a);
x2=(-b-sqrt(D))/(2*a);
cout<<”\nx1= “<<x1;
cout<<”\nx2= “<<x2;
}
return 0;
}
Programma bajarilganda, birinchi navbatda tenglama koeffi-siyentlari - a, b, c o’zgaruvchilar qiymatlari kiritiladi, keyin diskriminant - D o’zgaruvchi qiymati hisoblanadi. Keyin D qiymati-ning manfiy ekanligi tekshiriladi. Agar shart o’rinli bo’lsa, yaxlit operator sifatida keluvchi ‘{‘ va ‘}’ belgilari orasidagi operator-lar 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 etiladi va programma shu yerda o’z ishini tugatadi, aks holda, ya’ni D qiymati 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 xatolik-larga olib kelishi mumkin.
Masalan:
|
| |