Sub CommandButton2_Click()
Dim x As Single, n As Single, y As Single
'Ввод исходных данных
x = Val(InputBox("Введите x"))
n = Val(InputBox("Введите n"))
'Проверка условий и расчет значений
If x >= 0 And n >= 0 Then y = Sqr(x)
If x < 0 And n < 0 Then y = n * x + 2
MsgBox (y) 'Вывод результата
End Sub
Пример 6.3. Вычислить значение yдля вводимого с клавиатуры некоторого значения x:
В программе использован вложенный оператор If:
Sub CommandButton3_Click()
Dim x As Single, y As Single
'Ввод исходных данных
x = Val(InputBox("Введите x"))
'Проверка условия и расчет значений
If x < 0 Then y = x + 2 Else If x <= 5 Then y = Sqr(5 * x) Else y = x ^ 2
MsgBox (y) 'Вывод результата
End Sub
Пример 6.4. С использованием блочного оператора If написать программу вычисления значений y и wдля следующего условия: если х< 5, то y= sin2x,w=ctgx; если х ³ 5, то y = 1 – sinx, w = arctgx.
Исходные данные х = {9; 0.1; -4; 5; 12} записаны на рабочем листе в первом столбце. Результаты надо поместить во второй и третий столбцы:
Private Sub CommandButton4_Click()
Dim x As Single, y As Single, z As Single
Dim w As Single, I As Integer
For i = 1 to 5
x = Cells(I, 1)
If x > 5 Then
y = Sin(x) ^ 2
w = cos(x) / sin(x)
Else
y = 1 - Sin(x)
w = Atn(x)
End If
Cells(i, 2) = y
Cells(i, 3) = w
Next
End Sub
Поскольку кнопка находится на том же рабочем листе, что и данные, то можно в программе не указывать название рабочего листа (Worksheets(имя)).
Вычисление сумм, произведений, экстремумов
Рассмотрим примеры, демонстрирующие возможности использования в программах операторов цикла и условных операторов.
Пример 6.5. Написать программу вычисления суммы элементов массива b = {5.2; 4.5; 1; 2.9; 3}. Иначе это условие можно записать:
Пусть значения b записаны в первом столбце на рабочем листе. Результат надо поместить в ячейку B1:
Sub CommandButton5_Click()
Dim b As Single, s As Single, i As Integer
s = 0
For i = 1 To 5
b = Cells(i,1)
s = s + b
Next
Range(“B1”) = s
End Sub
Пример 6.6. Написать программу вычисления произведения элементов массива t = {0.4; –1.5; 2.8; 3; 0.9; 7.3} и значения s в соответствии с формулой
.
Исходные данные записаны в третьем столбце на рабочем листе. Результат надо поместить в ячейку D1:
Sub CommandButton6_Click()
Dim t As Single, s As Single
Dim p As Single, k As Integer
p = 1
For k = 1 To 6
t = Cells(k, 3)
p=p * sin(t)
Next
s = 2.4 + p
Range(“D1”) = s
End Sub
Пример 6.7. Определить максимальный элемент массива d = {12; 0.4; 30; –2; 5; 9.3} и номер этого элемента. Исходные данные записаны в пятом столбце на рабочем листе. Результат надо поместить в ячейки F1и F2:
Sub CommandButton7_Click()
Dim d As Single, max As Single, n As Integer, i As Integer
max = Cells(1, 5) : n = 1
For i = 2 To 6
d = Cells(i, 5)
If d > max Then max = d: n = i
Next
Range(“F1”) = max
Range(“F2”) = n
End Sub
Одномерные массивы
Массивами называются совокупности данных одного типа, объединенных одним именем. Элементы массивов называются индексированными переменными.
Одномерные массивы имеют один индекс, например a(i), где a – имя массива; i – номер элемента массива.
Массивы до их использования в программе должны быть объявлены в операторе Dim, например:
Dim a(5) As Single
Здесь определено, что будет использоваться одномерный массив с шестью элементами вещественного типа одинарной точности. Число в скобках указывает номер последнего доступного для использования номера индекса. Нумерация индексов начинается с нуля.
После объявления элементы массива могут использоваться в выражениях подобно простым переменным, но с указанием индекса в круглых скобках. Например, после приведенного выше объявления массива а(i) в программном коде можно обращаться к следующим элементам массива: а(0),а(1),а(2),а(3),а(4),а(5).
Если необходимо использовать определенную нумерацию элементов массива, например с 5 до 10, то это указывается при объявлении массива следующим образом:
Dim a(5 to 10) As Single
После этого в программном коде будут доступны следующие элементы массива: а(5),а(6),а(7),а(8),а(9),а(10).
Ввод элементов массива может производиться с помощью оператора присваивания или в режиме диалога.
Пример 6.8. Программу предыдущего примера можно записать с использованием одномерных массивов следующим образом: