Инф VBA
.pdf100
Cells(i, 2).Value = y
i = i + 1
Next x
10.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
11.При необходимости устраните ошибки.
12.Установите на рабочий лист кнопку, так как это делалось в Лабораторной работе 2. Привяжите к кнопке процедуру Табулирование1. Переименуйте кнопку: ”Цикл с параметром”
13.Создайте еще основную процедуру, (в тот же модуль вставить ещё одну процедуру с именем Табулирование2):
Public Sub Табулирование2 ()
End Sub
14. Под заголовком поместите код подпрограммы.
Const a = -1, b = 5, m = 20
Dim i As Integer
Dim x, y, h As Single Range("D1").Value = "x" Range("E1").Value = "y" h = (b - a) / m
i = 3
Do While x <b + h / 2 y=ФункY(x)
Cells(i, 4).Value = x
Cells(i, 5).Value = y i = i + 1
x=x+h Loop
101
15.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
16.При необходимости устраните ошибки.
17.Установите на рабочий лист кнопку, так как это делалось в Лабораторной работе 2. Привяжите к кнопке процедуру Табулирование2. Переименуйте кнопку: ”Цикл с предуславием Do While Loop”
18.Создайте еще основную процедуру, (в тот же модуль вставить ещё одну процедуру с именем Табулирование3):
Public Sub Табулирование3()
End Sub
19.Под заголовком поместите код подпрограммы. Const a = -1, b = 5, m = 20
Dim i As Integer Dim x, y, h As Single
Range("G1").Value = "x" Range("H1").Value = "y" h = (b - a) / m
i = 3 Do
y=ФункY(x) Cells(i, 7).Value = x Cells(i, 8).Value = y i = i + 1
x=x+h
Loop While x <b + h / 2
20.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
21.При необходимости устраните ошибки.
102
22.Установите на рабочий лист кнопку, так как это делалось в Лабораторной работе 2. Привяжите к кнопке процедуру Табулирование3. Переименуйте кнопку: ”Цикл с постуславием Do Loop While ”.
23.Аналогично напишите процедуры для циклов Do Until - Loop и Do - Loop
Until.
Результаты будут представлены в следующем виде:
Рис.14
103
Лабораторная работа № 5 на тему: «Работа с одномерными массивами»
Постановка задачи.
Дан вектор a R8 Найти среднее арифметическое отрицательных
элементов вектора.
Выполнение.
Для реализации данной задачи понадобится оператор цикла с параметром
и неполный оператор ветвления.
Ввод и вывод данных. Пусть вектор a R8 введен в первую строку
таблицы Excel. Результа вычислений – среднее арифметическое отрицательных
элементов поместим в Ячейку А3. |
|
|||||
|
|
Идентификаторы и типы исходных данных |
Табл.14 |
|||
|
|
|
|
|
|
|
|
|
Описание переменной |
Идентификатор |
|
Тип |
|
|
|
|
|
|
|
|
|
|
Массив |
A(8) |
|
Single |
|
|
|
|
|
|
|
|
|
|
Сумма |
отрицательных |
s |
|
Single |
|
|
элементов |
|
|
|
|
|
|
|
|
|
|
|
|
|
Число |
отрицательных |
m |
|
Integer |
|
|
элементов |
|
|
|
|
|
|
|
|
|
|
|
|
|
Среднее арифметическое |
SrA |
|
Single |
|
|
|
|
|
|
|
|
Приступим к созданию процедуры:
1.Загрузите приложение Excel и создайте рабочую книгу с именем
«Лабораторная работа 5».
2.Введите вектор a в первую строку таблицы, начиная с ячейки A1.
2.Одним из способов запустите редактор VBA.
3.Если в проекте нет модуля, то создайте его, выполнив команду меню редактора VB: Вставка→Модуль(Insert→Module);
4.В модуль вставьте процедуру СреднееАрифм, выполнив команду меню редактора VB: Вставка→Процедура (Insert→ Procedure);
104
5. В открывшемся диалоговом окне “Вставка процедуры” установите переключатель “Подпрограмма (Sub)”, в поле имени укажите имя процедуры – СреднееАрифм. Щелкните на OK. В окне редактирования кода появится заготовка общей процедуры вида:
Public Sub СреднееАрифм ()
End Sub
6. Под заголовком поместите код подпрограммы.
Const n=8
Dim a (1 To n) As Single 'объявили одномерный массив
Dim s, SrA As Single
Dim i, m As Integer
For i=1 To n
a(i)=Cells(1,i).Value If a(i)<0 Then
m=m+1
s=s+a End If
Next
SrA=s/m
Range ("A2").Value ="Среднее арифметическое отрицательных элементов"
Range ("A3").Value =SrA
7.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
8.При необходимости устраните ошибки.
9.Установите на рабочий лист кнопку и привяжите к ней написанную программу, так как это делалось в Лабораторной работе 2.
105
Лабораторная работа № 6 на тему: «Работа с одномерными массивами.Сортировкамассива»
Постановка задачи.
Из двух массивов a (12) и b (7) получить новый массив, состоящий из синусов всех элементов исходных массивов больших 1. Полученный массив
расположить в порядке возрастания его элементов.
Выполнение.
Сортировку массива оформим в виде отдельной процедуры.
Ввод и вывод данных. Пусть вектор a(12) введен в первую строку таблицы
Excel, начиная с B1, а вектор b в третью, начиная с B2. Результ – новый вектор
с поместим в пятую строку, начиная c B5. |
|
||||
|
|
Идентификаторы и типы исходных данных |
Табл.14 |
||
|
|
|
|
|
|
|
|
Описание переменной |
Идентификатор |
|
Тип |
|
|
|
|
|
|
|
|
Массив a |
a(12) |
|
Single |
|
|
|
|
|
|
|
|
Массив b |
b(7) |
|
Single |
|
|
|
|
|
|
|
|
Массив c |
c(19) |
|
Single |
|
|
|
|
|
|
Приступим к созданию процедуры:
1.Загрузите приложение Excel и создайте рабочую книгу с именем
«Лабораторная работа 6».
2.Введите вектор a в первую строку таблицы, начиная с ячейки B1 и вектор b
в третью строку, начиная с ячейки В3.
3.Одним из способов запустите редактор VBA.
4.Если в проекте нет модуля, то создайте его, выполнив команду меню редактора VB: Вставка→Модуль(Insert→Module);
2. Создадим сначала процедуру сортировки одномерного массива, которую
можно использовать в различных задачах. Выполним команду меню редактора
VB: Вставка→Процедура (Insert→ Procedure);
106
3. В открывшемся диалоговом окне “Вставка процедуры” установите переключатель “Подпрограмма (Sub)”, в поле имени укажите имя процедуры – Сортировка. Щелкните на OK. В окне редактирования кода появится заготовка общей процедуры вида, куда мы добавим параметры:
Public Sub Сортировка(ByVal n As Integer, ByRef x() As Single) End Sub
4. Под заголовком поместите код подпрограммы.
Dim i, k, m as Integer
Dim r as Single
For k = n to 2 step -1 m= 1
For i = 2 to k
If x(i) > x(m) Then m = i
End If
Next i
r = x(k) x(k) = x(m) x(m) = r
Next k
5. Создайте основную процедуру Массивы2.
Public Sub Массивы2 ()
End Sub
6. Под заголовком поместите текст основной программы.
Const n1=12, n2=7
Dim a (1 To n1) As Single 'объявили одномерный массив
Dim b (1 To n2) As Single
Dim с (1 To n1+n2) As Single
Dim i, nс As Integer
107
nc=0
For i=1 To n1 a(i)=Cells(1,i+1).Value If a(i)>1 Then
nc=nc+1
c(nc)=sin(a(i)) End If
Next
For i=1 To n2 b(i)=Cells(3,i+1).Value If b(i)>1 Then
nc=nc+1
c(nc)=sin(b(i)) End If
Next
Call Сортировка(nc, c())
Cells(5,1).Value="Вектор с"
For i=1 To nc
Cells(5,i+1).Value=c(i)
Next
7.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
8.При необходимости устраните ошибки.
9.Установите на рабочий лист кнопку и привяжите к ней написанную программу, так как это делалось в Лабораторной работе 2.
108
Лабораторная работа № 7 на тему: «Работасдвумернымимассивами»
Постановка задачи.
Для матрицы A 8 , 5 найти сумму кубов ее элементов, лежащих на
нечетных колонках.
Выполнение.
Ввод и вывод данных. Пусть исходные данные элементов матрицы расположены в таблице Еxcel следующим образом:
Рис. 15
Результат счета будем выводить в ячейку B12.
Приступим к созданию процедуры:
1. Загрузите приложение Excel и создайте рабочую книгу с именем
«Лабораторная работа 7».
2.Введите матрицу A.
3.Одним из способов запустите редактор VBA.
4.Если в проекте нет модуля, то создайте его, выполнив команду меню редактора VB: Вставка→Модуль(Insert→Module);
5.В модуль вставьте процедуру Массивы3.
109
Public Sub Массивы3 ()
End Sub
6. Под заголовком поместите код подпрограммы.
Const n=8, m=5
Dim A (1 To n, 1 To m) As Single
Dim s As Single
Dim i, j As Integer
For i=1 To n
For j=1 To m
A(i,j)=Cells(i+2,j).Value
Next
Next s=0
For i=1 To n
For j=1 To m Step 2 s=s+A(i,j)^3
Next
Next
Range ("A12").Value="S="
Range ("B12").Value=s
7.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
8.При необходимости устраните ошибки.
9.Установите на рабочий лист кнопку и привяжите к ней написанную программу, так как это делалось в Лабораторной работе 2.