Инф VBA
.pdf110
Лабораторная работа № 8 на тему: «Работа с двумерными массивами
(продолжение)»
Постановка задачи.
Из матрицы A8,5 получить матрицу B 8,5 , элементы которой равны
косинусам соответствующих элемент матрицы A .
Выполнение.
Ввод и вывод данных. Пусть исходные данные элементов матрицы расположены в таблице Еxcel, как в Лабораторной работе 7:
Результаты счета – матрицу В будем располагать начиная с ячейки А15.
Приступим к созданию процедуры:
1.Загрузите приложение Excel и создайте рабочую книгу с именем
«Лабораторная работа 8».
2.Введите матрицу A.
3.Одним из способов запустите редактор VBA и вставьте модуль.
4.В модуль вставьте процедуру Массивы4.
Public Sub Массивы4 ()
End Sub
5. Под заголовком поместите код подпрограммы.
Const n=8, m=5
Dim A (1 To n, 1 To m) As Single
Dim B (1 To n, 1 To m) 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
B(i,j)=cos(A(i,j))
Cells(i+14,j).Value =B(i,j)
Next
111
Next
6.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
7.При необходимости устраните ошибки.
8.Установите на рабочий лист кнопку и привяжите к ней написанную программу, так как это делалось в Лабораторной работе 2.
Лабораторная работа № 9 на тему: «Работа с двумерными и одномернымимассивами»
Постановка задачи.
Из матрицы A A 9 , 7 получить вектор b , координаты которого равны среднему геометрическому положительных элементов соответствующих строк матрицы A .
Выполнение.
Ввод и вывод данных. Предположим, что исходные данные элементов матрицы расположены в таблице excel как в предыдущей лабораторной работе.
Результат счета – вектор b – расположим в одну колонку, начиная с ячейки I1.
Приступим к созданию процедуры:
1.Создайте рабочую книгу «Лабораторная работа 9».
2.Введите матрицу A.
3.Одним из способов запустите редактор VBA и вставьте модуль.
4.В модуль вставьте процедуру Массивы5.
Public Sub Массивы5 ()
End Sub
5. Под заголовком поместите код подпрограммы.
Const n=8, m=5
Dim A (1 To n, 1 To m) As Single
Dim b (1 To n) As Single
Dim i, j, k As Integer
112
For i=1 To n
For j=1 To m
A(i,j)=Cells(i+2,j).Value
Next
Next
For i=1 To n
P=1
K=0
For j=1 To m
If A(i,j)>0 Then
P=p* A(i,j)
K=k+1
End If
Next
If k=0 Then
B(i)=0
Else
B(i)=p^(1/k)
End If
Next
Cells(1,9).Value="Вектор b"
For i=1 To n
Cells (i+2,9).Value=b(i)
Next
6.Сохраните рабочую книгу. Запустите процедуру вычисления площади с помощью команды Запуск (Run) или нажмите F5.
7.При необходимости устраните ошибки.
8.Загрузите приложение Excel и создайте рабочую книгу с именем
113
9. Установите на рабочий лист кнопку и привяжите к ней написанную
программу, так как это делалось в Лабораторной работе 2.
Лабораторная работа № 10 на тему: «Использованием форм пользователя»
Задание. Разработайте экранную форму и программу, в которой находится сумма либо произведение двух чисел. В программе предусмотреть проверку корректности вводимых исходных данных и выдачу сообщений в случае обнаружения какой-либо ошибки. (Данные корректны, если они являются числовыми.) Для вывода окна на экран используйте кнопку, которую поместите на первом рабочем листе.
Выполнение. Перед созданием формы пользователя необходимо определиться, какие элементы управления необходимы программе, а именно – для вывода исходных данных, указания на выполнение вычислений и завершения работы программы. В нашем случае, для выбора операции, в форме необходимо разместить элемент Рамка (Frame), внутри которого, как в контейнере, расположите два Переключателя (OptionButton). Для непосредственного подсчета суммы либо произведения двух чисел необходимо задать два параметра (первое число и второе число). Следовательно, в форме пользователя должны быть размещены два элемента Поле (TextBox). Для вывода результата будем использовать элемент Надпись (Label). Кроме этих элементов, в форме должны быть размещены ещё три элемента Надпись
(Label), поясняющие назначение элементов управления. Для включения режима вычислений и для выхода из программы в форму пользователя следует поместить два элемента Кнопка (CommandButton). Примерный вид формы:
114
Для выполнения задания сделайте следующее:
1.Перейдите в редактор VBA.
2.Добавьте в проект новую форму (команда Вставка\UserForm). Добавьте в форму нужные элементы.
3.Выведите на экран окно свойств, если его нет (команда Вид\Окно свойств). Измените значения свойства Caption у всех надписей и кнопок.
4.Напишите процедуру обработки события Click для кнопки Вычислить.
Надо дважды щелкнуть на этой кнопке. Появится заготовка для процедуры.
Private Sub CommandButton1_Click()
End Sub
5. Введите текст процедуры, приведенный ниже, но учтите, что имена ваших элементов (их номера) могут быть другими:
If IsNumeric(TextBox1.Text) = False Then
MsgBox "Введите правильно первое число"
TextBox1.SetFocus
Exit Sub
End If
a = Val(TextBox1.Text)
If IsNumeric(TextBox2.Text) = False Then
MsgBox "Введите правильно второе число"
TextBox2.SetFocus
Exit Sub
End If
b = Val(TextBox2.Text)
If OptionButton1.Value = True Then
Label3.Visible = True
Label3.Caption = a + b
End If
If OptionButton2.Value = True Then
115
Label3.Visible = True
Label3.Caption = a * b
End If
Встроенная функция IsNumeric возвращает значение True, если ее аргумент является числом, и False, если аргумент не число.
Напишите процедуру обработки события Initialize для экранной формы
UserForm1, которое генерируется в момент инициализации формы. Эта процедура должна содержать код, задающий значения для элементов управления формы таковыми, каковыми они должны быть при открытии формы. Выполните двойной щелчок по экранной форме. Откроется окно кода с заголовком UserForm_Click( ). Чтобы создать процедуру обработки события
Initialize, щелкните на кнопке со стрелкой, направленной вниз, в правой части раскрывающегося списка возможных событий и выберите событие Initialize. В
окне кода появится заготовка для соответствующей процедуры, в которую вы введете текст:
Private Sub UserForm_Initialize()
OptionButton1.Value = True
Label3.Visible = False
End Sub
Напишите процедуру обработки события Click для кнопки Отмена. Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
6.Вставьте на Лист1 кнопку для вывода вашего диалогового окна. Создайте для этой кнопки макрос Кнопка1_Щелчок
Private Sub Кнопка1_Щелчок ()
UserForm1.Show
End Sub
7. Вернитесь в Excel и запустите программу.
116
Библиографический список
1.Акулов, О. А. Информатика. Базовый курс : учеб. для студентов вузов,
бакалавров, магистров, обучающихся по специальности «Информатика и вычислительная техника», а также студентов, изучающих естественные науки
/О. А. Акулов, Н. В. Медведев. – 5-е изд., стер. – М. : Омега-Л, 2009. – 574 с.
2.Безручко, В. Т. Информатика (курс лекций) : учеб. пособие / В. Т Безручко. –
М. : Инфра-М : Форум, 2009. – 432 с. – (Гриф МО РФ).
3.Острейковский, В. А. Информатика : учеб. для студентов техн. и экон.
специальностей вузов / В. А. Острейковский. – 5-е изд, стер. – М. : Высш.
школа, 2009. – 511 с.
4.Симонович, С. В. Информатика. Базовый курс : учеб. для техн. вузов /
С. В. Симонович. – 2-е изд. – СПб. : Питер, 2009. – 640 с
5.Соболь, Б. В. Информатика : учеб. / Б. В. Соболь [и др.] – 4-е изд., перераб. и
доп. – Ростов н/Д : Феникс, 2009. – 446 с.
6.Степанов, А. Н. Информатика : учеб. для вузов / А. Н. Степанов. – 5-е изд.,
испр. и доп. – СПб. : Питер, 2008. – 768 с.
7.Волосатова Т.А., Шамраева В.В. Методические указания и упражнения по курсу: “Решение нелинейных уравнений средствами Microsoft Excel –Ростов-
на-Дону, РИЦ РГСУ, 2009.— 44 с.
8.Джон Уокенбах Excel 2010: профессиональное программирование на VBA =
Excel 2010 Power Programming with VBA.—М.:«Диалектика», 2011.— 944 с.
9.Слепцова Л.Д. Программирование на VBA в Microsoft Office 2010.—
М.:«Диалектика», 2010.— 432 с.
10.Солохин. Н.Н., Волостова Т.А.,Данекянц А.Г., Маринченко Е.В., Назарько О.В., Сайфутдинова Н.А. Лабораторный практикум по информатике. Часть 1–
Ростов-на-Дону, РИЦ РГСУ, 2012.— 32 с.
117
Приложение 1
Правильные ответы к тестам.
Глава 1
1 B |
|
2 С |
3 С |
4 D |
5 А |
6 D |
7 B |
8 В |
9 A |
10 С |
|
|
|
|
|
|
|
|
|
|
|
Глава 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1 D |
|
2 С |
3 D |
4 B |
4 E |
6 A |
7 С |
8B |
9 D |
10 D |
|
|
|
|
|
|
|
|
|
|
|
Глава 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 С |
|
2 B |
3 B |
4 E |
5 D |
6 D |
7 B |
8 A |
9 С |
10 Е |
|
|
|
|
|
|
|
|
|
|
|
Глава 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 D |
|
2 B |
3 C |
4 A |
5 Е |
6 D |
7С |
8D |
9 A |
10 B |
|
|
|
|
|
|
|
|
|
|
|
Глава 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1 B |
|
2 D |
3 B |
4С |
5 A |
6 С |
7 D |
8 D |
9 B |
10 E |
|
|
|
|
|
|
|
|
|
|
|
Глава 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
1 C |
|
2 B |
3 A |
4 B,Е |
5 Е |
6 А |
7 D |
8 А |
|
|
|
|
|
|
|
|
|
|
|
|
|
Глава 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1 A |
|
2 D |
3 D |
4A |
5 B |
6 С |
7 C |
8 B |
9 D |
10 C |
|
|
|
|
|
|
|
|
|
|
|
|
118 |
|
Приложение 2 |
|
Задания для самостоятельной работы студентов. |
|
Задача 1 |
1. |
Составить программу вычисления площади и периметра равнобедренного |
|
треугольника с основанием a и углом при вершине градусов. |
2. |
Составить программу вычисления площади и периметра равнобедренной |
|
трапеции с основаниями a , b и высотой h . |
3.Составить программу вычисления объема и полной поверхности конуса с радиусом основания R и высотой H .
4.Составить программу вычисления объема и полной поверхности шара диаметром D .
5.Составить программу вычисления площади и периметра параллелограмма со
сторонами a , b и острым углом градусов.
6. Составить программу вычисления объема и полной поверхности цилиндра с
диаметром основания D и высотой H .
7. Составить программу вычисления площади и периметра ромба со стороной
aи острым углом при вершине градусов.
8.Составить программу вычисления объема и полной поверхности прямоугольного параллелепипеда со сторонами a, b, c .
9.Составить программу вычисления полной поверхности и объема усеченного конуса с радиусами оснований R, r и высотой H .
10.Составить программу вычисления площади и периметра треугольника с
сторонами a , b и c . |
|
Задача 2 |
|
Составить программу вычисления функции |
y f (x) и вычислить |
значения функции в указанных точках. |
|
|
|
|
|
|
|
|
|
|
119 |
|
|
|
2 |
4x 7,3 |
x 0,35 |
||||
|
x |
|
|
||||||
1. |
y cos(3,4x 4) |
0,35 x 1,1 |
|||||||
|
|
e |
0,78 x |
ln (x |
3 |
4,2) |
x 1,1 |
||
|
|
|
|
|
x 1,1; 0,16; 1,33; 0,35; 1,1
arctg 3,1x
2. y sin 2 x ln x
x2 4x 11
x 0,11; 1,34; 2,3; 0,47; 2
ln (3 x2 ) 3. y x sin 2,7x
e x arctg 3x
x 0,47 0,47 x 2 x 2
x 0,33
0,33 x 0,81
x0,81
|
x 1,57; 0,78; 1,95; 0,33; 0,81 |
|||||||||
|
|
|
2,1x 4,7 |
|
|
|
x 0,88 |
|||
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
x arctg 4x |
0,88 x 1,7 |
||||||||
4. |
y |
|||||||||
|
|
sin x ln (2x 0,75) |
x 1,7 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
x 2,1; 0,64; 1,9; 0,88; 1,7 |
|
||||||||
|
|
ln (x |
2 |
4) |
x 0,35 |
|||||
|
|
|||||||||
|
|
|
||||||||
5. |
y |
arctg 2 x |
0,35 x 2,1 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4x3 3x2 2,2 |
x 2,1 |
||||||
|
|
|
|
x 0,77; 1,32; 2,71; 0,35; 2,1
|
|
|
|
|
|
|
|
|
|
|
x2 2x 18,7 |
|
x 0,83 |
||||
6. |
|
tg 0,11x |
|
1 2,4x |
|
0,83 x 0,5 |
||
|
|
|||||||
y |
|
|
||||||
|
|
|
|
|
|
|
|
x 0,5 |
|
e 1,72 x |
|
||||||
|
|
|
|
|
|
|
|
|
x 1,33; 0,57; 0,87; 0,83; 0,5