Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СУБД / Информатика.Ч2_2Ed

.pdf
Скачиваний:
75
Добавлен:
09.02.2016
Размер:
1.51 Mб
Скачать

3. Разработать программу (процедуру), которая рассчитывает: средний балл; средний балл по лекциям;

средний балл по практикам; в совокупности для тех людей, ФИО которых отмечена флажком.

Рис. 1.6. Результаты расчета

4.Вынести новую кнопку на панель пользователя и присвоить ей созданный макрос.

5.Доработать программу на предмет исключения ошибки - когда ни один человек не отмечен. Сохраните результаты работы.

МЕТОДИКА ВЫПОЛНЕНИЯ

1.Создайте новый рабочий лист с именем Расчет среднего балла книги MS Office Excel. Добавьте в таблицу данные, как показано на рис. 1.4. Для ввода чередующихся надписей в «шапке таблицы» можно использовать автозаполнение ячеек.

2.Перейдите на вкладку ленты Разработчик и в группе Элементы управления нажмите на кнопку Вставить элементы управления

. В выпадающем меню выберите элемента управления Фла-

жок из раздела Элементы Active X и внедрите по одному переключателю в области ячеек диапазона А4:A9, как показано на рис.

21

1.5. Выйдите из режима конструктора, отжав кнопку

, и

отметьте в произвольном порядке несколько флажков.

 

3.Запустите редактор Visual Basic нажатием сочетания клавиш Alt + F11, дважды щелкните на элементе Лист3 в окне Project Explorer (именно на этом листе находится таблица с данными) и наберите в появившемся окне следующий программный код:

Программный код

' Объявление глобальной переменной

Public Средний_балл As Double

'Процедура для добавления панели инструментов с кнопками Sub Запуск()

With Application.Toolbars(1).ToolbarButtons.Add(Button:=211)

.Name = "Расчет среднего балла группы"

.OnAction = "Лист3.Расчет_среднего_балла_по_группе"

End With

With Application.Toolbars(1).ToolbarButtons.Add(Button:=211)

.Name = "Расчет среднего балла за лекции"

.OnAction = "Лист3.Расчет_среднего_балла_по_лекциям"

End With

With Application.Toolbars(1).ToolbarButtons.Add(Button:=211)

.Name = "Расчет среднего балла за практику"

.OnAction = "Лист3.Расчет_среднего_балла_по_практике"

End With

With Application.Toolbars(1).ToolbarButtons.Add(Button:=212)

.Name = "Удалить панель инструментов"

22

.OnAction = "Лист3.Очистка"

End With End Sub

'Удаление панели инструментов Sub Очистка()

Application.Toolbars(1).Reset End Sub

'Объявление процедуры (подпрограммы) Sub Расчет_среднего_балла_по_группе()

'Объявление переменных i, j, k как целых

'(доступны только внутри данной процедуры)

Dim i, j, n As Integer

'Объявление массива Переключатель, размерностью 6 (с 4 до 9),

'где будут располагаться указатели на объекты (флажки),

'т.е. их идентификационный код. Это необходимо для обращения

'к элементу по его порядковому номеру в массиве

Dim Переключатель(4 To 9) As Object

Set Переключатель(4) = CheckBox1

Set Переключатель(5) = CheckBox2

Set Переключатель(6) = CheckBox3

Set Переключатель(7) = CheckBox4

Set Переключатель(8) = CheckBox5

Set Переключатель(9) = CheckBox6

'Обнуление глобальной переменной Средний_балл Средний_балл = 0

'Обнуление локальной переменной n

n = 0

'Организация цикла от 4 до 9 с шагом (по умолчанию) 1

For i = 4 To 9

'Условная конструкция. Если элемент массива Переключатель

'c номером, который присвоен переменной i, равен True, т.е.

'Флажок отмечен, то выполняются действия

If Переключатель(i) = True Then

'Организация цикла от 3 до 12 с шагом (по умолчанию) 1

For j = 3 To 12

'Значение, содержащиеся в переменной Средний_балл

'суммируется со значением в ячейке с номером (i, j) Средний_балл = Средний_балл + Cells(i, j).Value

'Конец циклической конструкции по j

Next j

23

'Увеличение на единицу значения переменной n,

'которая будет показывать число отмеченных флажков n = n + 1

'Конец условной конструкции

End If

