Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_ зао4.doc
Скачиваний:
14
Добавлен:
26.03.2015
Размер:
2.73 Mб
Скачать

7.1 Примеры вычисления сумм и произведений

Пример 1. Программа вычисления суммы элементов

= {5, 2; 4,5; 1; 2,9; 3}.

Sub CommandButton1_Click()

Dim b As Single, s As Single, i As Integer

s = 0

For i = 1 To 5

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

s = s + b

Next

MsgBox (“Сумма элементов массива равна= ” & s)

End Sub

Здесь элементы b вводятся с клавиатуры по одному числу, сумма чисел вычисляется в переменной s.

Пример 2. Программа вычисления произведения элементов

t = {0,4; -1,5; 2,8; 3; 0,9; 7,3} и значения w в соответствии с формулой:

Sub CommandButton2_Click()

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

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

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

Одномерные массивы имеют один индекс, например 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

Рис. 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» (расчет количества дней с положительной и отрицательной температурой):

Dim k1 As Integer, k2 As Integer

k1 = 0: k2 = 0

For i = 7 To Ndata

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

‘расчет количества дней с положительной температурой k1 и отрицательной температурой k2

If x > 0 Then k1 = k1 + 1 Else k2 = k2 + 1

Next

Worksheets(" Лист1 ").Cells(Ndata + 5, 4) = _ «Кол.дней с плюсовой темп."

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

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

" Кол.дней с минусовой темп."

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

End Sub