- оператор функция
- функция abs
- функция atof
- функция atoi
- функция atol
- оператор break
- оператор case
- функция cell и floor
- функция cin и cout
- функция clock
- оператор const
- оператор continue
- оператор default
- оператор define
- функция div
- оператор do
- функция fgetc
- функция fgets
- оператор for
- функция fprintf
- функция freopen
- функция fseek
- функция fwrite
- оператор if
- оператор itoa
- функция ltoa
- функция main
- функция setprecision и setw
- манипулатори oct, hex
- функция modf
- функция pow
- функция printf
- функция puts
- функция rand
- функция scanf
- функция sin - синус и cos - косинус
- функция sizeof
- функция sqrt
- функция srand
- функция strcat
- функция strchr
- функция strcmp
- функция strcoll
- функция strcspn
- функция strlen
- функция strcpy и strncpy
- функция strrev
- оператор struct
- функция strlwr и strupr
- оператор switch
- функция tan - тангенс
- функция tmpnam
- функция tolower и toupper
- функция void
- оператор while
- съпоставяне do и while
оператор switch - многовариантен избор
оператор switch - параметър естествено числооператор switch - параметър символ
вложен оператор switch
Приложение на оператор switch - при необходимост от разклоняване на изчислителния процес, при многовариантен избор. Описание: оператор switch изисква за параметър целочислена променлива от тип int, или символен от тип char. Този параметър играе роля на селектор и указва конкретния оператор case, който трябва да се изпълни, избор на конкретен вариант. В задължителните фигурни скоби се изброяват всички разглеждани случаи - както при съставен оператор. На отделен ред в следния порядък са записани: оператор case, число, знак :, описание какво трябва да изпълни програмата, оператор break. Чрез оператор switch е възможно алгоритъмът да се разклони в множество посока. Близък до действието на този оператор е оператор if - и двата се използват за промяна на последователността на изчислителния процес, при разклонени алгоритми. Особеното при него, е че са допустими само две възможности за избор с една конструкция if ...else.
Съвпадението на параметъра в switch с числото в case води до изпълнение на съответния случай. Действието на оператор break се състои в преустановяване търсенето на друга възможност - така се постига ускоряване работата на програмата. Като последен ред в тялото на оператор switch е препоръчително да се ползва оператор default. Този последен ред ще се изпълни само, ако няма съответствие между въведената стойност в switch и описаните стойности за case.
В блок схема обозначението за многовариантен избор е изпъкнал многоъгълник - входът е върха, а встрани и отдолу са изходите.
оператор switch - параметър естествено число
Трагедията на Есхил "Едип цар" се базира на една от старогръцките легенди, която гласяла приблизително следното: В планината едно чудовище (сфинкс) причаквал пътниците и им задавал следната гатанка: "Кое е онова животно, което сутрин ходи на 4 крака, по обяд на 2 крака, а вечер на 3 крака." Единствен Едип успял да разгадае загадката.
Следващата програма съдържа пример илюстриращ switch - по въведено естествено число от интервала [2..4] за параметър се извежда съответната възраст.
#include <iostream>
using namespace std;
int main ()
{ int N;
cout<<"Da se systawi programa, chrez koqto se wywevda cqlo chislo N\n";
cout<<"ot interwala [2..4]. Programata da izwevda kakwa e wyzrastta\n";
cout<<"na chowek syobrazno ywywedenoto chislo.\n";
cout<<"Da se izwevda syobshenie za greshka, ako chisloto e izwyn interwala.\n";
cout<<"Primer: 3 Izhod: Zrqla wyzrast.\n";
cout<<"Wywedete cqlo chislo [2..4]: ";cin>>N;
switch (N)
{ //operator switch - sluvebna duma
//operator break - sluvebna duma - za da ne prowerqwa ostanalite sluchai
//operator case - sluvebna duma - izbroima stojnost cqlo chislo / char
case 2: cout<<"Detska wyzrast.\n"; break;
case 3: cout<<"Zrqla wyzrast.\n"; break;
case 4: cout<<"Starost - neradost.\n"; break;
//kliuchowa duma default - ako ne e izpylneno nito edno ot uslowiqta
default: cout<<"Wywedenoto chislo da e w granicite [2..4].\n";
}
system("pause");
return 0;
} //kraj na programa operator switch
оператор switch - параметър от тип char
Променливата, предавана като параметър за оператор switch може да бъде и от символен тип. Във всеки отделен оператор case се изписва конкретния знак, но заграден с апостроф. Следващият пример за оператор switch извежда един от годишните сезони по въведена начална буква за параметър:
#include <iostream>
using namespace std;
void sezoni( char s)
{ switch (s)
{ //operator switch - sluvebna duma
//operator break - sluvebna duma - za da ne prowerqwa ostanalite sluchai
//operator case - sluvebna duma - izbroima stojnost cqlo chislo / char
case 'p': cout<<"Prolet - spring\n"; break;
case 'l': cout<<"Lqto - summer\n"; break;
case 'e': cout<<"Esen - autumn\n"; break;
case 'z': cout<<"Zima - winter\n"; break;
//operator default - sluvebna duma - ako ne e izpylneno nito edno ot uslowiqta
default: cout<<"Wywedenata bukvwa da edna ot slednite: e,l,p,z.\n";
} //operator switch
} // mnogowarianten izbor - switch
int main ()
{ char s;
cout<<"Da se systawi programa, chrez koqto se wywevda malka bukwa\n";
cout<<"ot interwala [e,l,p,z]. Programata da izwevda syotwetniq sezon.\n";
cout<<"Da se izwevda syobshenie za greshka, ako bukwata e izwyn interwala.\n";
cout<<"Primer: l Izhod: Lqto\n";
cout<<"Wywedete bukva za sezon [e,l,p,z]: ";cin>>s;
sezoni( s);
system("pause");
return 0;
} //kraj na programa operator switch
вложен оператор switch
Даден оператор switch може да съдържа в тялото си друг вложен оператор switch. Няма програмни ограничения за брой вложени оператора switch, но това може да доведе до по-трудно откриване на алгоритмична грешка.
Следващата примерна програма съдържа пример за два вложени един в друг оператора switch:
#include <iostream>
using namespace std;
int main ()
{ int pol, sem;
cout<<"Da se systawi prgrama, koqto da izwevda podhodqsho syobshenie\n";
cout<<"syobshenie za pol i semejno polovenie chrez operator switch \n";
cout<<"Wywmoven izbor za pol: 0 - myv; 1 - vena\n";
cout<<"Wywmoven izbor za semejno polovenie: 0 - neomyvena; 1 - omyvena\n";
cout<<"Wywedete pol [0..1]: ";cin>>pol;
pol%=2;
if (pol) { cout<<"Semejno polovenie: ";cin>>sem;}
switch (pol)
{ case 0: cout<<"Gospodin \n"; break;
case 1:
{ switch (sem) //wloven operator switch
{ case 0: cout<<"Gospovica \n";break;
case 1: cout<<"Gospova \n";break;
} // kraj switch (sem)
}
}// kraj switch (pol)
system("pause");
return 0;
}// kraj programa operator switch
Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.