Разделы презентаций


Разветвляющиеся алгоритмы

Содержание

Операция «,» (запятая)Данная операция используется при организации строго гарантированной последовательности вычислений (обычно используется там, где по синтаксису допустима только одна операция, например, в операторе for). Форма записи: Выражение_1, … , Выражение_N;Выражения 1,

Слайды и текст этой презентации

Слайд 1

Составление разветвляющихся алгоритмов

Составление разветвляющихся алгоритмов

Слайд 2Операция «,» (запятая)
Данная операция используется при организации строго гарантированной последовательности

вычислений (обычно используется там, где по синтаксису допустима только одна

операция, например, в операторе for). Форма записи:
Выражение_1, … , Выражение_N;
Выражения 1, 2, …, N вычисляются последовательно друг за другом и результатом будет значение последнего Выражения_N, например:
m = ( i = 1, j = i + 1, k = 6, n = i + j + k );
получим последовательность вычислений, взятых в скобки:
i = 1, j = i + 1 = 2, k = 6, n = 1 + 2 + 6,
в результате m = n = 9.
Операция «,» (запятая)Данная операция используется при организации строго гарантированной последовательности вычислений (обычно используется там, где по синтаксису

Слайд 3Используя «запятую» в операции присваивания, нужно помнить, что операция присваивания

выполняется справа на лево, поэтому последним будет Выражение_1:
Операнд = Выражение_1,

… , Выражение_N;
Тогда предыдущий пример (без скобок) следует записать:
m = n = i + j + k, k = 6, j = i + 1, i = 1;
получим последовательность аналогичных вычислений:
i = 1, j = i + 1 = 2, k = 6, n = 1 + 2 + 6,
в результате m = n = 9.
Используя «запятую» в операции присваивания, нужно помнить, что операция присваивания выполняется справа на лево, поэтому последним будет

Слайд 4Пример ошибки: Вычислить

Обозначив числитель a, знаменатель b запишем:
a =

2 * cos ( x – M_PI / 6 );
b

= 0,5 + sin ( y );
t = a / b;
В последней операции будет ошибка «Деление на ноль», т.к. в b = 0,5 + sin ( y );
Выражение_1 = 0, Выражение_2 = 5 + sin ( y ).
В результате b = 0;
Пример ошибки: Вычислить 		Обозначив числитель a, знаменатель b запишем:		a = 2 * cos ( x – M_PI

Слайд 5Операции сравнения
В языке Си используются следующие операции сравнения (отношения между

объектами):
== Равно; != Не равно;
< Меньше;

<= Меньше либо равно;
> Больше; >= Больше либо равно.
Пары символов разделять нельзя.
Общий вид операций отношений:
Операнд_1 Знак_Операции Операнд_2
Операндами могут быть любые арифметические выражения и указатели.
Арифметические выражения перед сравнением вычисляются и преобразуются к одному типу.
Результат операции имеет значение 1 (true), если отношение Истинно, или получено не нулевое значение, в противном случае 0, т.е. Ложно (false).
Операции сравненияВ языке Си используются следующие операции сравнения (отношения между объектами):== 	 Равно;   		!= 	Не

Слайд 6В языке Си нет логического типа данных, в С++ это

тип bool.
Операции сравнения на равенство и неравенство имеют меньший

приоритет, чем остальные операции отношений.
Арифметические операции имеют больший приоритет над операциями сравнения.
Примеры. Какие будут результаты в следующих выражениях:
int a = 2, b = 5, x;
1) x = a % b == 0;
2) x = a * b > 3;
3) x = (a != 0) + (b == 5);
В языке Си нет логического типа данных, в С++ это тип bool. Операции сравнения на равенство и

Слайд 7Логические операции
Логические операции в порядке убывания приоритета:
! – Логическое «НЕ»,

отрицание (инверсия);
&& – Логическое «И», конъюнкция (умножение);
|| – Логическое «ИЛИ»,

дизъюнкция (сложение).
Операндами логических операций могут быть любые скалярные объекты. Ненулевое значение операнда Истинно (1), нулевое – Ложь (0). Результат логической операции 1, или 0.
Общий вид унарной операции отрицания, которая изменяет значение Операнда на противоположный:
! Операнд
Примеры ( ! Истина – Ложь ):
1) !0 → 1
2) !5 → 0
3) x = 10; ! (x > 0) → 0 Нужны ли скобки?
Логические операцииЛогические операции в порядке убывания приоритета:	! 	– Логическое «НЕ», отрицание (инверсия);	&& 	– Логическое «И», конъюнкция (умножение);	||

Слайд 8Общий вид бинарных операций И и ИЛИ
Выражение_1 Операция

Выражение_2
1. В операции И (&&) результат 1 только если Истинны

