ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Float x, y, s_left, s_right, alfa, sin_alfa, segment;printf(“\nx= ”); scanf(“%f”, &x); if (x<=1.0) // первый участок { y=sqrt(1.0 - (x - 1.0) * (x - 1.0)); if (x<=0.0) y=0.0; } Else { // второй участок y=sqrt(1.0 - (x - floor(x)) * (x - floor(x))); if (x>=2.0) y=0.0; } if (x==1.0) // двойной знак равенства! { s_left=0.7854; s_right=0.7854; } if (x<1.0) // первый участок { sin_alfa=y; if (sin_alfa!=1.0) alfa=atan(sin_alfa/sqrt(1.0 - sin_alfa*sin_alfa)); else alfa=Pi/2.0; segment=0.5*(alfa - sin_alfa); s_left=segment + 0.5*x*y; s_right=Pi/2.0 - s_left; } //x<1.0 if (x>1.0) // второй участок { x=2.0-x; sin_alfa=y; if (sin_alfa!=1.0) alfa=atan(sin_alfa/sqrt(1.0 - sin_alfa*sin_alfa)); else alfa=Pi/2.0; segment=0.5*(alfa - sin_alfa); s_left=segment + 0.5*x*y; s_right=Pi/2.0 - s_left; } //x>1.0 printf(“\ny=%6.3f”, y); printf(“\n s_left=%6.3f”, s_left); printf(“\n s_right=%6.3f”, s_right); Return 0; } Переключатель Часто приходится делать выбор не между двумя, а между несколькими путями решения задачи. Такую ситуацию называют переключателем:
В языке Си переключатель реализуется оператором: Switch (селектор) { case метка-1: оператор-1; Break; case метка-2: оператор-2; Break; case метка-3: оператор-3; Break; ................. default: оператор-n; } где switch – служебное слово переключатель, case – служебное слово вариант, селектор – переменная или выражение целого типа (обязательно ставится в скобках); метка-1, метка-2,… – метки вариантов – значения селектора – целые числа, символы или имена констант, break – служебное слово прервать, default – служебное слово по умолчанию (не обязательно). Действия оператора: 1) вычисляется значение селектора; 2) это значение отыскивается среди меток вариантов; 3) выполняется оператор, стоящий за найденной меткой; 4) если далее стоит оператор break, то осуществляется выход из переключателя, иначе выполняется следующий оператор в нем; 5) если метка не найдена, то выполняется оператор, стоящий за словом default. В любой ветви оператора switch могут стоять несколько меток вариантов, разделенных двоеточием: Switch (селектор) { case метка-1: case метка-2: case метка-3: оператор-1; Break; case метка-4: case метка-5: оператор-2; Break; case метка-6: оператор-3; Break; ................. default: оператор-n; } Эту структуру можно представить в следующем виде: Switch (селектор) { case метка-1: case метка-2: case метка-3: оператор-1; Break; case метка-4: case метка-5: оператор-2; Break; case метка-6: оператор-3; Break; ................. default: оператор-n; } Внимание! Метки вариантов не должны повторяться! Если в переключателе убрать операторы break, то после выполнения оператора, стоящего за найденной меткой вариантов, выполняются все оставшиеся операторы, в том числе и оператор после слова default: Int i; printf(“\nВведите цифру:”); scanf(“%d”, &i); Switch (i) { case 0: printf(“\nЭто цифра ноль”); case 1: case 2: printf(“\nЭто цифра один или два”); default: printf(“\nЭто неизвестная цифра”); } При вводе цифры 0 на экран будут выведены сообщения: Это цифра ноль Не нашли, что искали? Воспользуйтесь поиском:
|