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. Программу предыдущего примера можно записать с использованием одномерных массивов следующим образом: