Dim t As Single, w As Single

Dim p As Single, k As Integer

P=1

For k = 1 To 6

t = Val(InputBox(“t=”))

p=p*sin(t(k))

Next

w=2+p

MsgBox w

End Sub

Одномерные массивы. Вычисление экстремумов

Массивами называются совокупности данных одного типа, объединенные одним именем. Элементы массивов называются индексированными переменными.

Одномерные массивы имеют один индекс, например a(i), где a – имя массива, i – номер элемента массива.

Массивы, до их использования в программе, должны быть объявлены в операторе Dim, например:

Dim a(5) As Single

Здесь определено, что будет использоваться одномерный массив с 6-ю элементами вещественного типа одинарной точности. Число в скобках указывает номер последнего доступного для использования номера индекса. Нумерация индексов начинается с нуля.

После объявления элементы массива могут использоваться в выражениях подобно простым переменным, но с указанием индекса в круглых скобках. Например, после приведенного выше объявления массива а(i) в программном коде можно обращаться к следующим элементам массива: а(0), а(1), а(2), а(3), а(4), а(5)

Если необходимо использовать определенную нумерацию элементов массива, например с 5 до 10, то это указывается при объявлении массива следующим образом:

Dim a(5 to 10) As Single

После этого в программном коде будут доступны следующие элементы массива: а(5), а(6), а(7), а(8), а(9), а(10)

Пример 3. Программа определения максимального элемента массива d = {12; 0,4; 30; –2; 5; 9,3} и номера этого элемента.

Sub CommandButton2_Click()

Dim d(1 To 6) As Single, max As Single, n As Integer, i As Integer

For i = 1 To 6

d(i) = Val(InputBox(«Введите элемент массива d»))

Next

max = d(1) : n = 1

For i = 1 To 6

If d(i) > max Then max = d(i): n = i

Next

MsgBox (“Макс. Знач. =” & max & “ имеет элемент с номером ” & n)

End Sub

Пример 4. В таблице на рис.7.1 представлены значения температуры воздуха. Необходимо определить среднюю, минимальную и максимальную температуры, а также количество дней с положительной и отрицательной температурой.

Для решения этой задачи оформим лист Excel согласно образцу (рис. 7.1). Переменные можно объявить в разделе General (на листе программы в самом верху перед первым Sub) и тогда они могут быть использованы для расчета в разных процедурах рабочей книги:

Dim i As Integer, Ndata As Integer

Dim Nplus As Integer, Nminus As Integer

Dim sum As Single, mx As Single, disp As Single

Dim min As Single, max As Single, x As Single

Dim t As Single, w As Single - student2.ru

Рис. 7.1 − Образец оформления программы расчета температуры

Процедура для кнопки «Среднее значение» (расчет средней температуры):

Private Sub CommandButton1_Click()

i = 6

Do Until Worksheets("Лист1").Cells(i, 4) = ""

i = i + 1

Loop

Ndata = i – 1 ‘количество расчетных дней

‘Вычисление суммарной температуры

sum = 0 ‘ ячейка с именем Sum обнуляется

‘ цикл для просмотра всех строк таблицы

For i = 7 To Ndata

x = Worksheets("Лист1").Cells(i, 4)‘ ввод значения температуры из i-той строки 4-го столбца

sum = sum + x‘суммирование значений температуры

Next i

mx = sum / (Ndata - 6)‘определение среднего значения

Worksheets("Лист1").Cells(Ndata + 2, 4)="Средняя температура"

Worksheets("Лист1").Cells(Ndata + 2, 7) = mx

End Sub

Для кнопки «min» (расчет минимальной температуры) процедура имеет вид:

Private Sub CommandButton2_Click()

Dim l as Integer

min = Worksheets("Лист1").Cells(Ndata - 6, 4)

l=7 ‘номер строки, с которой начинается таблица

For i = 7 To Ndata

x = Worksheets("Лист1").Cells(i, 4)

If x < min Then

min = x

l=i ‘запоминание номера строки с минимальной температурой

End If

Next i

Worksheets("Лист1").Cells(Ndata+3,4)="Минимальная температура"

Worksheets("Лист1").Cells(Ndata + 3, 7) = min

Worksheets("Лист1").Cells(Ndata + 3, 9) = "Была "

Worksheets("Лист1").Cells(Ndata + 3, 10) = Cells(l, 3)

End Sub

В данной процедуре переменной min присваивается значение температуры из первой строки таблицы. Затем каждое очередное значение сравнивается со значением min. Если очередное значение температуры оказывается меньше min, то это число посылается в min.

Процедура для кнопки «max» (расчет максимальной температуры):

Private Sub CommandButton3_Click()

min = Worksheets(" Лист1 ").Cells(Ndata - 6, 4)

For i = 7 To Ndata

x = Worksheets(" Лист1 ").Cells(i, 4)

If x > max Then max = x

Next i

Worksheets(" Лист1 ").Cells(Ndata + 4, 4) = «Максимальная температура "

Worksheets(" Лист1 ").Cells(Ndata + 4, 7) = min

End Sub

Для кнопки «>0 и <0» (расчет количества дней с положительной и отрицательной температурой):

Наши рекомендации