Модуль 3. Управляющие операторы. Условный оператор и оператор выбора Рассматриваются операторы ветвления
Условный оператор if ( выражение ) оператор_1; [else оператор_2; ] if (a<0) b = 1; if (ad || a==0)) b++; else {b* = a; a = 0; } if (aa) max = b; else max = a; // max = (b > a) ? b : a; // 1 // 2 Короткая форма if: // 3 2
Условный оператор. Пример 1. начало ввод А, В да А> 0 нет C=B-A C=B+5 … int a, b; printf(“n Input A, B”); scanf(“%d%d”, &a, &b); if (a>0) c=b+5; else c=b-a; printf(“nc=%d”, c); … Результат: вывод С Input A, B 4 23 c=28 конец Даны два числа А и В. Если А положительно, то вычислить С=В+5, иначе С=В-А. 3
Даны 3 целых числа. Найти, сколько положительных чисел в этом наборе. начало ввод а, b, c да да да c>0 k=3 нет b>0 нет k=2 нет a> 0 да k=2 да c>0 нет k=1 да k=2 c>0 нет k=1 нет b> 0 да c>0 k=1 нет k=0 вывод k конец 4
начало Условный оператор. Пример 2. Ввод a, b, c да k=3 a>0 и b>0 и c>0 да k=2 нет (a>0 и b>0) или (a>0 и c>0) или (b>0 и c>0) нет да k=0 a<=0 и b<=0 и с<=0 нет k=1 вывод k конец 5
Фрагмент программы для примера 2 int a, b, c; printf(“n Input numbers: ”); scanf(“%d%d%d”, &a, &b, &c); if ((a>0)&&(b>0)&&(c>0)) k=3; else if (((a>0)&&(b>0))||((a>0)&&(c>0))||((b>0)&&(c>0))) k=2; else if ((a<=0)&&(b<=0)&&(c<=0)) k=0; else k=1; printf(“n k=%d”, k); 6
Синтаксис оператора switch ( выражение ){ case константное_выражение_1: [список_операторов_1] [break; ] case константное_выражение_2: [список_операторов_2] [break; ]. . . case константное_выражение_n: [список_операторов_n] [break; ] 7
int n; printf(“n N= ”); scanf(“%d”, &n); switch(n) { case 2: printf(“неудовлетворительно”); break; case 3: printf(“удовлетворительно”); break; case 4: printf(“хорошо”); break; case 5: printf(“отлично”); break; default; printf(“Error”); } Оператор switch. Пример 1. Дано число от 2 до 5. Укажите оценку, соответствующую числу. начало ввод n да вывод “неудовлетворительно” n=2 да нет n=3 да вывод “удовлетворительно” нет n=4 да n=5 нет вывод “хорошо” вывод “отлично” конец ошибка ввода 8
Оператор switch. Пример 2. #include int main(){ int a, b, res; char op; bool f = true; cout << "n. Введите 1 й операнд : "; cin >> a; cout << "n. Введите знак операции : "; cin >> op; cout << "n. Введите 2 й операнд : "; cin >> b; switch (op){ case '+': res = a + b; break; case '-': res = a - b; break; case '*': res = a * b; break; case '/': res = a / b; break; default : cout <<"n. Неизвестная операция"; f = false; } if (f) cout << "n. Результат : " << res; } 9