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


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

Содержание

Операция «,» (запятая)Данная операция используется при организации строго гарантированной последовательности вычислений (обычно используется там, где по синтаксису допустима только одна операция, например, в операторе 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 == 7

Слайд 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. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


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

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