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

3.5 Программирование алгоритмов разветвляющейся структуры

Порядок выполнения инструкций в разветвляющихся вычислительных процессах зависит от условий, которые проверяются по ходу вычислений, и реализуется вследствие этого по одному из нескольких заранее предусмотренных (возможных) направлений. Каждое отдельное направление называется ветвью вычислений. Разветвляющийся вычислительный процесс схематически представлен различными структурами, рис.8.2.а).- рис. 8.2.б). Такие структуры можно реализовать в программах с помощью инструкций условного перехода (If ...Then ... Else) и выбора по значению(Select Case ... EndSelect). Изменить порядок выполнения программы можно также с помощью инструкции GOTO < метка>, называемой безусловным переходом . Инструкция безусловного перехода используется в тех случаях, когда необходимо выполнить не следующую по порядку инструкцию в программе, а, инструкцию помеченную меткой. Формат записи безусловного перехода:

Goto < метка>

Примечание. Во избежание зацикливания оператор Goto <метка > целесообразнее использовать в операторе If, если необходим безусловный переход к помеченному оператору.

Условный оператор If

В VBA имеются две формы записи условного оператора: полная и сокращенная. Формат записи оператора условного перехода:

If <условие > Then < инструкция _1 > [Else < инструкция р 2 >]

If( если ), Then(то), Else(иначе)- ключевые(служебные) слова.

Условие представляет собой выражение логического типа. Оператор If работает следующим образом: если условие истинно (имеет значение True), то выполняется инструкция _1(первая ветвь), в противном случае выполняется инструкция _2(вторая ветвь). Обе ветви могут содержать несколько , инструкций, разделенных двоеточием.

Примеры записи инструкции If.

If x>0 Then x=x+1 Else x=0

If x>0 Then x=x+1: MsgBox x Else x=0

If y>0 Then y=sqr(y)

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

Формат конструкции :

If < условие> Then

< инструкции>

ElseIf < условие> Then

< инструкции>

ElseIf < условие > Then

…..

…..

Else

< инструкции >

End If

Примечание. Из-за возможных ошибок следует избегать большой вложенности условных конструкций.

Примеры алгоритмов разветвляющейся структуры и соответствующих им программ с использованием If.

Пример 1.

Sub условие()

Dim a, b, c

‘ Даны три числа: a, b, c. Определить, можно ли

‘ построить треугольник, если интерпретировать a, b, c

‘ как длины сторон треугольника.

a=Val( InputBox(“Введите 1 число ”))

b= Val( InputBox(“Введите 2 число ”))

c= Val( InputBox(“Введите 3 число ”))

If (a+b)>c And (a+c)>b And (b+c)>a Then

MsgBox “ треугольник построить можно”

Else

MsgBox “ треугольник построить нельзя”

End If

End Sub

При: а=8, в=5, с=4 а=10, в=5, с=4

Пример 2. Вычисление остатка

Используя функцию IsNumeric - проверки значений переменных A и B, вычислить и напечатать остаток C= A MOD B, если значение проверки условия True, иначе напечатать “Переменная не является числом”.

Sub Ostatok()

Dim A,B,C As Integer

A= Val(InputBox(“Вычисление остатка”, “Bвод A”))

B= Val(InputBox (“Вычисление остатка ”,” Bвод B”))

If IsNumeric (A) And IsNumeric (B) THEN

C=A MOD B

MsgBox ”C=A MOD B” & (Chr(13)) & (C(10)) & _

“При:” & ” A= ” & A &” B= ” & B & (Chr(13) & Chr(10)) & “Остаток:” & “ C= ” & C, _

Vbinformation,”Сегодня: ” & Date & “ Выполнила Ким.”

Else

MsgBox “Переменная не является числом”

End Sub

Инструкция выбора Select Case

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

Формат записи Select Case:

Select Case < выражение - селектор>

Case <список _выражений _1> ‘ вариант 1

< инструкция(и)_1 >

……………….

Case <список _выражений _n > ‘ вариант n

< инструкция(и)_n >

[Case Else

[<инструкция(и)_Else >]]

End Select

Инструкция выбора состоит из выражения, называемого селектором, списка выражений вариантов, начинающихся словом Case, и необязательной ветви Else, имеющей то же значение, что и в условном операторе. Каждый вариант представляет список выражений и оператор или группу операторов, следующих за списком. Список выражений может включать:

  • Константы;

  • Интервал значений;

  • Функцию Is.

Инструкции Else (необязательная часть) выполняются в том случае , если выражение - селектор не совпадает ни с одним из предложений Case.

Оператор выполняется следующим образом:

  • Вычисляется значение выражения - селектора;

  • Просматриваются последовательно варианты на предмет совпадения выражения - селектора с константами и значениями из диапазонов соответствующего списка;

  • Если для очередного варианта получено совпадение, то выполняется оператор данного варианта. После этого выполнение оператора выбора заканчивается и осуществляется переход к и, следующей за End Select.

  • Если все проверки оказались безуспешными, то выполняется инструкция после слова Else (при его наличии), иначе осуществляется переход к инструкции, следующей за End Select.

Пример1. Определить пригодность спортсмена к некоторому виду спорта.

Sub Sport_Пригодность()

Dim X, Y, Z As Single

X=InputBox(“Ввести кол - во ударов сердца /мин после нагрузки”)

Y= InputBox (“Ввести кол - во ударов сердца /мин через 10 мин после отдыха”)

Z=Y/X

Select Case Z

Case Is < 0.5

MsgBox “Перспективный спортсмен ”,VbInformation, _

“Тест - Пригодность” ’строка продолжена

Case 0.5 To 0.7

MsgBox “Пригоден, но потенциал средний ”, VbInformation, _

“Тест - Пригодность” ’строка продолжена

Case Is > 0.7

MsgBox “Заниматься этим видом спорта не рекомендуется ”, VbInformation , _

“Тест - Пригодность” ’строка продолжена

End Select

End Sub

Тест: при х=90, у = 80, z= 0.89; x=90, y=60 , z=0.66

x=100 y=49 z=0.49

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]