'Конец циклической конструкции по i

Next i

'Значение в переменной Средний_балл поделенное на количество

'столбцов с оценками (10) и на число отмеченных флажков (n) Средний_балл = Средний_балл / (10 * n)

'Вывод результата в ячейку В11

Range("B11").Value = "Средний балл группы = " & Str(Средний_балл)

End Sub

Sub Расчет_среднего_балла_по_лекциям()

Dim i, j, n As Integer

Dim Переключатель(4 To 9) As Object Set Переключатель(4) = CheckBox1 Set Переключатель(5) = CheckBox2 Set Переключатель(6) = CheckBox3 Set Переключатель(7) = CheckBox4 Set Переключатель(8) = CheckBox5 Set Переключатель(9) = CheckBox6 Средний_балл = 0

n = 0

For i = 4 To 9

If Переключатель(i) = True Then For j = 3 To 12 Step 2

Средний_балл = Средний_балл + Cells(i, j).Value Next j

n = n + 1 End If

Next i

Средний_балл = Средний_балл / (5 * n)

Range("B11").Value = "Средний балл по лекциям = " & Str(Средний_балл)

End Sub

Sub Расчет_среднего_балла_по_практике()

Dim i, j, n As Integer

Dim Переключатель(4 To 9) As Object

Set Переключатель(4) = CheckBox1

24

Set Переключатель(5) = CheckBox2 Set Переключатель(6) = CheckBox3 Set Переключатель(7) = CheckBox4 Set Переключатель(8) = CheckBox5 Set Переключатель(9) = CheckBox6 Средний_балл = 0

n = 0

For i = 4 To 9

If Переключатель(i) = True Then For j = 4 To 12 Step 2

Средний_балл = Средний_балл + Cells(i, j).Value Next j

n = n + 1 End If

Next i

Средний_балл = Средний_балл / (5 * n)

Range("B11").Value = "Средний балл по практике = " & Str(Средний_балл)

End Sub

Примечание. Можно проверить работоспособность набранного кода, если запустить на выполнение макрос Запуск(). Этот макрос добавляет новую вкладку ленты Надстройки и в группу Команды панели инструментов вставляет четыре кнопки.

Нажатие на эти кнопки запускает процедуры расчета среднего балла. Четвертая кнопка запускает макрос удаления данной панели.

4.После набора программного кода, в окне Project Explorer дважды щелкните по элементу . В открывшемся окне наберите следующий программный код:

25

Программный код

'Выполнение макроса Запуск() при открытии книги

Private Sub Workbook_Open()

Лист3.Запуск

End Sub

'Выполнение макроса Очистка() перед закрытием книги

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Лист3.Очистка

End Sub

5.Перейдите в MS Office Excel, нажав на кнопку и выполните следующие действия:

Выберите команду меню Сервис, Настройка… . Результат расчета среднего балла представлен на рис. 1.6.

ЗАДАНИЕ НА ДОРАБОТКУ ПРОГРАММЫ

В разработанной программе не предусмотрена защита от неправильных действий пользователя: если не отмечена ни одна строка и производится расчет, то возникает ошибка выполнения программы.

Необходима ввести условие, при выполнении которого будет выводится окно диалога с сообщением - «Должна быть выбрана хотя бы одна строка».

КОНТРОЛЬНЫЕ ЗАДАНИЯ

1.Создайте макрос для копирования данных из ячейки A8 в ячейку D7. Настройте запуск макроса с помощью сочетания клавиш.

2.Создайте макрос для выделения всех данных в столбце A красным цветом. Настройте запуск макроса с помощью сочетания клавиш.

3.Создайте макрос для центрирования данных в ячейках столбцов A и F. Настройте запуск макроса с помощью сочетания клавиш.

4.Создайте макрос для создания арифметической прогрессии в первой строке. Настройте запуск макроса с помощью кнопки на панели инструментов.

5.Создайте макрос для заливки серым цветом ячеек с любыми данными. Настройте запуск макроса с помощью кнопки на панели инструментов.

6.Создайте макрос, который заполняет диапазон ячеек текущего столбца листа MS Excel значениями от 1 до 100.

26

7.Создайте макрос, который выделяет красным цветом ячейки текущего столбца листа MS Excel, которые содержат отрицательные значения.

