Читайте также:
|
|
Условная операция является упрощенной формой условного оператора.
Форма записи условной операции:
(условие)? выражение1: выражение2
где условие – отношение или логическое выражение;
выражение1, выражение2 – арифметические выражения;
? и: - разделительные знаки.
Выполняется условная операция следующим образом. Вначале проверяется условие. Если оно имеет значение "истина", то вычисляется выражение1, в противном случае - выражение2.
Например, необходимо вычислить max – наибольшее из двух чисел a и b.
max = (a>b)? a: b;
В тех случаях, когда надо вычислять одну и ту переменную по двум разным формулам в зависимости от условия, то целесообразно вместо условного оператора использовать условную операцию.
3.7. Оператор – переключатель switch
Предназначен для выбора одного из вариантов выполнения действий в программе.
Форма записи:
switch (выражение)
{
case конст.1: оператор;
........
оператор;
case конст.2: оператор;
........
оператор;
..................
default: оператор;
........
оператор;
}
где
выражение – называется селектор, должен иметь тип int или char;
case конст.i: – выбор i–го варианта действий, конст.i – константа типа int или char;
default: - определяет действия, когда не выбран ни один из вариантов, присутствие
необязательно
Принцип работы оператора switch:
1. Вычисляется выражение;
2. Производится сравнение выражения с конст.1, конст.2,....
3. Если найдена конст.i = = выражение, то выполняются операторы за конст.i: всё до конца switch;
4. Если нет совпадения выражения ни с одной конст., то выполняются операторы за default, когда default: отсутствует, ничего не выполняется.
Для выполнения операторов только для выбранного варианта, необходимо последним оператором для i-го case записать оператор break;
{
case конст.i: оператор;
оператор;
break;
case............
}
Пример: вычислить и вывести на экран функцию f по одной из формул, которые выбирает пользователь
f=a*sinx (1)
f=a*cosx (2)
f=a*tgx (3)
выход (0)
Текст программы:
#include <stdio.h>
#include <math.h>
#include <conio.h>
void main ()
{ float f, a, x;
int num;
clrscr ();
printf(“input a, x\n”);
scanf(“%f%f”,&a,&x);
lab1: printf(“select variant of calculation:\n”);
printf(“ 1-a*sin(x)\n 2-a*cos(x)\n 3-a*tan(x)\ 0-exit\n”);
scanf(“%d”,&num);
switch(num)
{
case1: f=a*sin(x);
break;
case2: f=a*cos(x);
break;
case3: f=a*tan(x);
break;
case0: printf(“end of program\n”);
exit(0);
default: printf(“Error of choice\n”);
printf(“Press any key to retry\n”);
getch();
clrscr();
goto lab1;
}
printf(“f=%.3f\n”,f);
printf(“Press any key for selection continue \n”);
getch();
clrscr();
goto lab1;
}
Дата добавления: 2015-01-05; просмотров: 34 | Поможем написать вашу работу | Нарушение авторских прав |