оба Выражения, иначе – 0 (умножение).
2. В операции ИЛИ (||) результат 0 только если Ложны оба Выражения, иначе – 1 (сложение).
Особенность операций И и ИЛИ – экономное последовательное вычисление Выражений-Операндов:
1) если Выражение_1 операции И Ложно, то результат операции – 0 и Выражение_2 не вычисляется;
2) если Выражение_1 операции ИЛИ Истинно, то результат операции – 1 и Выражение_2 не вычисляется.
Общий вид бинарных операций И и ИЛИВыражение_1  Операция  Выражение_21. В операции И (&&) результат 1

Слайд 9Логические операции «И» и «ИЛИ» имеют меньший приоритет, чем операции

сравнения.
Примеры:
1) y > 0 && x == 7

→ 1, если оба выражения Истинны;
2) y > 0 || x == 7 → 1, если хотя бы одно выражение Истинно.

3) чтобы записать x ∈ [a, b] (a ≤ x ≤ b):
x >= a && x <= b
4) чтобы записать x ∈ [a, b] или x ∈ [с, d]:
(x >= a && x <= b) || (x >= c && x <= d)
Логические операции «И» и «ИЛИ» имеют меньший приоритет, чем операции сравнения. Примеры:1) y > 0 && x

Слайд 10Побитовые логические операции (~, &, |, ^), операции над битами

(>>,

отдельными битами. Побитовые логические операции нельзя применять к переменным вещественного типа.
Обозначения операций:
~ Дополнение (унарная операция);
& Побитовое «И»;
| Побитовое включающее «ИЛИ»;
^ Побитовое исключающее «ИЛИ» – сложение по модулю 2;
>> Сдвиг вправо;
<< Сдвиг влево.
Побитовые логические операции (~, &, |, ^), операции над битами (>>, 	 Сдвиг вправо;

Слайд 11Условный оператор
Условный оператор if (если) используется для разветвления процесса выполнения

кода программы на два направления.
Условный оператор может быть простым и

полным.
Форма простого оператора:
if (Выражение) Оператор;
Выражение – логическое или арифметическое выражение, вычисляемое перед проверкой.
Если (if) Выражение истинно (не равно 0), то выполняется Оператор, иначе он игнорируется.
Оператор – простой или составной (блок) оператор.
Блок создаем, если необходимо выполнить более одного оператора (заключаем их в фигурные скобки).


Условный операторУсловный оператор if (если) используется для разветвления процесса выполнения кода программы на два направления.Условный оператор может

Слайд 12
Примеры записи:
1) if (x > 0) y = 0;
2) if

