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




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

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

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

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

блок1

иначе

блок2

все_если

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

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

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

Значение операнда 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)

В Excel(x – A3 y – B3):

ИЛИ(И(A3>=-4;A3<=4;B3>=0;B3<=2);И(A3>=0;A3<=2;B3>=-2;B3<=0))

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

Пример 1. Разработать алгоритм и составить по нему программу для вычисления значений функции y = f(x). Необходимо учитывать область определения функции:

 

1. Построить алгоритм. В задаче требуется вычислить функцию, вид которой зависит от значения аргумента. Поэтому разобьем числовую ось значениями, указанными в формуле на несколько промежутков, указав при этом, какой должен быть результат вычислений на каждом промежутке:

При разработке алгоритма будем рассматривать промежутки числовой оси слева направо. Обозначения в алгоритме: ФНЗ – функция не задана; ФНО – функция не определена.

Записывая основной алгоритм решения задачи, вместо вычислений каждой части функции для упрощения будем писать блок1, блок2 и блок3. Поставим в соответствие каждому блоку алгоритм вычисления конкретной функции с учетом её области определения. Последний этап разработки алгоритма решения исходной задачи – подстановка в основной алгоритм вместо блоков 1,2,3 соответствующих вычислительных алгоритмов.

Сделаем небольшое замечание относительно записи текста алгоритма. Рекомендуется записывать текст алгоритма «ступеньками», т.е. новый блок «если – иначе» нужно записывать с отступом относительно предыдущего блока «если – иначе» и т.д. Так же следует поступать и при записи текста программы, соответствующей алгоритму. Одной из причин этого является то, что структура алгоритма и программы хорошо просматривается, что может помочь при обнаружении синтаксических ошибок.

Основной алгоритм:

если х<5 то

Блок1

иначе

если x<7 то

«ФНЗ»

иначе

если x<12 то

Блок2

иначе

если х<=15 то

«ФНЗ»

иначе

Блок3

все_если

все_если

все_если

все_если

 

Рассмотрим вычисления в каждом из блоков 1, 2 и 3 отдельно.

Блок1. Требуется вычислить функцию . При вычислении учитываем, что подкоренное выражение должно быть больше или равно нулю и при этом знаменатель не должен равняться нулю. Таким образом, получаем:

если cos(х)>0 то

иначе

«ФНО»

все_если

 

Блок2. Требуется вычислить функцию . Здесь никаких ограничений на вычисления нет. Таким образом, получаем:

печать у

Блок3. Требуется вычислить функцию . При вычислении учитываем, что подкоренное выражение должно быть больше или равно. Таким образом, получаем:

если 25-х >= 0 то

иначе

«ФНО»

все_если

В основной алгоритм вместо блоков 1,2,3 подставим алгоритмы вычисления соответствующих частей функции. В итоге получаем алгоритм решения исходной задачи.

Алгоритм

если х<5 то

если cos(х)>0 то

иначе

«ФНО»

все_если

иначе

если x<7 то

«ФНЗ»

иначе

если x<12 то

иначе

если х<=15 то

«ФНЗ»

иначе

если 25-х>=0 то

иначе

«ФНО»

все_если

все_если

все_если

все_если

все_если

Примечание. В качестве тестового примера можно ввести следующие значения: х=16 и х=30.

=ЕСЛИ(<условие>;<выр_ист_условия>;< выр_ложн_условия>)



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-12-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: