Switch көп нұсқалы таңдау операторы Программада кездесетін бірнеше нұсқаның бірін таңдап алу керек болған жағдайда, switch ауыстырғыш операторы қолданылады. Оның жалпы жазылуы:
switch <бүтін типті өрнек>; { case белгі1: операторлар; case белгі2: операторлар;
................
[default: операторлар;]
}
Мұнда switch сөзінен кейінгі өрнек мәні есептеледі, ол бүтін санды (char типі де) типте болуы тиіс. Сол мән case сөздерінен кейін жазылған константалар мәндерімен салыстырылады. Егер олардың біріне тең болса, сол жол орындалады, жол соңында көшу операторы болмаса, келесі жолдар толық орындалады. Ал бір жолды орындап болған соң, switch операторынан шығу үшін break операторы қолданылады. Егер switch сөзінен кейінгі өрнек мәні ешбір константамен сәйкес келмесе, онда default сөзінен кейінгі операторлар атқарылады. Кейде default сөзі болмауы да мүмкін.
Default сөзі болмаса, онда switch операторынан кейінгі келесі операторлар орындала береді. Switch операторындағы өрнек түрінде нақты типтегі мәліметтерді, сөз тіркестерін (жолдарды) пайдалануға болмайды. Кейде бүтін мәндермен үйлестірілген мәліметтердің құрылымдық (структуралық) элементтері қолданылуы мүмкін.
Мысал: Екі бүтін сан енгізіп, олармен арифметикалық 4 амалдың бірін орындау қажет.
#include
#include Int main () {
char symbol; int x,y,z;
clrscr();
printf ("Екі бүтін сан енгізіңіз: "); scanf ("%i%i",&y,&z);
printf ("Қандай амал орындау керек: "); scanf ("%s",symbol);
switch (symbol) {
case “-“ : x=y-z; break; case “+” : x=y+z; break; case “*” : x=y*z; break; case “/” : x=y/z; break;
default: printf (”белгісіз операция\n”); printf("\nНәтижесі - %d\n",x);
getch(); return 0;
}
Жұмысты орындау реті
Есеп 1. Енгізілген үш бүтін санның үлкенін табу программасы. #include
#include
int main() { clrscr();
int max,x,y,z;
printf(“3 бүтін сан енгізіңіз:”); scanf(“%d%d%d”,&x,&y,&z); max=x;
if (y>max) max=y; if (z>max) max=z;
printf (“max=%d”,max); getch();
return 0;
}
Есеп 2. Формула арқылы берілген төмендегі у функциясын есептеу программасы.
#include #include main()
{
clrscr(); float x,y;
printf(“x нақты санын енгізіңіз:”); scanf(“%f”,&x);
if (x<0) y=x+2; else y=2*x*x*x; printf(“\ny=%f”,y); getch();
}
Есеп 3. Программаға бір жыл нөмірін енгізіп, сол жылдың кәбисә (366 күн) немесе қарапайым жыл (365 күн) екендігін анықтау керек. Ол үшін жылды төртке бөлеміз, егер қалдық 0-ге тең болса, ол кәбисә жыл, әйтпесе қарапайым жыл болады.
#include #include main()
{ int gil;
int r; /* gil-ды 4-ке бөлгендегі қалдық */ clrscr();
printf ("Жылды, мысалы, 2007 енгізіп, Enter басыңыз: ");
scanf ("%i",&gil); r=gil % 4;
if (r)
printf ("%i жыл - қарапайым \n", gil); else
printf ("%i жыл – кәбисә \n", gil);
printf ("\nАяқтау үшін Enter басыңыз"); getch();
}
Есеп 4. Квадрат теңдеуді шешу программасы.
/* Квадрат теңдеуді шешу */ #include
#include #include
main()
{
float a,b,c; float x1,x2,d; clrscr();
printf ("\n * Квадрат теңдеуді шешу * \n");
printf (" a,b,c мәндерін енгізіп, Enter басыңыз: "); scanf ("%f%f%f",&a,&b,&c);
d=b*b-4*a*c; if (d < 0)
printf ("Теңдеудің шешуі жоқ \n"); else
{x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf ("Теңдеу түбірлері:x1=%3.2f x2=%3.2f\n",x1,x2);
}
printf("\nАяқтау үшін Enter басыңыз"); getch();
}
Есеп 5. Алынған балға сәйкес бағаны анықтау программасы.
-
Балл
|
Баға
|
90..100
|
A
|
75..89
|
B
|
60..74
|
C
|
50..59
|
D
|
0..49
|
F
|
#include #include main()
{
int ball; char baga; clrscr();
printf("Балл мөлшері: "); scanf("%i",&ball);
if (ball >= 90)
baga = 'A'; else if (ball >= 75)
baga = 'B'; else if (ball >= 60)
baga = 'C'; else if (ball >= 50)
else
baga = 'D';
baga = 'F';
printf("Бағасы - %c, балл мөлшері - %i \n",baga,ball); printf("\nАяқтау үшін Enter басыңыз");
getch();
}
Есеп 6. Шығыс күнтізбесі (календары) бойынша жылға сәйкес жануар атын анықтау программасы.
#include #include main()
{ int gil;
Printf ("Жылды енгізіңіз: \n"); scanf("%i",&gil); switch (gil % 12)
{
case 0 : printf("мешін жылы");break; case 1 : printf("тауық жылы"); break; case 2 : printf("ит жылы"); break; case 3 : printf("доңыз жылы"); break;
case 4 : printf("тышқан жылы"); break; case 5 : printf("сиыр жылы"); break; case 6 : printf("барыс жылы"); break; case 7 : printf("қоян жылы"); break; case 8 : printf("ұлу жылы"); break; case 9 : printf("жылан жылы"); break; case 10: printf("жылқы жылы"); break; case 11: printf("қой жылы"); break;
default : printf("таңбасыз бүтін сан енгізіңіз");
}
printf("\nENTER басыңыз"); getch();
}
Достарыңызбен бөлісу: |