Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по Visual Basic.doc
Скачиваний:
51
Добавлен:
31.08.2019
Размер:
10.63 Mб
Скачать

Лабораторная работа №19. Создание книги лабораторных работ с автоматизированным выбором страниц книги

Цель работы: рассмотреть компоненты Animation, MMControl и их свойства; научиться создавать мультимедийные приложения с использованием компонента Animation и MMControl

Практическая часть

Задание 1. Автоматизированное заполнение ячеек таблицы

Ручное заполнение ячеек таблицы какими-либо значениями является достаточно неэффективным в ряде случаев, например, при вычислении значений функции f(x), которые зависят от x. В этом случае удобно прибегнуть к помощьюVBA, создав определенные элементы управления, включив их в структуру книги и назначив им обработку определенных событий.

Постановка задачи.

С оздать кнопку, при нажатии на которую заполняется таблицы значений аргумента. Аргумент X изменяется в заданном диапазоне [X0, XK] с приращением Dx.

Ход работы.

  1. Создайте папку с названием «Лабораторная_работа_№19».

  2. Запустите MS Excel.

  3. Перейдите на Лист 2.

  4. Переименуйте Лист 2, присвоив ему название «Заполнение».

  5. Включите панель инструментов «Элементы управления», щелкнув в области панелей инструментов правой клавишей мыши и выбрав соответствующую команду «Элементы управления», либо с помощью пункта меню Вид → Панели инструментов.

  6. На панели инструментов «Элементы управления» включите кнопку «Режим конструктора» .

  7. Нарисуйте командную кнопку на листе 2 («Заполнение»).

  8. Щелкните правой клавишей мыши на кнопке и выберите Свойства. Отобразится окно Properties (Рис.19.1).

  9. Измените свойство Caption (Заголовок) на «Заполнить».

  10. Изучите таблицу 19.1 «Свойства компонента Command Button» и установите свойства расположенной кнопки в соответствии с Таблицей 19.2 «Свойства кнопки «Заполнить».

Таблица 19.1

Свойства компонента Command Button

Свойство

Значение

Caption

Заголовок

Name

Имя объекта

Продолжение таблицы 19.1

Свойство

Значение

BackColor

Цвет фона

Width

Ширина

Height

Высота

AutoSize

Авторазмер

ForeColor

Цвет текста

Visible

Видимость

Font

Шрифт

Таблица 19.2

Свойство

Значение

Caption

Заполнить

BackColor

&H80000001&

ForeColor

&H000000FF&

Font

Courier New, 10, жирный

  1. Выполните двойной щелчок по кнопке. Откроется окно программного кода (Рис.19.2).

  2. Введите между строк процедуры следующие операторы и комментарий:

Private Sub CommandButton1_Click()

Dim X0, Xk, Dx, X As Double

'X0 - начальное значение X

'Xk - конечное значение X

'Dx - шаг изменения значения X

'X - аргумент X

Dim i As Integer 'переменная-счетчик

Set sht = Worksheets("Заполнение") 'Программное имя листа, на котором

'будут выполнены изменения

sht.Range("A:D").Clear 'Очищаем столбцы на листе sht

sht.Range("A1") = "N" 'Присваиваем название заголовку ячейки A1

sht.Range("B1") = "X" 'Присваиваем название заголовку ячейки B1

sht.Range("C1") = "Y" 'Присваиваем название заголовку ячейки C1

X0 = Val(InputBox("Введите значение X0:", "X0", "0")) 'запрос значения X0

Xk = Val(InputBox("Введите значение Xk:", "Xk", "0")) 'запрос значения Xk

Dx = Val(InputBox("Введите значение Dx:", "Dx", "0")) 'запрос значения Dx

X = X0 'Присваиваем начальное значение аргументу X

i = 2 'значение индекса, указывающего номер строки,

'с которой нужно начинать заполнение

Do While X <= Xk 'начинаем цикл формирования столбца значений X

sht.Cells(i, 1) = i - 1 'в ячейку i 1-го столбца записываем номер строки

sht.Cells(i, 2) = X 'в ячейку i 2-го столбца записываем значение X

X = X + Dx 'берем следующее значение X

i = i + 1 'переходим в следующую строку

Loop 'конец цикла формирования столбцов № и X

MsgBox "Всего в таблице " + CStr(i - 2) + " строк"

