Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное-пособие2011.doc
Скачиваний:
15
Добавлен:
09.04.2015
Размер:
579.07 Кб
Скачать
  1. Разветвление.

Рис. 5

Применяется, когда в зависимости от условия выполняется одно или другое действие.

Причем действие 1 или действие 2 может содержать несколько этапов.

  1. Обход.

Частный случаи разветвления, когда одна ветвь не содержит вообще никаких действий.

Рис. 6

  1. Множественный выбор

А=1 А=2 А=3 ...А=N

Рис. 7

Обобщенный случай разветвления, когда, в зависимости от значений переменной А, выполняется одно из некоторых действий.

Пример 2.

Вычислить Y =

asin x, если х >2

в cos x если x  2

Пример программы:

inputa,b,x

if x2 then

y=a*sin(x)

else

y=b*cos(x)

end if

print y

end.

Рис. 8

Если при вводе переменной xбудет присвоено значение, большее двух, то будут выполнены блоки 1, 2, 4, 5. В противном случае выполнятся блоки 1, 2, 3, 5.

Пример 3.

Вычислить Y =

1, еслиx > 0

0, если x = 0

-1, если x < 0

В данном примере заданы три различных условия. Если будет введено значение х > 0 , выполнятся блоки 1, 2, 6, 7 /рис. 9/. В противном случае (при невыполнении условиях > 0) еще нельзя определить, какое значение будет присвоено Y, т.к. необходимо разделить случаи:х > 0 и х = 0. Это делается в блоке 3. Только после проверки условия блока 3 становится ясно, какое значение будет присвоено переменной Y. Еслих = 0 , выполняется блок 5, иначе выполняется блок 4. В данном варианте алгоритма проверку условияx < 0 производить не следует, т.к. после блока 3 линия “нет”определяет это условие.

x < 0

x 0

Рис.9

Пример программы:

input x

if x0 then

y=1

elseif x=0 then

y=0

else

y=-1

end if

print y

end.

Пример 4.

Определить, принадлежит ли точка М/х,y/ заштрихованной области Д.

Y

М/х,y/

x

Рис.10

Математическая постановка.

Радиус круга определяется из формулы . В соответствии с этим задача сводится к проверке условия

.

Точка М/х,y/ принадлежит обл.Д, если.

Точка М/х,y/не принадлежит обл.Дв противном случае.

Блок-схема алгоритма решения задачи представлена на рис. 11

Рис.11

Пример программы:

inputx,y

r=sqr(x2+y2)

if r and r then

print“т.М принадлежит облD”

else

print“т.М не принадлежит облD”

endif

end.

Примечание. Как отмечалось выше, алгоритм обычно ориентируют на определенный язык программирования. В данном алгоритме проверка условия проведена в двух блоках / 3 и 4 /, т.к. ориентация в данном случае идет на Бейсик стандартный, в котором не реализуется проверка двойного условия.

В языке QBasic, например, это возможно и тогда вместо блоков 3 и 4 можно было бы в алгоритме использовать один блок проверки условия (рис 12). Такое действие реализовано в приведённом алгоритме.

Рис.12

Пример 5.

Вычислить Y =

, если

0.7 – tg X, если

Не определены в противном случае

В данном примере “У” вычисляется в интервале значений х = [3, 9], при значениях х<3 и x>9 значение “У” не вычисляется. В этом случае в алгоритме должна быть предусмотрена печать сообщения об этом. Это может быть такой текст “при данном значении х значение у не вычисляется “, либо просто может быть выведено на печать значение “х, « по величине которого пользователь программы поймет, что вычисления не производились (рис. 13). Для удобства написания программы на языке стандартного Бейсика удобно так оформлять блок – схемы, чтобы вход очередного логического блока был соединен с линией “нет” предыдущего логического блока. Исходя из этого, начнем проверку с условия “х<3”.

Рис. 13

Пример программы, написанной на языке Q BASIC:

input x

if x=3 and x=7 then

y=2*(sin(x)2)

elseif x=7 and x then

y=0.7-tan(x)

else

print “y не определён при x=”;x

goto M

end if

print y,x

m: end.

В приведенной программе блоки 2,3 и блоки 3,4 объединены в условие x>=3 и x<=7 и условиеx>=7x<=9.

Программа может быть составлена и без оператора gotoM.

Пример 6.

Даны два числа А и В. Если АВ, вычислить их квадраты и записать новые значения на место прежних. Вывести на печать значения А и В.

да

В=В2

Рис. 14

Программа на Qbasic имеет вид:

input a,b

if ab then

a=a2; b=b2

end if

print a,b

end.

Блок-схема задачи приведена на рис. 14

В данном примере использована структура «обход». По линии «нет» никаких действий не производится.

Пример7.

Вычислить Y =

+ 1/(x – 1) , если 3Х5

6.5х + 9, если 5X7 или X<3

2 Sin х, если x>7

Рис.15

Пример программы:

inputx

ifx3then

y=6.5+9*x

elseif x5 then

y=sqr(x-1)+1/(x-1)

elseif x7 then

y=6.5+9*x

else

y=2*sin(x)

end if

printy

end

В данном примере в блоках 6 и 8 “Y” вычисляется по одной и той же формуле. С позиций структурного программирования такая структура более просто реализуется на алгоритмическом языке, чем структура, в которой используется один вычислительный блок при вычислении разных условий /x< 3 5 < x7 \. Такой стиль построения алгоритма сохраняет простоту структуры алгоритма, позволяет легко реализовать соответствующую программу, сделать программу легко читаемой.