(i != 1) { – Создаем Блок
j++;
s

= 1;
}
3) if (i != 1) j++, s = 1; – Используем Запятую
Примеры записи:1)	 if (x > 0) y = 0;2)	 if (i != 1) { 		 	– Создаем

Слайд 13Форма полного (составного) оператора:
if (Выражение) Оператор_1 ;

else Оператор_2 ;
Если Выражение Истинно, то выполняется Оператор_1,

иначе (else) – Оператор_2. Операторы 1, 2 могут быть простыми или составными (блоками).
Символ «;» перед словом else в языке Си обязателен.
Форма полного (составного) оператора:   		if (Выражение) Оператор_1 ;   		else Оператор_2 ;Если Выражение Истинно,

Слайд 14Операторами 1, 2 могут быть любые, в том числе и

условные. Если есть вложенные операторы if-else, то текущий else принадлежит

ближайшему if, не имеющему else. Например:
if (n > 0)
if(a > b) z = a;
else z = b;
Здесь else связан со вторым if (a > b).
Если нужно связать else с внешним if, то используем операторные скобки (блок):
if (n > 0) {
if (a > b) z = a;
}
else z = b;
Обратите внимание, что после заголовка оператора if(Выражение) «;» не ставится!!!
Операторами 1, 2 могут быть любые, в том числе и условные. Если есть вложенные операторы if-else, то

Слайд 15В следующей цепочке операторов if-else-if Выражения 1,2,3 просматриваются последовательно:

if (Выражение_1) Оператор_1;
else
if (Выражение_2) Оператор_2;

else
if (Выражение_3) Оператор_3;
else Оператор_4 ;
Если какое-то Выражение оказывается истинным, то выполняется относящийся к нему Оператор и этим вся цепочка заканчивается.
Оператор_4 будет выполнен только, если все Выражения Ложны.
В следующей цепочке операторов if-else-if Выражения 1,2,3 просматриваются последовательно:   		if (Выражение_1) Оператор_1;   		else

Слайд 16Замечание 1. Наиболее распространенной ошибкой является использование в Выражении операции

присваивания «=» вместо операции сравнения на равенство «==» (два знака

равно). Например, в следующем операторе синтаксической ошибки нет
if (x = 5) a++;
но значение а будет увеличено на единицу независимо от значения переменной х, т.к. результатом операции присваивания х = 5 в круглых скобках является значение
5 ≠ 0 – Истина.
Замечание 2. Вычисления по равенству вещественных величин рекомендуются задавать в else.
Замечание 1. Наиболее распространенной ошибкой является использование в Выражении операции присваивания «=» вместо операции сравнения на равенство

Слайд 17Пример 1:
if (x < 0) cout

" 0) cout

<< " X положительное " << endl; else
cout << " X равно нулю " << endl;

Пример 2: вычислить

Более корректной для double x, z; будет следующая запись
if (z < 1) x = z * z;
else
x = z + 1;


Пример 1:	if (x < 0) cout

Слайд 18Условная операция «?:»
Условная операция – тернарная, т.к. в ней участвуют

три операнда. Ее форма:
Выражение_1 ? Выражение_2 : Выражение_3
если Выражение_1 Истинно,

то результат операции Выражение_2, иначе – Выражение_3. Каждый раз вычисляется только одно из Выражений 2 или 3.
Схема работы аналогична схеме полного оператора if :


Условная операция «?:»Условная операция – тернарная, т.к. в ней участвуют три операнда. Ее форма:	Выражение_1 ? Выражение_2 :

Слайд 19Пример: найти максимальное между a и b, используя оператор if

и условную операцию.
1. Используя оператор if :
if

(a > b) max = a;
else max = b;
2. Используя условную операцию:
max = (a > b) ? a : b;
Условную операцию можно использовать также как и любое другое выражение.
Пример: найти максимальное между a и b, используя оператор if и условную операцию.1. Используя оператор if :

Слайд 20Оператор альтернативного выбора
Составной оператор switch (переключатель) предназначен для разветвления процесса

вычислений на несколько направлений.
Общий вид:
switch ( Выражение ) {
case

Константа_1: Список_1 Операторов
case Константа_2: Список_2
...
case Константа_N : Список_N
default : Список_N+1 – Необязательная ветвь
}
Типы Выражения и Констант должны совпадать и могут быть только int (целый) или char (символьный).
Оператор альтернативного выбораСоставной оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Общий вид:switch (

Слайд 21Сначала вычисляется Выражение, указанное в заголовке, затем оно сравнивается с

Константами, которые фактически выполняют роль меток.
Если значение Выражения совпало

с одной из Констант, то выполняется соответствующий Список Операторов. После этого, если выход из switch в данной ветви не указан, последовательно выполняются все остальные ветви.
Константы должны иметь разные значения, но одного типа. Несколько меток могут следовать подряд, и тогда переход в указанную ветвь будет происходить при совпадении хотя бы одной из них. Порядок следования ветвей не важен.
Если Выражение не совпало ни с одной из Констант, то выполняется ветвь default, а при ее отсутствии – оператор, следующий за switch.
Сначала вычисляется Выражение, указанное в заголовке, затем оно сравнивается с Константами, которые фактически выполняют роль меток. Если

Слайд 22Оператор break (разрыв) выполняет выход из оператора switch.
Если по

совпадению с каждой Константой должна быть выполнена только одна ветвь,

в конце каждой из них используем break.

Пример switch с использованием оператора break:

Оператор break (разрыв) выполняет выход из оператора switch. Если по совпадению с каждой Константой должна быть выполнена

Слайд 23 . . .
int i = 2;
switch (

i ) {
case 1: cout

<< " Case 1 " << endl; break;
case 2: cout << " Case 2 " << endl; break;
case 3: cout << " Case 3 " << endl; break;
default : cout << " Default " << endl; break;
}
cout << " End switch" << endl;
. . .
Результат:
Case 2
End switch
. . .	int i = 2;   	switch ( i ) {    	case

Слайд 24Пример switch без break:
. . .
int i = 2;

switch ( i ) {
case

1: cout << " Case 1 " << endl;
case 2: cout << " Case 2 " << endl;
case 3: cout << " Case 3 " << endl;
default : cout << " Default " << endl;
}
cout << " End switch " << endl;
. . .
Результат в данном случае:
Case 2
Case 3
Default
End switch


Пример switch без break:			. . .	int i = 2;   	switch ( i ) {

Слайд 25
Пример выбора и расчета функции f(x): 2x, x2, x/3 для

консольного приложения, в котором можно сделать неправильный выбор:
. .

.
int kod;
double f, x;
cout << " 1 – 2x \n 2 – x*x \n 3 – x / 3 " << endl;
cin >> kod;
switch ( kod ) {
case 1 : default :
f = 2 * x; cout << " f = 2x ( Default ! ) " << endl;
break;
case 2 :
f = x * x; cout << " f = x*x " << endl;
break;
case 3 :
f = x / 3; cout << " f = x/3 " << endl;
break;
}
. . .
Пример выбора и расчета функции f(x): 2x, x2, x/3 для консольного приложения, в котором можно сделать неправильный

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика