Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методика по Информатике / VBA / Усольцева Л.А.- Программир.на VBA.doc
Скачиваний:
110
Добавлен:
10.04.2015
Размер:
1.71 Mб
Скачать

2.4.2. Оператор выбора Select Case

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

Оператор выбора имеет вид:

Select Case Тестируемое выражение

Case Условие выбора 1

Блок операторов 1

……………

Case Условие выбора n

Блок операторов n

Case Else

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

End Select

Тестируемое выражение – это любое численное или строковое выражение, часто это просто имя одной переменной, математическое или численное выражение, но не логическое. Условие выбора – это список логических выражений, отделяемых запятыми. Условие выбора может также определять диапазон значений при использовании оператора To. Ветвь Case может содержать один, несколько или ни одного оператора, и все они будут выполняться, если условие оператора Case истинно.

Пример 7.

Наблюдения за 20 машинами показали, что до первого отказа одного из элементов наработка машин представляется следующими исходными данными, приведенными в табл. 5. Определить частость по интервалам пробега.

Таблица 5. Статистический ряд.

Интервал пробега, км

Частота

От 1001 до 2000

3

От 2001 до 3000

7

4001 и более

10

Программный код

Option Explicit

Sub PR7 ()

Dim km As Double

Dim P As Double

km = Val(InputBox("Введите интервал пробега"))

Select Case km

Case 1001 To 2000

P = 3/20

Case 2001 To 3000

P = 7/20

Case Is >= 4001

P = 10/20

End Select

MsgBox ("Частость по интервалу пробега равна" & P)

End Sub

Слово Is, используемое в программе, является ключевым словом VBA, обозначающим тестируемое выражение в операторе Case.

В операторе Case допустимо использовать составные условия, подобно тому, как это делается в условном операторе.

Пример:

Case 5, 6, 9 to 10, 13, 14, Is >=16

В этом операторе проверяется, принадлежит ли тестируемое выражение отрезку от 9 до 10 или равняется одному из значений: 5, 6, 13, 14, или оно не меньше 16.

2.5. Циклические процессы

Циклический процесс – это процесс, в котором один оператор или группа операторов выполняются многократно при различных значениях аргумента.

Программы, содержащие неоднократно выполняемые участки, называются циклическими, а сами участки называются циклами.

Процесс выполнения всех операторов, заключенных в структуру цикла, один раз называется итерацией цикла.

2.5.1. Оператор цикла с параметром For – Next

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

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

For счетчик = начальное значение To конечное значение Step шаг

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

Next счетчик

Здесь: счетчик – любая численная переменная (обычно – переменная типа Integer или Long), которая изменяется в пределах начального и конечного значений; шаг – любое численное выражение, определяющее значение для изменения счетчика; блок операторов – один, несколько или ни одного оператора VBA, составляющий тело цикла.

Цикл ForNext обеспечивает выполнение блока операторов (тела цикла) n раз при последовательном изменении счетчика от начального до конечного значения с указанным шагом изменения. Это вычисляется следующим образом:

.

Если Step Шаг в конструкции отсутствует, то по умолчанию считается, что шаг равен 1.

Пример 8.

Задано натуральное число n. Вычислить n! (факториал n). Напомним, что n! = 1234…n.

Программный код

Option Explicit

Sub PR8 ( )

Dim n, i As Integer

Dim F As Double

n = Val(InputBox("Введите n"))

F = 1

For i = 1 To n

F = F * i

Next i

MsgBox ("Факториал числа " & n & "=" & F)

End Sub

Пример 9.

Вычислить y = sin х, если 0 ≤ х ≤ 2π, Δх = π/8.

Программный код

Option Explicit

Sub PR9 ( )

Dim x, y As Double, PI As Single

PI = 3.14

For x = 0 To 2*PI Step PI/8

y = Sin(x): MsgBox ("y = " & y & "при х = " & х )

Next x

End Sub

«Пример 9» является примером программы табулирования функции.

Табулирование функции – это вычисление множества значений функции при различных значениях входящих в неё аргументов.

Если в функции несколько переменных и каждая из них изменяется, то необходимо использовать «цикл в цикле». Помещение одной структуры цикла в другую называют вложением циклов.

Пример 10.

Вычислить y = cos3 x + 4z, если 0 ≤ х ≤ 4, Δх = 0,3,

-2 ≤ z ≤ 4, Δz = 0,5.

Программный код

Option Explicit

Sub PR10 ( )

Dim x, y, z As Single

For x = 0 To 4 Step 0.3

For z = -2 To 4 Step 0.5

y = соs(x)^3 + 4*z

MsgBox ("y = " & y & "при х = " & х & "при z = " & z)

Next z

Next x

End Sub

Выделенный цикл по переменной z является вложенным.