8569
.pdfIf <условие1> Then
<выражение1>
Else If <условие2> Then
<выражение2>
. . .
Else
<выражение-n>
End If
Оператор If . . . Then . . . Else применяется, когда необходимо выполнить один или группу операторов в зависимости от некоторого условия. Конструкция этого оператора может создаваться в одной или нескольких строках программы. При этом если оператор записывается в одной строке, то оператор End If не использует.
«Условие» чаще всего является простым сравнением, но оно может быть любым логическим выражением с вычисляемым значением. Это значение интерпретируется как False (Ложь), если оно нулевое, а любое ненулевое рассматривается как True (Истина). Если условие истинно, то выполняются все выражения, стоящие после ключевого слова Then.
If <условие> Then <выражение>
If <условие> Then
<выражение>
End If
Пример: Вычислить функцию
x 1, x 1
y . 1 x 2 , 1 x 1
x 1, x 1
Sub Программа_1()
Dim x As Single
Dim z As Double
21
x = InputBox("Введите x", "Ввод данных", 0)
If x < -1 Then z = -x - 1
Else
If x > 1 Then z = x - 1
Else
z = Sqr(1 - x ^ 2)
End If
End If
MsgBox ("z=" & z)
End Sub
Пример
Sub Программа_2()
Dim x As Single
Dim z As Double
Worksheets("лист1").Cells(1, 3) = "x"
Worksheets("лист1").Cells(1, 4) = "z"
Let x = CSng(InputBox("Введите x", "Ввод данных", 0))
Worksheets("лист1").Cells(2, 3) = x
If x < -1 Then z = -x - 1
Else
If x > 1 Then z = x - 1
Else
z = Sqr(1 - x ^ 2)
End If
End If
22
MsgBox ("z=" & z)
Worksheets("лист1").Cells(2, 4) = z
End Sub
Оператор выбора Select Case используется в том случае, когда в зависимости от значения выражения, имеющего множество допустимых значений, необходимо выполнить то или иное действие.
Синтаксис оператора Select Case Select Case <Проверяемое выражение> Case <значения_1>
<операторы_1> Case <значения_2> <операторы_2>
………………….
Case <значения_N> <операторы_N> [Case Else <Иначе_операторы>] End Select
<Проверяемое выражение> может иметь любой тип, за исключение
вещественного.
<значения_N> ‒ это некоторое произвольное количество значений
(диапазонов), которые отделяются друг от друга запятыми.
При этом тип данных <значения_N> должен совпадать с типом
<Проверяемое выражение>.
Алгоритм работы этого оператора следующий: вычисляется
<Проверяемое выражение>. При совпадении его значения с одним из значений <значения_1>, управление передается оператору <операторы_1>
для выполнения, а затем будет выполняться оператору, стоящий после End Select. В случае не совпадения его значения ни с одним из значений
23
<значения_1>, будет выполняться операторы <Иначе_операторы>, а затем будет передано управление оператору, стоящему после End Select.
Пример:
Sub Пример ()
Dim a As Integer
a = InputBox("Введите номер месяца") Select Case a
Case 1
MsgBox ("Январь")
Case 2,3
MsgBox ("Февраль, Март")
Case 4 To 6
MsgBox ("Апрель, Май, Июнь, Июль")
Case ls >=7
MsgBox ("Август, Сентябрь, Октябрь, Ноябрь, Декабрь")
Case Else
MsgBox ("Число не входит в диапазон")
End Select
End Sub
Практические задания
Написать программу на языке VBA для вычисления системы уравнений. Ход решения задачи отразить в виде электронной таблицы с пооперационным отражением результатов.
Пример оформления результатов решения задачи в виде таблицы
(вычисление значения выражения у = (4х − 1)8х.
Х |
А=4х |
А=А-1 |
У=8х |
У=А*У |
|
|
|
|
|
1 |
4 |
3 |
8 |
24 |
|
|
|
|
|
24
Вариант |
Задание |
Вариант |
Задание |
|
|
|
|
1 |
|
2 |
|
|
|
|
|
3 |
|
4 |
|
|
|
|
|
5 |
|
6 |
|
|
|
|
|
7 |
|
8 |
|
|
|
|
|
9 |
|
10 |
|
|
|
|
|
11 |
|
12 |
|
|
|
|
|
13 |
|
14 |
|
|
|
|
|
25
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
26
Лабораторная работа 3. Циклические алгоритмы в VBA с
использованием цикла с параметром
Цель: отработка навыков использования циклических алгоритмов при создании программного кода на VBA с использованием цикла с параметром.
Теоретические сведения
Цикл с параметром
Данный тип цикла выполняется определенное количество раз в соответствии с параметром, т.е. заранее известно число повторений цикла.
Синтаксис оператора Цикл с параметром:
For «счетчик» = «начальное значение» То «конечное значение» [Step «шаг»] « блок оператор»
Next [«счетчик»]
Шаг может быть как положительным, так и отрицательным.
В цикле с параметром (For) задается переменная цикла. Переменная,
по которой организован цикл, является «счетчиком» для которого определяется «начальное значение» и «конечное значение». Оператор может содержать значение шага (по умолчанию шаг равен 1 и он не указывается явно), которое принимает как положительные, так и отрицательные значения. Перед выполнением цикла параметру присваивается начальное значение. Затем после выполнения операторов цикла параметр увеличивается (уменьшается) на величину шага и полученное значение сравнивается с конечным значением переменной цикла.
Если он принимает значение большее, чем «конечное значение», то управление передается оператору следующему за ключевым словом Next.
Пример
Создать программный код для вычисления суммы элементов ряда.
Sx /(1 i2 )
i 110
27
Результат выполнения программы занести в ячейки таблицы, где в ячейку А2 вводится значение аргумента х, а в ячейке В2 выводится результат.
Результат:
Блок-схема программы представлена на Рисунке 9.
Начало
S = 0
I = 1; 10
A = x / (1 + I * I)
S = S + a
S
Конец
Рисунок 9. Блок-схема программы вычисления суммы конечного числа элементов ряда
В табличном процессоре Excel результатом вычислений являются формулы. Рассмотрим возможность создания формул в ячейках электронной таблицы Excel с помощью VBA.
Пример
Sub Пример_2()
Dim P, I, N As Integer
28
N = 10
P = Worksheets("лист1").Cells(3, 1)
For I = 1 To N
P = P * I
Next
Worksheets("лист1").Cells(3, 2) = "P="
Worksheets("лист1").Cells(3, 3) = P
End Sub
Пример
Даны два столбца С и Е заполненные числами (столбец С от 1 до 20,
столбец Е от 20 до 1). Необходимо сложить числа в столбце С с числами столбца Е следующим образом: С2+Е21, С3+E20, …, C21+E2. Результат вывести в столбец D в виде формулы т.е. содержание ячейки результата должно быть «=С2+Е21».
Sub Цикл_For()
Const n = 21
For i = 2 To n
'создание строки формулы и сохранение ее в ячейку
Cells(I, 4) = “=C” & CStr(i) & “+E” & CStr((n – i) + 2)
Next i
End Sub
Рассмотрим возможность реализации вычислений с помощью циклов с параметром в VBA двумя способами: посредством процедур и функций.
Пример: Написать программу вычисления суммы конечного числа элементов ряда с помощью процедуры.
Sub sum()
Dim I As Integer, x As Double, A As Double, s As Double
s = 0
x = Worksheets("лист1").Cells(2, 1)
29
For I = 1 To 10
A = x / (1 + I * I)
S = S + A
Next
Worksheets("лист1").Cells(2, 2) = S
End Sub
Пример:
Написать программу вычисления суммы конечного числа элементов ряда с помощью функции. В ячейку А3 ввести значение аргумента,
выполнить вставку функции в ячейку B3 «Сумма ряда» из категории
«определенные пользователем».
Function сумма_ряда (X As Double) As Double
Dim I As Integer, S As Double
S = 0
For I = 1 To 10
S = S + X / (1 + I^2)
Next
Моя сумма = S
End Function
Практические задания
Написать программу вычисления суммы (произведения) конечного числа элементов ряда с использованием цикла с параметром. Вывод реализовать в ячейки текущего листа. Значения переменных вводятся с клавиатуры.
|
10 |
cosnx sin nx |
|
|
10 |
|
a n |
, |
||||||
1 |
Sn |
|
|
|
|
|
11 |
Pn |
|
|
|
|
|
|
|
n 1 |
|
cosa |
n |
n |
|||||||||
|
n 1 |
|
|
|
n 1 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|||||||
|
10 |
n sin( n 2) |
|
|
10 |
a sin an |
|
|||||||
2 |
Pn |
|
|
|
|
|
12 |
Sn |
|
|
|
|
|
|
n |
2 |
2 |
|
n a |
|
|
|
|||||||
|
n 1 |
|
|
|
n 1 |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30