Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

16.3. Алгоритмы разветвляющей структуры

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

Алгоритм такого вычислительного процесса называется алгорит­мом разветвляющей структуры.

Пример. Вычислить значение функции, где.

Вычислительный процесс имеет две ветви. В одной ветви при необходимо вычислить и отпечатать значение переменной y, в другой ‑ вывести на печать информацию:. Такой вычислительный процесс можно описать следующей условной формулой:

z =

Блок‑схема алгоритма решения представлена на рис. 16.3.1, где после условного блока 4 располагаются блоки сначала одной ветви (блоки 5, 6), а затем второй (блок 7). Так как после выполнения действий, указанных в блоках первой ветви, нет необходимости выполнять дей­ст­вия, указанные во второй ветви, сразу осуществляется переход к концу алгоритма (к блоку 8). В алгоритме дважды нарушается естествен­ный порядок выполнения блоков:

1) при проверке условия у = 0 (условный переход);

2) после выполнения действий, указанных в блоках первой ветви (безусловный переход).

Текст программы

Private Sub Command1_Click() ‘процедура решения примера

Dim x As Single,n As Single,y As Single,z As Single 'объявления переменных

x=Text1.Text:n=Text2.Text‘формирование значенийX,N

y=Sin(n*x) + 0.5 ‘вычисление значения переменнойY

Ify= 0Then‘проверка значения переменной У на ноль

dubug.Print“y=0“ ‘вывод в окно отладки текста “Y=0’

Else‘вариант y<>0

z=x^ 3 /y‘вычисление значения переменнойZ

Debug.Printz‘вывод в окно значения переменнойZ

EndIf‘конец оператораIf

E

1

Начало

nd
Sub ‘конец процедуры

x, n

y = sin(n* x) + 0,5

ДА

НЕТ

y = 0?

z = x3/y

Z

y = 0

Рис. 16.3.1. Блок‑схема алгоритма

Задачи для программирования

  1. Вычислить:

  1. Найти квадрат наибольшего из двух чисел a и b и отпечатать

N = 1, если наибольшим является а, и признак N = 2 ‑ в противном случае.

  1. Определить, попадает ли точка с координатами х, у в круг радиуса r (уравнение окружности). Вывести признак N = 1, если точка находится внутри круга, и признак N = 0, если точка находиться вне круга.

  2. Составить программу, выполняющую упорядочение трех чисел A,B,C, таким образом, чтобы при выполнении ее в ячейке с симво­лическим адресомAнаходилось наименьшее число, в ячейкеB‑ сред­нее, в ячейкеC‑ наибольшее.

  3. Записать указанное действие в виде одного условного оператора:

а) у =

б) переменной х присвоить корень уравнения .

в) перераспределить значение переменных х и у так, чтобы в х оказалось большее из этих значений, а в у ‑ меньшее;

г) d = max (a, b, c);

д) z=

е) переменной k присвоить номер четверти плоскости, в которой находится точка с координатами х и у (ху0);

  1. Записать программу для решения задачи:

а) по номеру у (у > 0) некоторого года определить с ‑ номер его столетия (учесть, что, к примеру, началом XX столетия был 1901);

б) ;

в) если уравнение ax2+ bx +c = 0 (a0) имеет вещественные корни, то логической переменной t присвоить значение True, а переменным xl и х2 ‑ сами корни, иначе переменной t присвоить False, а значение пере­мен­­ных xl и х2 не менять;

г) считая, что стандартные функции sin и cos применимы только к аргументам из отрезка [0, ], вычислить у = sin х для произвольного числа х;

д) значения переменных а, b и c поменять местами так, чтобы оказалось аbc.