
- •Информатика
- •Утверждено редакционно-издательским советом университета
- •1 . Информация о дисциплине
- •1.1. Предисловие
- •1.2. Содержание дисциплины и виды учебной работы
- •1.2.1. Объем дисциплины и виды учебной работы
- •1.2.2. Перечень видов практических занятий и видов контроля
- •Рабочие учебные материалы
- •2.1. Рабочая программа
- •Раздел 1. Введение. Объектно – ориентированный
- •Раздел 2. Инструкции языка Visual Basic for Application (52 часа)
- •Элементы и типы данных языка vba. Переменные и константы. Арифметические и логические операции. Массивы данных. Встроенные функции vba.
- •Раздел 4. Создание форм пользователя в vba (16 часов )
- •2.2. Тематический план дисциплины
- •Информатика. Дополнительные разделы
- •Раздел 3 . Создание форм пользователя в vba Раздел 2 Инструкции языка vba Раздел 1 Введение. Объектно-ориентированный подход к программированию
- •2.4. Практический блок
- •Лабораторный практикум
- •2.5. Временной график изучения дисциплины
- •Р ейтинговая система
- •Информационные ресурсы дисциплины
- •3.1. Библиографический список
- •3.2. Опорный конспект по дисциплине * введение
- •Раздел 1. Объектно-ориентированный подход к программированию
- •При работе с данным разделом Вам предстоит:
- •1 .1. Основные понятия объектно- ориентированного программирования
- •1.2. Классы объектов vba, их методы и свойства
- •Инкапсуляция
- •Наследование объектов
- •Полиморфизм объекта
- •Особенности vba
- •Объекты и их семейства в vba
- •Иерархия объектов vba
- •Методы и свойства объектов vba
- •Событие и отклик на него
- •Сервис – Макрос - Макросы – Диаграмма – Изменить.
- •Вставка – Модуль (Insert – Module) Вставка – Процедура (Insert – Procedure.
- •Раздел 2. Инструкции языка vba
- •При работе с данным разделом Вам предстоит:
- •2 .1. Элементы языка vba
- •Правильные имена Неправильные имена
- •Основные понятия vba
- •Переменные
- •Insert – Module (Вставка – Модуль)
- •Insert – Procedure (Вставка – Процедура)
- •Операции
- •Логические операции
- •Операция конкатенации
- •Функции проверки типов
- •Is Numeric (аргумент)
- •Функция InputBox
- •InputBox(Сообщение, Заголовок, Текст по умолчанию)
- •Функция MsgBox
- •MsgBox(Сообщение, Кнопки, Заголовок).
- •2.2. Операторы перехода
- •Синтаксис оператора присваивания для переменных
- •Синтаксис оператора присваивания для объектов
- •Условный оператор с одной ветвью
- •Организация программ для проверки нескольких условий
- •Структура оператора If для проверки большого числа условий
- •2.3. Операторы цикла
- •Dim ИмяМассива(Размерность) As ТипЭлементов
- •Оператор For (для)…Next (следующий)
- •Вычисление суммы элементов массива
- •Вычисление произведения элементов массива
- •Считывание массива из Excel
- •Вычисление максимальных значений элементов массива
- •Оператор While (пока)…Wend (конец цикла)
- •Оператор Do (выполнить) … Loop (конец Do)
- •2.4. Работа с подпрограммами
- •Обращение из одной процедуры к другой
- •Передача параметров из одной процедуры в другую
- •Раздел 3. Создание форм пользователя в vba
- •При работе с данным разделом Вам предстоит:
- •3.1. Создание пользовательских форм
- •3.2. Создание программ для работы с формой.
- •Заключение
- •3.3. Глоссарий
- •3.4. Методические указания к выполнению лабораторных работ Общие указания
- •Работа 1. Операторы условного перехода и выбора
- •Цель работы
- •Основные теоретические положения
- •Пример 1
- •Пример 2
- •Пример 3
- •Порядок выполнения работы
- •3.1. Выполнение задания 1
- •3.2. Выполнение задания 2
- •3.3. Выполнение задания 3
- •Индивидуальные задания
- •4. Отчет по работе
- •Работа 2. Операторы цикла. Работа с подпрограммами
- •1. Цель работы
- •Основные теоретические положения
- •2.1. Оператор For … Next
- •2.2. Оператор While … Wend
- •2.3. Оператор Do … Loop
- •2.4. Обработка двумерных массивов
- •2.4. Работа с подпрограммами
- •3. Порядок выполнения работы
- •3.1. Выполнение задания 1
- •3.2. Выполнение задания 2
- •3.3. Выполнение задания 3
- •Выполнение задания 4
- •3. 5. Выполнение задания 5
- •Вариант 1. Вычислить
- •Вариант 3. Вычислить
- •Вариант 4. Вычислить
- •4. Отчет по работе
- •4. Блок контроля освоения дисциплины
- •4.1. Методические указания к выполнению контрольной работы
- •4 .1.2. Задания на контрольную работу
- •4 .2. Тренировочные тесты текущего
- •Тест № 1
- •1.Vba относится к семейству языков программирования
- •5. Окно Проекта содержит:
- •12. Система записи для применения метода к объекту:
- •Тест № 2
- •Тест № 3
- •Правильные ответы на тренировочные тесты текущего контроля
- •4.3. Итоговый контроль. Вопросы к зачету
- •Приложение (листинг программы- контрольная работа)
- •Содержание
- •1. Информация о дисциплине……………………………………….…3
- •1.1. Предисловие……………………………………………………………...3
- •Раздел 1. Объектно-ориентированный поход к
- •Раздел 2. Инструкции языка vba…………………………………29
Выполнение задания 4
3.4.1. Создать и отладить программы вычисления суммы и произведения элементов массива А(10), размещенного в ячейках А1:А10 листа Excel. Обращение к этим программам осуществить из основной процедуры.
1.Набрать текст процедуры
Public Sub СуммаПроизведение( )
‘Обращение к процедуре суммирования
Сумма
‘Обращение к процедуре произведения
Произведение
End Sub
‘Текст процедуры суммирования
Public Sub Сумма( )
Dim A(10), S, I As Integer
S = 0
For I = 1 To 10
A(I) = Cells(I, 1)
S = S + A(I)
Next
MsgBox (“Сумма равна” & S)
End Sub
‘Текст процедуры перемножения
Public Sub Произведение( )
Dim A(10), Р, I As Integer
Р = 1
For I = 1 To 10
A(I) = Cells(I, 1)
Р = Р * A(I)
Next
MsgBox (“Произведение равно” & Р)
End Sub
2. Разместить в ячейках А1:А10 листа Excel исходные данные.
3. Запустить процедуру на выполнение.
3.4.2. Создать и отладить процедуры вычисления площади треугольника по основанию и высоте. Исходные данные передавать через головную процедуру.
Набрать текст процедуры:
Public Sub Передача параметров( )
‘Описание переменных для хранения значений высоты (Н) и основания (а)
Dim Высота, Основание As Integer
‘Запись значений высоты и основания из ЭТ
Высота = Range(“B1”)
Основание = Range(“B2”)
‘Вызов процедуры ПлощадьТреугольника с передачей значений Н и а
Call ПлощадьТреугольника(Основание, Высота)
End Sub
‘Описание процедуры ПлощадьТреугольника
Public Sub ПлощадьТреугольника(а, Н)
Dim Площадь As Single
Площадь = 0.5 * а * Н
MsgBox(“Площадь равна” & Площадь)
End Sub
2. Ввести в ячейки В1 и В2 значения высоты и основания треугольника (например, 4 и 8).
3. Запустить процедуру на выполнение.
3. 5. Выполнение задания 5
Создать программу согласно индивидуальному заданию. Вариант задания выбирается по последней цифре шифра.
Вариант 1. Вычислить
У=
где х – сумма положительных элементов пятой строки массива М(6,8).
Вариант 2.
Вычислить Y
=
где х – сумма отрицательных элементов второго столбца массива Р(7,7).
Вариант 3. Вычислить
Y
=
где х – произведение элементов четвертого столбца массива L(7,4).
Вариант 4. Вычислить
У=
где х – сумма элементов третьей строки массива Q(9,8).
Вариант 5. Вычислить
У=
где х – сумма отрицательных элементов шестой строки массива Р(10,9).
Вариант 6. Вычислить
У=
где х – максимальный элемент массива С(8,5).
Вариант 7. Вычислить
У=
где х – минимальный элемент массива М(6,7).
Вариант 8. Вычислить
У=
где х – сумма элементов пятого столбца массива Р(8,7).
Вариант 9. Вычислить
У=
где х – сумма элементов третьего столбца массива D(5,6).
Вариант 0. Вычислить
У=
где х – произведение элементов четвертой строки массива D(5,6).
4. Отчет по работе
Распечатки процедур и таблиц работы.
4. Блок контроля освоения дисциплины
4.1. Методические указания к выполнению контрольной работы
4.1.1. Общие методические указания
Контрольная работа выполняется только студентами специальностей 210106.65 и 210302.65 и содержит одну задачу, которую следует реализовать на языке VBA. Отчет по контрольной работе должен содержать титульный лист (см. рис. 1), листинг (распечатку) программы и распечатку фрагментов электронных таблиц с результатами вычислений. При этом необходимо проверить все ветви работы программы и, соответственно, привести результаты работы каждой ветви.
Пример выполнения контрольной работы
Создать процедуру для выполнения следующих действий:
Записать в массив с именем N данные, хранящиеся в ячейках C4:F6
листа Excel с именем «Данные».
Найти сумму элементов второго столбца массива N и присвоить ее
значение переменной D.
Вывести диалоговое окно с сообщением «Сумма элементов второго
столбца равна» D.
Если D < -5, записать D в ячейку Е листа Excel с именем
«Коэффициент».
Если –5 < D < 3, записать D в ячейку Е2 листа «Коэффициент».
При 3 < D < 7 поместить D в ячейку Е3, иначе – в ячейку Е4 листа «Коэффициент».
5. Проанализировать значение ячейки В3 листа Excel с именем «Коэффициент».
Если это значение больше нуля, записать в ячейки B5:E7 листа с именем «Новый» утроенное значение массива N.
Если
значение ячейки ВЗ<=0, то вычислить и
записать в ячейки D3:G5
листа Excel
с именем «Новый» значения функции синус
от элементов массива N
Sin(N(I,J)).
Решение
1. Определяем размерность исходного массива на листе «Данные». Для этого рассмотрим фрагмент электронной таблицы (рис. 2):
Рис. 2
Очевидно, что размерность массива N три строки и четыре столбца, то есть имеем массив N (3,4).
2. Теперь определяем адрес первой ячейки электронной таблицы «Данные», начиная с которой будем считывать исходный массив. Нумерация строк цикла (переменная I) начинается с единицы. Первый элемент массива N (3,4) располагается в четвертой строке электронной таблицы, значит, адрес строки, с которой начнем считывание массива, будет I + 3. Нумерация столбцов цикла (переменная J) также начинается с единицы. Первый элемент массива N (3,4) располагается в третьем столбце электронной таблицы, значит, адрес столбца, с которого начнем считывание массива, будет J + 2.
3. Для того, чтобы иметь возможность считать исходный массив из ЭТ в программу:
создадим файл в табличном процессоре Excel;
присвоим открывшейся Книге 1 имя «Контрольная работа». Для этого
выполним команды: Файл - Сохранить как - введем имя Контрольная работа;
переименуем рабочий Лист 1 в лист с именем Данные. Для этого
выполним команды: Щелчок правой клавишей мыши по имени Лист 1 – Переименовать – введем имя листа Данные (аналогичным образом создадим листы Коэффициент и Новый);
введем массив данных на лист Данные. Заполняем ячейки C4:F6 любыми
значениями. Но не следует вводить дробные или очень большие числа – помните, что Вы должны иметь возможность для контроля работы программы сами провести те же самые вычисления, что и программа. Например, в результате ввода исходных данных получим следующий фрагмент программ (рис. 3):
Рис. 3
Пишем первый фрагмент программы, организующий считывание
исходного массива в программу для дальнейшей обработки (рис. 4).
Организуем выполнение задания 2 - найти сумму элементов второго
столбца массива N и присвоить ее значение переменной D. Для этого вспоминаем алгоритм суммирования:
Обнулить ячейку, где будет храниться сумма;
Организовать цикл по перебору элементов массива (у нас столбец
фиксирован – номер 2, значит, J=2, а цикл следует организовать по перебору строк);
Рис. 4
На каждом шаге цикла добавляем к сумме очередной элемент
массива. В результате получаем фрагмент программы рис. 5.
Для контроля сразу просчитываем сумму элементов второго столбца нашего массива (рис. 3): -9 + 0 + 17 = 8. При запуске программы на выполнения в диалоговом окне должен быть выведен тот же результат.
Рис. 5
6. Организуем выполнение задания 3 - вывести диалоговое окно с сообщением «Сумма элементов второго столбца равна» D. Фрагмент программы представлен на рис.6, а результат работы фрагмента – на рис. 7.
Р
ис.
6
Рис. 7
Используя оператор условного перехода If, создаем фрагмент программы
для выполнения задания 4
Если D < -5, записать D в ячейку Е листа Excel с именем
«Коэффициент».
Если –5 < D < 3, записать D в ячейку Е2 листа «Коэффициент».
При 3 < D < 7 поместить D в ячейку Е3, иначе – в ячейку Е4 листа «Коэффициент».
Фрагмент программы, реализующий это задание, приведен на рис. 8.
Рис. 8
По результатам наших вычислений D = 8, значит, результат должен быть записан в ячейку Е4. Запустив программу на выполнение (F5), убеждаемся в правильности работы программы (рис. 9).
Рис. 9
8. Пишем фрагмент программы согласно п. 5 задания. Необходимо проанализировать значение ячейки В3 листа Коэффициент и в зависимости от ее значения записывать вновь вычисленный массив либо в один, либо в другой диапазон ячеек листа Новый.
8.1. Определим адресацию этих диапазонов с точки зрения построения циклов. Для этого рассмотрим интересующие нас диапазоны ячеек (рис. 10).
Если В3 >0, вновь вычисленный массив нужно записывать начиная с ячейки В5. Поскольку цикл перебора строк начинает работу с I=1, адрес строки первого элемента массива получается равным I+4. Аналогичным образом определяем, что адрес первого столбца массива равен J+1.
Значение ячейки
В3 >0
Первый
элемент – пятая строка (I
+ 4), второй столбец (J
+ 1).
Значение ячейки
В3 <=0
Первый
элемент – третья строка
(I
+2), четвертый столбец (J
+ 3).
Рис. 10
8.2. При проверке условия B3>0 необходимо вести запись двумерного массива чисел и по одной, и по другой ветви – значит, обе ветви условного оператора должны содержать вложенные циклы.
8.3. Заносим в ячейку В3 листа Коэффициент число 10. Поскольку это число больше нуля, при правильной организации ветвления в ячейках В5:Е7 листа Новый должны быть записаны утроенные значения массива N(3,4).
8.4.
Пишем фрагмент программы согласно
заданию 5. (рис. 11):
Рис. 11
8.5. Запускаем программу на выполнение (F5). Результат выполнения приведен на рис. 12.
Рис. 12
8.6. Вносим в ячейку В3 листа Коэффициент число -5. Так как теперь выполняется условие В3 <=0, в ячейки D3:G5 листа Новый должны записаться значения функции Sin от элементов исходного массива. Запускаем программу на выполнение (F5). Результат вычислений приведен на рис. 13.
Рис. 13
Итак, мы убедились в работоспособности созданной программы.
Листинг программы приведен в Приложении.