Разветвляющиеся вычислительные процессы
Лекция 4 Разветвляющиеся вычислительные процессы Цели: ü познакомиться с понятием разветвляющегося вычислительного процесса; ü познакомиться с понятием логического выражения, изучить логические операции и операции отношения и освоить методику построения логических выражений; ü изучить операторы языка С++, позволяющие реализовывать разветвляющиеся вычислительные алгоритмы. 1. Управляющая структура «развилка». Логические операции и операции отношения При описании разветвляющихся вычислительных алгоритмов кроме управляющей структуры «следование» применяется структура «развилка», или «если–то–иначе». Применяется такая структура в случае, когда нужно выбрать одну из имеющихся последовательностей действий в зависимости от выполнения или невыполнения некоторого условия. Форма записи структуры: если < условие> действия1 иначе действия2 все_если Работа структуры организована по принципу: если < условие> истинно (выполняется), то выполняются действия1; в случае ложности (невыполнения) < условие> выполняются действия2. Возможна вложенность структур «если–то–иначе» любой глубины, т. е. вместо действия1 и/или действия2 может быть записана еще одна структура «развилка» и т. д. < условие>, записанное после слова если, представляет собой логическое выражение. Логическое выражение – это два операнда, соединенные либо логической операцией, либо операцией отношения. Под логической операцией понимается одна из операций, связывающих два операнда: И, ИЛИ или операция отрицания НЕ, записываемая перед операндом. Если < условие> – два условия, связанные логической операцией И, то < условие> будет истинным в случае одновременного исполнения этих двух условий. Если < условие> – два условия, связанные логической операцией ИЛИ, то < условие> будет истинным в случае, когда хотя бы одно из этих двух условий будет выполняться. Результаты выполнения логических операций приведены в табл. 4.
Под операцией отношения понимается одна из операций, связывающих два операнда: > (больше), > = (больше или равно), < (меньше), < = (меньше или равно), == (равно), ! = (не равно). Операция отношения позволяет сравнивать числовые выражения по их значениям. Пример. Определить условие попадания точки с координатами (x; y) в указанную область D: Напишем условие попадания точки с координатами (x; y) в указанную область. Очевидно, что данная область должна быть разбита на две непересекающиеся области D1 и D2, т. е. D=D1UD2. Таким образом, можно установить, что точка может попасть в D1 или в D2. Опишем условие попадания точки (х; у) в области D1 и D2: D1: x> =-4 И x< =4 И y> =0 И y< =2 D2: x> =0 И x< =2 И y> =-2 И y< =0 Таким образом, условие принадлежности точки с координатами (x; y) области D будет следующим: (x> =-4 И x< =4 И y> =0 И y< =2) ИЛИ (x> =0 И x< =2 И y> =-2 И y< =0)
2. Операторы языка С++, позволяющие реализовывать разветвляющиеся вычислительные алгоритмы Для реализации разветвляющихся вычислительных алгоритмов в языке С++ предусмотрены условный оператор if(), условное выражение и оператор выбора switch(). 2. 1. Условный оператор if() Условный оператор применяется в том случае, если есть необходимость вычислений различных выражений в зависимости от выполнения или невыполнения определённого условия. Синтаксис условного оператора:
if (< условие> ) < оператор1, выполняемый при истинности (выполнении) условия> else < оператор2, выполняемый при ложности (не выполнении) условия> После if(< условие> ) и else точка с запятой не ставится. Оператор1 и оператор2 – это либо простой, либо составной оператор, т. е. операторные скобки ставятся в том случае, если после if() или else записано несколько операторов, относящихся к if() или else соответственно; если же записан один оператор после if() или else, то операторные скобки не ставятся. Условием может быть логическое или арифметическое выражение. Логическое выражение – это два операнда, соединенные логической операцией (& & (логическое И), || (логическое ИЛИ), ! (логическое НЕ)) и/или операцией отношения (<, < =, >, > =, ==, ! =). Результаты логических операций приведены в табл. 5.
Логические выражения применяются для определения истинности или ложности определенных ситуаций. Результатом вычислений логического выражения является целое число: 1 – случай истинности; 0 – случай ложности. Если значение выражения, указанного в условии оператора if() не равно нулю, то условие считается истинным, и выполняется оператор1, следующий за if(). Допустима сокращённая форма условного оператора, в которой отсутствует else и оператор2. В этом случае при ложности проверяемого условия никакие действия не выполняются. В свою очередь, оператор1 и оператор2 могут быть условными, что позволяет организовать цепочку проверок условий любой глубины вложенности. В этих цепочках каждый из условных операторов может быть как полным условным, так и иметь сокращённую форму записи. При этом могут возникать ошибки неоднозначного сопоставления if() и else. Синтаксис языка предполагает, что при вложенных условных операторах каждое else соответствует ближайшему к нему предшествующему if(). Типичной конструкцией разветвляющегося вычислительного процесса является лесенка if-else-if. Она выглядит следующим образом: if(< условие> ) { операторы; } else if(< условие> ) { операторы;
} else if(< условие> ) { операторы; } · · · else { операторы; } Условия вычисляются сверху вниз. Когда обнаруживается истинное условие, то выполняется оператор, связанный с этим условием, а остальная часть конструкции игнорируется. Если не найдено ни одного истинного условия, выполняется оператор, соответствующий последнему else. Если последний оператор else отсутствует, то не выполняется никаких действий в случае ложности всех условий.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|