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

 

Изменить последовательность выполнения операторов можно с помощью операторов ветвления.

Одним из них является условный оператор IfThen. Он имеет два форматов записи.

1. Однострочный формат

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

(в квадратные скобки взята необязательная часть). Если условие истинно, Оператор1 выполняется, в противном случае он пропускается и выполняется Оператор2, если он указан.

2. Блочный формат.

 

Ifусловие Then

Операторы1

[ Else

Операторы2]

End If

 

Эта форма применяется, когда нужно при выполнении или не выполнении заданного условия выполнить не один, а несколько операторов.

В качестве примера рассмотрим задачу вычисления корней квадратного трехчлена с коэффициентами A, B, C. Как известно, вещественные корни существуют при условии, что дискриминант больше либо равен нулю: D = B2 – 4AC ³ 0. Ниже приведен фрагмент программы, в котором дискриминант сравнивается с нулем и если он оказывается меньше нуля, выводится сообщение «Вещественных корней нет», противном случае подсчитываются значения корней.

 
 

 


D = B^2 – 4*A*C If D < 0 Then Print “ Вещественных корней нет ” Else X1 = (–B + sqr (D)) / (2*A) X2 = (–B – sqr (D)) / (2*A) Print “ Вещественных корней нет ” End If  
D := B2 – 4AC

 
 

 


да нет

D < 0

 

 
 


“Решений Вычисление

нет” корней X1, X2

       
 
   
 


Вывод X1, X2

 

 
 

 


Конец

 

Рис. 10. Фрагмент программы вычисления корней квадратного уравнения и его блок-схема

Еще одним оператором ветвления является Select Case.

Select CaseВыражение

CaseСписок_значений1

Операторы1

CaseСписок_значений2

Операторы2

……….

[Case ElseСписок_значений3

Операторы3 ]

End Select

 

Здесь в качестве параметра Выражение может быть как имя переменной, так и арифметическое выражение, а параметры Список_значений1, Список_значений2 и т.д. могут быть как одиночными числовыми значениями, так и списками – несколькими числами, разделенными запятыми.

Если значение выражения не совпадет ни с одним из значений, указанных в списках, будет выполнены операторы, указанные в разделе Case Else (если таковой присутствует, если же его нет, то следующим будет выполнен оператор, следующий за оператором Select.

В качестве списка значений можно указывать не только одно из возможных значений, но и несколько значений, разделенных запятыми. Можно также указать интервал значений (например, 4 To 6), или задать его с помощью ключевого слова IS и одного из знаков отношения < , <=, >, >=, < >, = (например, IS >= 10).

В качестве примера рассмотрим следующую задачу. Пусть задана кусочно-непрерывная функция f (x) следующим образом:

y

       
 
   
 


–1 для x < –1, 1

f (x) = 0 для –1 £ x < 1,

2 для x ³ 1. –2 –1 0 1 2 x

 

–1

 

 

Требуется написать программу, вычисляющую значение этой функции для любого заданного значения x. Воспользуемся для этой цели оператором ветвления Select Case:

 

Select CaseX

Case IS < –1

Y = –1

Case IS < 1

Y = 2

Case IS >= 1

Y = 1

End Select

 

Предположим, что X = –2. Тогда истинными являются условия IS <= –1 иIS < 1. Однако проверка условия IS < –1 идет первой и Y получит значение –1. Хотя второе условие также истинно для текущего значения X, оператор Y = 0 выполняться не будет, поскольку выбор уже будет сделан.








Дата добавления: 2016-02-11; просмотров: 718;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.015 сек.