8.Создайте макрос, который выделяет красным цветом ячейки текущего столбца листа MS Excel, которые содержат не текстовые, а числовые значения.

9.Создайте макрос, который изменяет первую букву текста в ячейках текущего столбца листа Excel со строчной на прописную.

10.Создайте макрос, который заменяет формат ячеек текущего столбца листа MS Excel на денежный, если в ячейке содержатся не текстовые данные, а числовые.

11.Создайте макрос, который ведет подсчет количества повторений текста в определенном столбце листа MS Excel.

12.Создайте макрос, который отображает текст, введенный в ячейку MS Excel «задом наперед».

13.Создайте макрос, который осуществляет поиск максимального значения на всех листах книги MS Excel в диапазонах A1:D100.

14.Создайте макрос, который выполняет поиск ближайшей пустой ячейки в текущем столбце листа MS Excel.

27

ПРАКТИЧЕСКАЯ РАБОТА 2. ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ В MS OFFICE EXCEL 2007. ФОРМЫ ПОЛЬЗОВАТЕЛЯ

ЗАДАНИЕ

1.Создать новую рабочую книгу под именем Построение поверхно-

сти.

2.Перейти в режим редактора Visual Basic и создать форму пользователя с элементами управления, как показано на рис. 2.1.

Рис. 2.1. Форма пользователя

3.Разработать программу (процедуру), которая рассчитывает значе-

ния функции f (x, y) x 2 y 2 , где величины x, у меняются от ми-

нимального до максимального значения с шагом, заданным пользователем. Обеспечить вывод результатов вычислений в виде матрицы (рис. 2.2).

Рис. 2.2. Результаты вычислений функции

4.Завершить процедуру построением поверхности, используя результаты расчетов на рабочем листе.

28

Рис. 2.3. Построение поверхности

5.Доработать программу, чтобы пользователь мог выбрать для расче-

та и

построения поверхности одной

из

трех функций:

f (x, y)

x 2 y 2 , f (x, y) x3 y , f (x, y)

 

x 2

 

.

(x 2

y 2

4)

 

 

 

МЕТОДИКА ВЫПОЛНЕНИЯ

1.Создайте новую рабочую книгу с именем Построение поверхности в рабочей книге MS Office Excel. Запустите редактор Visual Basic

нажатием сочетания клавиш Alt + F11. Выберите пункт меню ре-

дактора Вставка, Форма пользователя (Insert, UserForm) или на-

жмите на кнопку . В окне редактора должна появится форма с именем UserForm1.

На панели Toolbox расположены элементы управления, которые можно добавлять на форму.

29

2.Для размещения элементов управления на форме выполните следующие действия:

нажмите на кнопку (Кнопка) на Панели элементов и вы-

полните щелчок левой клавишей мыши на форме. Кнопка должна появится на месте щелчка;

измените название кнопки, справа от свойства Caption в окне свойств объекта (которое можно вызвать из контекстного меню) сделайте запись: Построение поверхности. Для изменения размеров кнопки или формы используйте маркеры;

нажмите на кнопку (надпись) Панели элементов и поместите элемент на форме. Для свойства Caption сделайте запись

Мин. знач. по Х;

проделайте ту же самую операцию и добавьте на форму надпи-

си: Макс. знач. по Х, Шаг знач. по Х, Мин. знач. по Y, Макс. знач. по Y, Шаг знач. по Y.

нажмите на кнопку (Текстовое поле) и разместите этот элемент на форме под каждой надписью. Дальнейшее изложение ведется в предположении того, что надписи и имена текстовых полей имеют следующее соответствие:

Надпись

Имя текстового

 

поля

Мин. знач. по Х

TextBox1

Шаг знач. по Х

TextBox2

Макс. знач. по Х

TextBox3

Мин. знач. по Y

TextBox4

Шаг знач. по Y

TextBox5

Макс. знач. по Y

TextBox6

для текстовых полей проставьте значения, которые будут использоваться по умолчанию при расчете. Для чего в окне свойств объекта TextBox напротив свойства Value или Text введите необходимое числовое значение; сделайте выравнивание элементов на форме (рис. 2.1).

3.Щелкните дважды по кнопке Построить поверхность, которая размещена на форме. Откроется окно редактирования программного кода. В появившемся окне наберите следующий программный код:

Программный код

' Объявление глобальных переменных, которые доступны

30

Соседние файлы в папке СУБД