|
Switch operatori (tanlash)Bog'liq амалий iIAKT (2)Switch operatori (tanlash) tarmoqlanishni bir necha yo„nalishga uzatish
uchun ishlatiladi. Operatorning ko„rinishi quyidagicha:
switch (ifoda ){
case o‘zgarmas ifoda_1: 1-operator;
break; case o‘zgarmas ifoda_2: 2-
operator ; break;
...
case o‘zgarmas ifoda_n: n-operator ;
break; [default: operatorlar ;]}
Operatorning bajarilishi ifodaning hisoblanishi bilan boshlanadi (u butun son
bo„lishi shart), undan so„ng boshqaruv operatorlarga uzatiladi, qachonki belgilangan
o„zgarmas ifodaning qiymati hisoblanayotgan qiymat bilan mos tushsa. Shundan
keyin, agar o„gartiruvchidan chiqish ko„satilmagan bo„lsa tarmoqning hamma
yonalishi ketma-ket bajariladi.
Hamma o„zgarmas ifodalar har xil qiymatga ega bo„lishlari shart, lekin ular
butun turda bo„lishlari kerak. Agar solishtirish amalga oshmasa, u holda
default
so„zidan so„ng turgan operatorlar bajariladi (
default
so„zi bo„lmasa boshqaruv
switch
dan so„ng turgan operatorga uzatiladi).
Chiqish operatori
break
case tarmog„idan qaytish uchun ishlatiladi. Break,
continue
operatorlari C++ tilida o„tish operatorlari deb yuritiladi.
1-mashq. Quyidagi algoritm uchun dastur tuzing, ya‟ni nuqtaning berilgan
shtrixlangan maydonga tegishli ekanligini aniqlang.
//
#include
#include
#include
#pragma hdrstop
//
#pragma argsused
int main(int argc, char* argv[])
{
float x, y, r; int b;
cin>>x>>y>>r;
b=(x*x)+(y*y) <=r && (y<=x/2);
if (b=1) cout<<" nuqta strixlangan maydonga tegishli ";
else cout<<" nuqta strixlangan maydonga tegishli emas
"<}
2- mashq. Kvadrat tenglama berilgan. Javob 3 hil variant yechimi ko„rinishida olinsin.
/
#include
#includeh>
#includeh> #include
#pragma
hdrstop
//
#pragma argsused
int main(int argc, char* argv[])
{
float a,b,c,d,x, y, x1,
x2; int v;
cin>>a>>b>>c;
d = (b*b -
4*a*c); if (d >
0)
v =
1;
else if (d = 0) v = 2; else v =
3; switch (v)
{
case 1: {x1 = (b - sqrt(d))/(2*a); x2 = (b +
sqrt(d))/(2*a); cout<<"pri d>0 x1="<x2="<}
case 2: {x = b/(2*a); cout<<"pri d=0 x="<}
case 3: {cout<<"d<0 taqribiy ildizlar"; break;}
default : cout<<"echim aniqlanmadi" ;
}
getch(); return 0;
}
|
| |