Слайд 2Цели и задачи лекции
Цель леции – изучить используемые в языке программирования С++
![Цели и задачи лекции Цель леции – изучить используемые в языке программирования](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-1.jpg)
конструкции для принятия решений
Слайд 3Виды условных операторов
В языке программирования С++ используются несколько конструкций для принятия решений:
• оператор
![Виды условных операторов В языке программирования С++ используются несколько конструкций для принятия](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-2.jpg)
if;
• оператор switch;
• условный оператор ? (тернарный оператор)
Слайд 4Оператор if
Общая форма записи оператора if:
if (expression)
program statement;
В операторе if используется результат
![Оператор if Общая форма записи оператора if: if (expression) program statement; В](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-3.jpg)
вычисления условия, заключенного в круглые скобки, на основе которого принимается решение. Результат вычисления условия expression может быть арифметическим или логическим. Если результат выполнения условия expression будет истинным, то возможно выполнить несколько утверждений типа program statement
Слайд 5Оператор if
пример:
if (expression)
{
program1 statement1;
program2 statement2;
...
}
![Оператор if пример: if (expression) { program1 statement1; program2 statement2; ... }](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-4.jpg)
Слайд 6Конструкция if–else
Общая форма записи конструкции if–else:
if (expression)
program1 statement1;
else
program2 statement2;
Если выполняется условие expression,
![Конструкция if–else Общая форма записи конструкции if–else: if (expression) program1 statement1; else](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-5.jpg)
то будет выполняться фрагмент программы program1 statement1, в противном случае будет выполняться program2 statement2.
Слайд 7Конструкция if–else
Каждое из утверждений может быть множественным. В таком случае применяются фигурные
![Конструкция if–else Каждое из утверждений может быть множественным. В таком случае применяются](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-6.jpg)
скобки:
if (expression)
{
program1 statement1;
program2 statement2;
...
}
Слайд 8Конструкция if–else
else
{
program33 statement33;
program34 statement34;
...
}
![Конструкция if–else else { program33 statement33; program34 statement34; ... }](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-7.jpg)
Слайд 9Конструкция if–else if–else if–...–else
Форма записи конструкции if–else if–else if–...–else:
if (expression1)
program1 statement1;
else if
![Конструкция if–else if–else if–...–else Форма записи конструкции if–else if–else if–...–else: if (expression1)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-8.jpg)
(expression2)
program2 statement2;
Слайд 10Конструкция if–else if–else if–...–else
else if (expression3)
program3 statement3;
...
else
program statement;
![Конструкция if–else if–else if–...–else else if (expression3) program3 statement3; ... else program statement;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-9.jpg)
Слайд 11Конструкция if–else if–else if–...–else
Приведенная конструкция используется для выбора возможных ситуаций, когда проверяются
![Конструкция if–else if–else if–...–else Приведенная конструкция используется для выбора возможных ситуаций, когда](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-10.jpg)
условия expression1, expression2, expression3,... . Соответственно будут выполняться действия program1 statement1, program2 statement2, program3 statement3 и т.д. В случае, когда ни одно из условий не выполняется, выполняются действия, прописанные после оператора else.
Слайд 12Конструкция if–else if–else if–...–else
В случае выполнения множественных действий применяются фигурные скобки для
![Конструкция if–else if–else if–...–else В случае выполнения множественных действий применяются фигурные скобки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-11.jpg)
каждого из утверждений:
if (expression1)
{
program1 statement1;
...
}
else if (expression2)
Слайд 13Конструкция if–else if–else if–...–else
else if (expression2)
{
program2 statement2;
...
}
else if (expression3)
{
program3 statement3;
...
}
![Конструкция if–else if–else if–...–else else if (expression2) { program2 statement2; ... }](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-12.jpg)
Слайд 14Конструкция if–else if–else if–...–else
...
else
{
program statement;
...
}
![Конструкция if–else if–else if–...–else ... else { program statement; ... }](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-13.jpg)
Слайд 15Оператор switch
Общая форма записи оператора switch:
switch (expression) {
case value1:
program statement;
...
break;
case value2:
program
![Оператор switch Общая форма записи оператора switch: switch (expression) { case value1:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-14.jpg)
statement;
...
break;
Слайд 16Оператор switch
Общая форма записи оператора switch:
...
case valuen:
program statement;
...
break;
default:
program statement;
...
break;
}
![Оператор switch Общая форма записи оператора switch: ... case valuen: program statement;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-15.jpg)
Слайд 17Оператор switch
Выражение заключенного в круглые скобки оператора последовательно сравнивается со значениями value1,
![Оператор switch Выражение заключенного в круглые скобки оператора последовательно сравнивается со значениями](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-16.jpg)
value2,..., valuen, которые должны быть простыми константами или константными выражениями. В том случае, когда одно из этих значений равно значению, выполняются утверждения, которые следуют за данным значением.
Слайд 18Оператор switch
Утверждение break сигнализирует об окончании выполнения утверждений и приводит к выходу
![Оператор switch Утверждение break сигнализирует об окончании выполнения утверждений и приводит к](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-17.jpg)
из оператора switch. Утверждение break ставится в конце каждого варианта выбора. Если этого не сделать, то выполнение последовательности утверждений перейдет в следующий вариант выбора и будет выполняться до тех пор, пока не встретится утверждение break
Слайд 19Оператор switch
Специальный дополнительный вариант default будет выполнен в том случае, когда не
![Оператор switch Специальный дополнительный вариант default будет выполнен в том случае, когда](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-18.jpg)
будет найдено ни одного совпадения.
Операторы if и switch той или иной синтаксической конструкции существуют практически во всех языках программирования (в первую очередь языках высокого уровня), и их часто называют операторами ветвления.
Слайд 20Условный оператор ?
В отличие от других операторов языка С, которые могут быть
![Условный оператор ? В отличие от других операторов языка С, которые могут](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-19.jpg)
унарными или бинарными, специфический оператор условия является тернарным оператором. Это означает, что у него может быть три операнда.
Общий формат записи оператора условия:
условие ? выражение_1 : выражение_2
Слайд 21Условный оператор ?
Если в результате вычисления условия будет получено значение TRUE (истина,
![Условный оператор ? Если в результате вычисления условия будет получено значение TRUE](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-20.jpg)
не нуль), то выполняется выражение_1, и результатом выполнения оператора условия будет значение, полученное при вычислении этого выражения. Если в результате вычисления условия будет получено значение FALSE (ложь, т.е. нуль), то выполняется выражение_2, и результатом выполнения оператора условия будет значение, полученное при вычислении выражение_2.
Слайд 22Условный оператор ?
Оператор условия часто описывают как оператор ?. Тернарный оператор условия
![Условный оператор ? Оператор условия часто описывают как оператор ?. Тернарный оператор](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-21.jpg)
? наиболее часто используется для присвоения переменной одного из двух значений в зависимости от некоторого условия.
Слайд 23Пример программы
#include
#include
#include
int main(void) {
float a, b, c;
float D, x1,
![Пример программы #include #include #include int main(void) { float a, b, c;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-22.jpg)
x2, x;
printf("\n\t Equation a*x^2 + b*x + c = 0\n");
Слайд 24Пример программы
printf("\n\t Enter the coefficient a: ");
scanf_s("%f", &a);
printf("\t Enter the coefficient b:
![Пример программы printf("\n\t Enter the coefficient a: "); scanf_s("%f", &a); printf("\t Enter](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-23.jpg)
");
scanf_s("%f", &b);
printf("\t Enter the coefficient c: ");
scanf_s("%f", &c);
D = b*b - 4*a*c;
if (D >= 0 && a != 0) {
Слайд 25Пример программы
x1 = -b/(2*a) + (float)sqrt(D)/(2*a);
x2 = -b/(2*a) - (float)sqrt(D)/(2*a);
printf("\n\t The
![Пример программы x1 = -b/(2*a) + (float)sqrt(D)/(2*a); x2 = -b/(2*a) - (float)sqrt(D)/(2*a);](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-24.jpg)
roots of the equation:\n\t x1 = %1.4f, x2 = %1.4f\n", x1, x2);
}
if (D < 0)
printf("\n\t The roots of complex\n");
Слайд 26Пример программы
if (a == 0 && b != 0) {
x = -c/b;
printf("\n\t
![Пример программы if (a == 0 && b != 0) { x](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/852210/slide-25.jpg)
As a = %1.0f,\n\t the solution of the equation is: %1.4f\n", a, x); }
printf("\n Press any key: ");
_getch();
return 0;
}