Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект лекций по информ.doc
Скачиваний:
37
Добавлен:
18.11.2018
Размер:
2.29 Mб
Скачать

Глава 14. Организация разветвляющихся программ

14.1. Операторы управления goto, if

Алгоритмы, в которых может нарушаться естественный порядок выполнения операций и программы, составленные по ним, называются разветвляющимися. Для изменения естественного порядка выполнения операторов в программе используются операторы управления.

Оператор безусловной передачи управления GOTO

Синтаксис оператора: goto метка;

где метка - целое число либо имя переменной. Перед оператором, к которому передается управление, должна быть поставлена метка с двоеточием. Функционирование оператора: без всяких условий передать управление оператору с указанной справа после goto меткой.

Пример. goto 5;

------------

5: a:= 2*x ;

Условный оператор управления if

Оператор IF имеет две формы представления - однострочную и многострочную. Синтаксис однострочной формы IF:

If <условие> Then оператор 1 [ Else оператор 2] ;

где: <условие> - логическое выражение. В квадратных скобках указан необязательный параметр. Если он отсутствует, то такая форма представления IF называется неполной или сокращенной.

Функционирование оператора: если значение логического выражение "истина", то выполняется оператор 1, иначе выполняется оператор 2. Ниже приведено блок – схемное представление оператора.

Истина

Ложь

Логическое выражение

Оператор1

Оператор2

Пример 14.1. Применение данного оператора для решения следующей задачи:

Функционирование оператора

Ложь

Истина

If x<1 Then y= a*x Else y= b*x

Передача управления к следующему оператору

Эту же задачу можно решить двумя операторами, так называемой неполной или сокращенной формы if :

If x<1 Then y= a*x

If x=>1 Then y= b*x

Синтаксис многострочной формы if

Если оператор 1 или оператор 2 должен состоять из нескольких операторов, то удобно применять многострочный оператор if, синтаксис которого:

If <условие> Then

операторы

-------------

[Else

операторы

------------- ]

End If

Предыдущая задача решается таким образом:

If x<1 Then

y=a*x ' оператор 1

Else

z=b*x ' оператор 2

End If

Пример 14.2. Рассмотрим задачу, когда поставленных условий может быть больше двух:

Геометрическая интерпретация задачи. Расположим на оси Х числа.

-1 0 1 2 3 4 5 10 30

Алгоритм решения задачи

Для решения такой задачи можно использовать однострочный, вложенный IF или IF с добавочными условиями.

14.2. Однострочный вложенный If

Синтаксис оператора :

If <условие1> Then оператор 1 [ Else If <условие2> Then оператор 2 Else If ..]

Функционирование оператора: если <условие1> истинно, то выполняется оператор 1 и оператор If заканчивает работу. Если <условие1> ложно, то проверяется <условие2> и т.д.

Запишем этот оператор для решения поставленной задачи.

If x<-1 Then y=sin(x) Else If (2<x AND x<=3 ) Then y=Tan(x) Else If (5<x AND x<=10) Then y=Log(x) Else If x>30 Then y=x^2.5 Else y=0

Такой оператор трудно рассматривать в окне кода проекта, поєтому существует многострочный If с добавочными условиями. Синтаксис такого If :

If <условие1> Then

группа операторов 1

ElseIf <условие2> Then

группа операторов 2

ElseIf <условие n> Then

группа операторов n

[ else

группа операторов n]

End If

Для решения задачи примера 14.2 запишем многострочный If с добавочными условиями:

If x < -1 Then ' Начало оператора If

y = Sin(x)

ElseIf (2 < x) And (x <= 3) Then

y = Tan(x)

ElseIf (5 < x) And (x <= 10) Then

y = Log(x)

ElseIf x > 30 Then

y = x ^ 2.5

Else

y = 0

End If ' Конец оператора IF

Пример 14.3. Задача примера 5.2 может быть модифицирована следующим образом

Вычисление y=sin(x) выполняется при х=1 или х=3 или х=5 или х=6

Алгоритм решения задачи по структуре аналогичен алгоритму примера 14.2.