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

4.2. Условный оператор If…Then…Else

Используется для программирования полной формы ветвления. Если логическое выражение принимает значение True – Истина, выполняется один блок операторов, в противном случае (значение логического выражения False – Ложь) – второй. Можно использовать однострочный или блочный синтаксис.

Однострочный синтаксис:

If <условие> Then <оператор> Else <оператор>

Блочный синтаксис:

If <условие> Then

<Блок операторов>

Else

<Блок операторов>

End If

Запрограммируем следующие фрагменты графической схемы алгоритма:

If a > 5 Then b = b + a Else b = b – a

или

If a > 5 Then

b = b + a

Else

b = b - a

End If

Первый вариант предпочтительнее.

If x>0 Then

y=x+1

f=1

Else

f=2

End if

или If x>0 Then y=x+1: f=1 Else f=2

Первый вариант предпочтительнее.

4.3. Условный оператор If…Then…ElseIf

Условный оператор может содержать другие условные операторы. В этом случае имеет место так называемое вложенное ветвление. Для его программирования могут использоваться операторы If  Then и If  Then  Else. Если первый блок ветки Else является вложенным ветвлением, то рациональнее использовать разновидность условного оператора IfThenElseIf.

Синтаксис:

if <условие_1> Then

<Блок операторов_1>

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

<Блок операторов_2>

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

<Блок операторов_3>

[Else

<Блок операторов>]

End If

Например:

If g > 10 Then

z=5

ElseIf g<5 Then

z=1

End If

If x > 5 Then

y = x + 2

f =1

Else

If x < -10 Then

y = 2 * x

f=2

Else

y = x - 5

f=3

EndIf

End If

Следующий фрагмент блок-схемы может быть запрограммирован только с помощью оператора IfThenElse

4.4. Примеры использования оператора условного перехода If

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

y=

Результаты вычислений и номер формулы вывести в окне сообщений.

Таблица соответствия переменных

Обозначение

в задании

Имя

переменной

Тип

переменной

Комментарий

y

x

y

x

f

Вещественный

Вещественный

Целый

Значение функции

Исходное данное

Номер формулы

Анализ исходных данных:

Тесты:

теста

Значение

№ формулы

Комментарий

x

y

1.

2.

3.

1

10

15

0

9

31

2

2

1

x<10

x=10

x>10

Графическая схема алгоритма представлена на рис.4.1., результаты тестирования программы – на рис.4.2.

Sub Pr4_1()

Dim y As Single, x As Single

Dim f As Byte, s As String

'Ввод исходных данных

x= InputBox("Введи значение х")

'Выполнение расчетов и вывод результатов

If x > 10 Then

y = 2 * x + 1

f = 1

s = "При х=" & CStr(x) & Chr(13) & _

"Значение y =" & CStr(y) & Chr(13) & _

"Номер формулы вычисления - " & CStr(f), , "Пример"

Else

y = x – 1

f = 2

s = "При х=" & CStr(x) & Chr(13) & _

"Значение y =" & CStr(y) & Chr(13) & _

"Номер формулы вычисления - " & CStr(f), , "Пример"

EndIf

MsgBox s

EndSub

Пример 4.2. Проанализировать результаты сдачи учащимися экзаменов по физике, математике и русскому языку. Вывести сообщения:

если средний балл >4 – “отлично”

3<= ср. балл <=4 – “удовлетворительно”

средний балл <3 – “плохо”

Результат анализа вывести в окне сообщения.

Таблица соответствия переменных

Обозначение

в задании

Имя

переменной

Тип

переменной

Комментарий

Оценка по физике

Оценка по математике

Оценка по русскому языку

Средний балл

fiz

mat

rus

Sr

S

P

целый

целый

целый

вещественный

строковый

Integer

Int

Исходное данное

Исходное данное

Исходное данное

Промежуточное значение

Сообщение

Рабочая переменная для вывода информационного значкая в окне сообщения

Анализ исходных данных:

Имя

переменной

Недопустимые

значения

Ситуация, при которой переменная получает недопустимое значение

fiz, mat, rus

<1 или>5

ввод данных

Анализ значений переменнойSr:

теста

Значение

Комментарий

fiz

mat

rus

Sr

1.

2.

3.

4.

5.

6.

7.

8.

0

5

3

5

4

3

3

3

5

6

4

4

4

4

3

2

4

5

-1

5

4

4

3

3

4,7

4,0

3,7

3

2,7

Введено некорректное значение

Введено некорректное значение

Введено некорректное значение

Отлично

Удовлетворительно

Удовлетворительно

Удовлетворительно

Плохо

Графическая схема алгоритма представлена на рис.4.3., а результаты тестирования – на рис.4.4.

Sub Pr4_2()

Dim fiz As Byte, mat As Byte, rus As Byte

Dim Sr As Single, S As String, P As Integer

'Ввод и проверка исходных данных

fiz = InputBox("Введи оценку по физике")

mat = InputBox("Введи оценку по математике")

rus = InputBox("Введи оценку по русскому языку")

If (fiz < 1 Or fiz > 5) Or (mat < 1 Or mat > 5) Or (rus < 1 Or rus > 5) Then

MsgBox "Введено некорректное значение" & Chr(13) & _

"оценка по физике - " & CStr(fiz) & Chr(13) & _

"оценка по математике - " & CStr(mat) & Chr(13) & _

"оценка по русскому языку - " & CStr(rus)

Else

'Выполнение расчетов

Sr = (fiz + mat + rus) / 3

If Sr > 4 Then ' P – значение константы для вывода

S = "Отлично": P = vbExclamation ' информ. значка в окне

ElseIf Sr < 3 Then ' сообщения

S = "Плохо": P = vbCritical

Else

S = "Удовлетворительно": P = vbQuestion

End If

'Вывод результатов. Для вывода среднего значения используется формат

MsgBox S & Chr(10) & "Средний балл = " & CStr(Sr) & _

Chr(13) & "Оценка по физике - " & CStr(fiz) & _

Chr(13) & "Оценка по математике - " & CStr(mat) & _

Chr(13) & "Оценка по русскому языку - " & CStr(rus), P

End If

End Sub