8494
.pdfx = 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
21
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. В случае не совпадения его значения ни с одним из значений
22
<значения_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 |
|
|
|
|
|
|
23
Вариант |
Задание |
Вариант |
Задание |
|
|
|
|
1 |
|
2 |
|
|
|
|
|
3 |
|
4 |
|
|
|
|
|
5 |
|
6 |
|
|
|
|
|
7 |
|
8 |
|
|
|
|
|
9 |
|
10 |
|
|
|
|
|
11 |
|
12 |
|
|
|
|
|
13 |
|
14 |
|
|
|
|
|
24
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
25
Лабораторная работа 3. Циклические алгоритмы в VBA с
использованием цикла с параметром
Цель: отработка навыков использования циклических алгоритмов при создании программного кода на VBA с использованием цикла с параметром.
Теоретические сведения
Цикл с параметром
Данный тип цикла выполняется определенное количество раз в соответствии с параметром, т.е. заранее известно число повторений цикла.
Синтаксис оператора Цикл с параметром:
For «счетчик» = «начальное значение» То «конечное значение» [Step «шаг»] « блок оператор»
Next [«счетчик»]
Шаг может быть как положительным, так и отрицательным.
В цикле с параметром (For) задается переменная цикла. Переменная,
по которой организован цикл, является «счетчиком» для которого определяется «начальное значение» и «конечное значение». Оператор может содержать значение шага (по умолчанию шаг равен 1 и он не указывается явно), которое принимает как положительные, так и отрицательные значения. Перед выполнением цикла параметру присваивается начальное значение. Затем после выполнения операторов цикла параметр увеличивается (уменьшается) на величину шага и полученное значение сравнивается с конечным значением переменной цикла.
Если он принимает значение большее, чем «конечное значение», то управление передается оператору следующему за ключевым словом Next.
Пример
Создать программный код для вычисления суммы элементов ряда.
Sx /(1 i2 )
i 110
26
Результат выполнения программы занести в ячейки таблицы, где в ячейку А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
27
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)
28
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 |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29
|
|
|
|
10 |
n3 5n2 |
7n 14 2cos n |
|
|
|
|
|
10 |
|
|
|
|
|
|
n x |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
3 |
Sn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
Pn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
n |
5 |
2n |
3 |
4n 11 |
n |
x 1 |
5n |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
10 n4 10n3 8n2 15n 2n 7 |
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
Pn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nsin n |
|
|
|
|
||||||||||||
4 |
|
|
|
|
|
|
|
3n |
5 |
|
|
2n |
3 |
n 17 |
|
14 |
Sn |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
nsin n 5n 4 |
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n 1 |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
sin nx cosnx |
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
cos |
|
n |
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
||||||||||||||||||||||||||||||
5 |
Sn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
Pn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
n |
3 |
4n 5 |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
n n2 |
|
||||||||||||||||||||||||||||||||
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
n 1 |
|
cos |
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
10 |
2n (x 3)n |
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|||||||||||||||
6 |
Sn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
Sn ln 1 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
2n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
sin x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
2n 1 |
|
|
|
|
|
|
|
|||||||||||||
7 |
Sn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
Sn |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
(n 1) 2 |
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 2 |
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n 1 |
n (n 1) |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
10 |
|
n(x 1)2n |
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
1 |
|
|
|
|
|
1 |
|
|
|
|
|
|
||||||||||||||
8 |
Sn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
Sn ( |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
) |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
2 |
|
(n 1) |
2 |
|
||||||||||||||||||||||||||
9n |
|
|
n5 3 |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
10 |
|
|
|
|
|
x |
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
9 |
Sn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
(2n 3) |
7 |
|
|
|
|
|
|
||||||||||||||||||||||
3 |
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
10 |
|
2n2 1 |
n |
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
2n 3 |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
10 |
S |
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
S |
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2n 1 |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
n 1 |
3n |
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n 1 |
|
|
|
|
|
|
|
|
|
|
|
30