End Sub

  1. Закройте окно программы Visual Basic.

  2. Выйдите из режима конструктора, нажав соответствующую кнопку на панели инструментов «Элементы управления».

  3. Сохраните созданную программу в папке под именем ЛР 19.xls.

  4. Проверьте работоспособность написанной программы, нажав на кнопку «Заполнить».

  5. Добавьте в процедуру команду, обеспечивающую также вывод значения функции Y (любой, например, Y=X2), зависящего от аргумента X.

  6. Сохраните введенные изменения.

  7. Перейдите на Лист 3 для выполнения следующей части лабораторной работы.

Задание 2. Построение поверхности функции

Постановка задачи.

Построить поверхность функции Z=X2+Y2-1.

Ход работы.

  1. Переименуйте Лист 3 в лист «Поверхность».

  2. Объедините ячейки A1 – J1.

  3. В объединенную ячейку введите название «Поверхность функции Z=X2+Y2-1».

  4. В ячейке A2 введите текст «Y \ X». Это показывает, что в данном столбце A вниз располагаются значения аргумента Y, а в горизонтальной строке 2 располагаются значения аргумента X.

  5. Для формирования строки значений X:

- в ячейку B2 введите начальное значение аргумента X, равное «-1», в ячейку C2 – значение «-0,75»;

- выделите ячейки B2 и C2;

- переместите указатель мыши в правый нижний угол ячейки C2 и протяните указатель мыши до ячейки J2; ячейки должны заполниться значениями от -0,5 до 1.

  1. Выполнив аналогичные действия, заполните ячейки столбца A от A3 до A7 значениями аргумента Y, изменяющегося от -1 до +1 с шагом 0,5.

  2. Введите в ячейку B3 формулу:

=B$2^2+$A3^2-1

Здесь используется ссылка, абсолютная по строке B, а также ссылка, абсолютная по столбцу 2.

  1. З аполните ячейки таблицы от B3 до J7. Созданная таблица значений функции Z показана на Рис.19.3.

  1. О тформатируйте таблицу по своему вкусу, настроив вид границ, параметры шрифта.

  2. Для построения поверхности функции Z выделим ячейки в диапазоне от B3 до J7, содержащие таблицу значений функции.

  3. Щелкните на панели инструментов кнопку «Мастер диаграмм» .

  4. В открывшемся окне (Рис.19.4) выберите тип диаграммы «Поверхность», выберите ее вид по своему усмотрению и нажмите кнопку «Далее».

  5. В окне источника данных диаграммы (Рис.19.5) выполняем следующие действия:

- на вкладке «диапазон данных» проверяем соответствие диапазона ячеек, выбранных для построения диаграммы, выделенному диапазону ячеек;

- из двух переключателей «Ряды в: строках, столбцах» выбираем вариант, позволяющий получить наиболее наглядный вариант диаграммы; на Рис.19.5 выбран переключатель «в строках»;

- на вкладке «Ряд» выбираем последовательно строки «Ряд1», «Ряд2» и т.д.;

- каждой выбранной строке присваиваем «Имя»; для этого щелкаем по кнопке в правом конце поля ввода «Имя» и щелкаем на ячейке со значением аргумента, соответствующим выбранному ряду данных; в данному случае для «Ряд1» нужно щелкнуть на ячейке A3, т.к. мы указали, что данные находятся в строках, а это значения аргумента Y;

- для подписи значений по оси X щелкните по кнопке в правом конце поля «Подписи оси X», и выделите ячейки с B2 по J2, т.к. подписи по оси X – это значения аргумента X; результат на Рис.19.6;

- нажмите на кнопку «Далее».

  1. В следующем окне задаем подписи осей (Рис.19.7) и параметры отображения основных и дополнительных линий осей (Рис.19.8).

  2. На последнем шаге указываем расположение диаграммы (На имеющемся листе) (Рис.19.9).

  3. Р езультат представлен на Рис.19.10.

  1. Постройте вторую диаграмму данной поверхности, но в качестве источника данных укажите данные в столбцах. Примерный результат представлен на рис.19.11.

  1. Перейдите на Лист 1 для выполнения следующего, заключительного задания лабораторной работы №19.

Задание 3. Создание элементов управления и включение их в структуру книги

Постановка задачи.

Для оформления книги с набором лабораторных работ.

