Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Разветвляющиеся вычислительные процессы




Лекция 4

Разветвляющиеся вычислительные процессы

Цели:

ü познакомиться с понятием разветвляющегося вычислительного процесса;

ü познакомиться с понятием логического выражения, изучить логические операции и операции отношения и освоить методику построения логических выражений;

ü изучить операторы языка С++, позволяющие реализовывать разветвляющиеся вычислительные алгоритмы.

1. Управляющая структура «развилка».

Логические операции и операции отношения

При описании разветвляющихся вычислительных алгоритмов кроме управляющей структуры «следование» применяется структура «развилка», или «если–то–иначе». Применяется такая структура в случае, когда нужно выбрать одну из имеющихся последовательностей действий в зависимости от выполнения или невыполнения некоторого условия. Форма записи структуры:

если < условие>

действия1

иначе

действия2

все_если

Работа структуры организована по принципу: если < условие> истинно (выполняется), то выполняются действия1; в случае ложности (невыполнения) < условие> выполняются действия2.

Возможна вложенность структур «если–то–иначе» любой глубины, т. е. вместо действия1 и/или действия2 может быть записана еще одна структура «развилка» и т. д.

< условие>, записанное после слова если, представляет собой логическое выражение. Логическое выражение – это два операнда, соединенные либо логической операцией, либо операцией отношения. Под логической операцией понимается одна из операций, связывающих два операнда: И, ИЛИ или операция отрицания НЕ, записываемая перед операндом. Если < условие> – два условия, связанные логической операцией И, то < условие> будет истинным в случае одновременного исполнения этих двух условий. Если < условие> – два условия, связанные логической операцией ИЛИ, то < условие> будет истинным в случае, когда хотя бы одно из этих двух условий будет выполняться. Результаты выполнения логических операций приведены в табл. 4.

Таблица 4

Значение операнда 1 (оп1)

Значение операнда 2 (оп2)

Результат операций

НЕ(оп1) (оп1) И (оп2) (оп1) ИЛИ (оп2)

Под операцией отношения понимается одна из операций, связывающих два операнда: > (больше), > = (больше или равно), < (меньше), < = (меньше или равно), == (равно), ! = (не равно). Операция отношения позволяет сравнивать числовые выражения по их значениям.

Пример. Определить условие попадания точки с координатами (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.

Таблица 5

Значение операнда1 (оп1)

Значение  операнда2 (оп2)

Результат операций

! (оп1) (оп1) & & (оп2) (оп1) || (оп2)

Логические выражения применяются для определения истинности или ложности определенных ситуаций. Результатом вычислений логического выражения является целое число: 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...