Х од работы.

  1. Переименуйте Лист 1 в лист «Оглавление».

  2. В верхней части листа «Оглавление» с помощью приложения WordArt создайте заголовок, как, например, на Рис.19.12.

  3. Включите панель инструментов «Элементы управления», щелкнув в области панелей инструментов правой клавишей мыши и выбрав соответствующую команду «Элементы управления», либо с помощью пункта меню Вид → Панели инструментов (если она у Вас выключена).

  4. На панели инструментов «Элементы управления» включите кнопку «Режим конструктора».

  5. Нарисуйте 2 командных кнопки на листе «Оглавление».

  6. Задайте свойству Caption кнопок названия «На лист «Заполнение» и «На лист «Поверхность» соответственно.

  7. Также измените свойства кнопок такие, как BackColor, Font и т.п. Примерный вид приложения приведен на Рис.19.12.

  8. Выполните двойной щелчок по компоненту CommandButton1.

  9. В открывшемся окне программы введите следующий программный код с комментариями:

Private Sub CommandButton1_Click()

Sheets("Заполнение").Select 'Переход на лист "Заполнение"

End Sub

Private Sub CommandButton2_Click()

Sheets("Поверхность").Select 'Переход на лист "Поверхность"

End Sub

  1. Выйдите из редактора Visual Basic и проверьте работоспособность написанных процедур (не забудьте выполнить выход из режима конструктора, нажав на соответствующую кнопку на панели инструментов «Элементы управления»).

  2. Сохраните изменения в файле.

  3. На листах «Заполнение» и «Поверхность» добавьте кнопки «На оглавление», снабдив их соответствующей процедурой.

Подведем итоги

В работе были использованы новые

объекты:

Sheets – листы

Поверхность – тип диаграммы

Columns – столбцы

методы:

Select (выделение указанной ячейки)

Clear (очистка указанной области)

Set (принять, взять, получить указанное выражение)

функции и выражения:

Val (перевод строковых переменных и данных в численное выражение)

InputBox("") (диалоговое окно)

MsgBox (диалоговое окно сообщения)

Do While …Loop (циклический оператор «Выполнять, пока…»)

свойства:

BackColor (цвет фона, цвет кнопки)

Caption (заголовок, название)

Font (настройки шрифта)

Задания для самостоятельного выполнения

Создайте книгу с подобными примерами лабораторных работ по номеру своего варианта (Таблица 19.3, 19.4).

Таблица 19.3

Варианты заданий для автоматизированного заполнения ячеек таблицы

1.

Y = A*X2 + B*X+ sin(X)

11.

Y = cos2(B*X) + A*cos(X) + X

2.

Y = sin2(A*X) + cos2(B*X) + AX

12.

Y = B*X + e(B*X) + AX

3.

Y = AX + B*sin(X) – cos2(B*X)

13.

Y = sin2(A*X) – B*cos(X) – e(B*X)

4.

Y = B*X2 + sin2(A*X) – sin(X)

14.

Y = AX + B*cos2(X) – A*X

5.

Y = cos2(A*X) + e(B*X) – A*X2

15.

Y = cos(A*X+B) – A*X + e(B*X)

6.

Y = sin(A*X) – A*X + B*X2

16.

Y = sin2(A*X) – B*X + A*X3

7.

Y = sin2(A*X) – e(B*X) + B*X3

17.

Y = A*cos(X) + AX + B*cos2(X)

8.

Y = cos2(B*X) + B*X2 + AX

18.

Y = e(B*X) + B*X2 + cos(X)

9.

Y = e(B*X) + A*X2 – B*X3

19.

Y = sin2(A*X) – B*X2 – A*X3

10.

Y = sin2(B*X) – A*X3 + B*X2

20.

Y = A*cos2(B*X) + e(B*X) + A*cos(X)

Таблица 19.4

Варианты заданий для построения поверхности функции

1.

Z = X2 + Y2/2

11.

Z = |X + Y| * e(X*Y)

2.

Z = X*Y + sin(X*Y)

12.

Z = sin(X + Y) * e(X*Y)

3.

Z = sin(X)*Y + X*cos(Y)

13.

Z = sin(X)*cos(Y) * e(X*Y)

4.

Z = X2 + eX * Y4

14.

5.

Z = sin(X+Y) + X2

15.

Z = cos(X*Y) – (2*X2 – Y2)

6.

Z = 2*X2 – 3*Y2

16.

Z = (X2 + Y2)*cos(Y) e(X*Y)c

7.

Z = X2 + X*Y + Y2

17.

Z = e(X*Y) – cos(X2 + Y2)

8.

Z = sin(X) * cos(Y) + X*Y

18.

Z = sin(X – Y) * |X2 + Y|

9.

19.

Z = |sin(X*Y)| + e(X+Y)

10.

Z = sin(X*Y) + cos(X*Y)

20.

Z = cos(X*Y)2 + sin(X*Y)2

Вопросы для контроля