- •Государственное образовательное учреждение высшего профессионального образования «Ковровская государственная технологическая академия
- •Предисловие
- •Форматирование абзацев
- •Форматирование символов
- •Создание маркированных и нумерованных списков
- •Работа с колонкам
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Варианты заданий для работы с нумерованными и маркированными списками
- •Варианты заданий для работы с многоуровневыми списками
- •Порядок выполнения работы
- •Пример оформления практической части лабораторной работы № 1
- •Содержание отчета
- •Форматирование таблиц
- •Работа с математическими формулами
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Варианты заданий
- •Порядок выполнения работы
- •Пример оформления практической части лабораторной работы № 2
- •Содержание отчета
- •Основные приемы работы
- •Вставка рисунков и диаграмм в документ
- •Макросы
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Варианты заданий для создания блок-схем, работы с надписями, выносками
- •Задания для текстовых эффектов с помощью WordArt
- •Варианты заданий для создания макросов
- •Порядок выполнения работы
- •Пример оформления практической части лабораторной работы № 3
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 4 Слияние
- •Теоретическая часть
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Варианты заданий для создания документа с использованием слияния
- •Порядок выполнения работы
- •Пример оформления практической части лабораторной работы № 4
- •Содержание отчета
- •Совместная работа Word с другими приложениями с помощью ole-технологии
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Варианты заданий для работы с шаблонами
- •Варианты заданий для создания документа с использованием
- •Порядок выполнения работы
- •Содержание отчета
- •Варианты заданий
- •Варианты заданий
- •Порядок выполнения работы
- •Автозаполнение рядов данных
- •Выделение данных
- •Редактирование данных
- •Вставка и удаление строк и столбцов
- •Форматирование данных
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Задание 1
- •Расчетная ведомость ао «темп» за июнь 1998г.
- •Задание 3
- •Нахождение производной
- •Задание 4
- •Экзаменационная ведомость
- •Задание 5
- •Задание 6
- •Рабочая ведомость
- •Задание 7
- •Сводная ведомость
- •Задание 8
- •Варианты функций
- •Порядок выполнения работы
- •Содержание отчета
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Задание 1
- •Количество осадков в миллиметрах
- •Количество осадков в миллиметрах
- •Количество осадков в миллиметрах по годам
- •Вспомогательная таблица
- •Задание 2
- •Атмосферное давление
- •Задание 3
- •Заработная плата работников
- •Задание 4
- •Задание 5
- •Задание 6
- •Оплата за пользование телефоном
- •Порядок выполнения работы
- •Содержание отчета
- •Линия тренда
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Задание 1
- •Исходные данные
- •Задание 2
- •Исходные данные
- •Задание 3
- •Изменения прибыли фирмы
- •Задание 4
- •Функциональная зависимость
- •Задание 5
- •Функциональная зависимость
- •Порядок выполнения работы
- •Содержание отчета
- •Пример списка
- •Организация ввода, просмотра и поиска данных с помощью форм
- •Сортировка списков
- •Сортировка
- •Фильтрация данных
- •Автофильтр
- •Расширенный фильтр
- •Создание диапазона условий
- •Примеры условий отбора расширенного фильтра
- •Подведение итогов
- •Подведение промежуточных итогов
- •Итоги по фамилиям получателей
- •Сводные таблицы
- •Создание сводных таблиц
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Задание 1
- •Задание 2
- •Планеты солнечной системы
- •Задание 3
- •Исходные данные
- •Задание 4
- •Исходные данные
- •Задание 5
- •Исходные данные
- •Задание 6
- •Исходные данные
- •Порядок выполнения работы
- •Содержание отчета
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Задание
- •Варианты заданий
- •Порядок выполнения работы
- •Содержание отчета
- •Оборудование, инструменты и приборы.
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Раздел 3. Visual basic for Application (vba).
- •Правила построения блок–схемы алгоритма
- •Виды алгоритмов
- •Лабораторная работа №14 Редактор vba. Создание формы проекта с элементами управления. Создание линейной программы.
- •Теоретическая часть
- •Оборудование, инструменты и приборы.
- •Варианты заданий
- •Варианты заданий
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №15 Редактор vba. Условный оператор. Подпрограммы
- •Теоретическая часть
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Варианты заданий
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 16 Редактор vba. Оператор множественного ветвления
- •Теоретическая часть
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Варианты заданий
- •Порядок выполнения работы
- •Содержание отчета
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Варианты заданий
- •Порядок выполнения работы
- •Содержание отчета
- •Программная реализация метода бисекции
- •”Задайте интервал, содержащий один корень”
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Редактор vba. Оператор цикла со счетчиком
- •Теоретическая часть
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Варианты заданий
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 20 Редактор vba. Отладка программ. Пошаговое выполнение программы
- •Теоретическая часть
- •Кнопки панели инструментов Debug
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Варианты заданий
- •Порядок выполнения работы
- •Для пошагового выполнения программы на этапе суммирования значений элементов массива необходимо выполнить следующие действия:
- •Содержание отчета
- •Контрольные вопросы
- •3. Присваивание значений переменным
- •4. Задание ранжированной переменной
- •6. Определение и вычисление функции
- •7. Символьные преобразования.
- •8. Работа с векторами и матрицами:
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Задание 1
- •Варианты заданий
- •Задание 2
- •Варианты заданий
- •Задание 3
- •Варианты заданий
- •Задание 4
- •Варианты заданий
- •Задание 5
- •Контрольные вопросы
- •Лабораторная работа № 22 Построение графиков функций
- •Теоретическая часть
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Задание 1
- •Варианты заданий
- •Задание 2
- •Варианты заданий
- •Задание 3
- •Варианты заданий
- •Задание 4
- •Варианты заданий
- •Задание 5
- •7. Символьное решение систем уравнений
- •Задание 2
- •Варианты заданий
- •Задание 3
- •Варианты заданий
- •Задание 4
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Задание 1
- •Варианты заданий
- •Задание 2
- •Варианты заданий
- •Задание 3
- •Выполнение линейной регрессии
- •Реализация линейной регрессии общего вида
- •3. Одномерная линейная аппроксимация
- •4. Одномерная сплайн-интерполяция
- •5. Функции сглаживания данных
- •6. Функции предсказания данных.
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Задание 1
- •Варианты заданий
- •Задание 2
- •Оборудование, инструменты и приборы
- •Варианты заданий
- •Задание1
- •Варианты заданий
- •Задание 2
- •Варианты заданий
- •Задание 3
- •Варианты заданий
- •Порядок выполнения работы.
- •Содержание отчета.
- •Контрольные вопросы
- •Раздел 5. Тесты
- •Список литературы Содержание
Порядок выполнения работы
Ознакомиться с программной реализацией решения задач с использованием оператора цикла со счетчиком (примеры №1, №2, №3, №4).
Сохранить разработанные проекты и выполнить программы примеров №1, №2, №3, №4
Пример 1. Задача сравнения двух одномерных числовых массивов с целью нахождения равных по значению элементов в этих массивах.
Private Sub CmdРешение_Click()
Dim m1 As Variant, m2 As Variant, _
Значения() As Integer, _
Номера_1() As Integer, Номера_2() As Integer, _
i As Integer, j As Integer, k As Integer
m1 = Array(3, 1, 2, 0, 4)
m2 = Array(2, 1, 5)
List1.List = m1
List2.List = m2
k = 0
For i = 0 To 4
For j = 0 To 2
If m1(i) = m2(j) Then
k = k + 1
ReDim Preserve Значения(1 To k), _
Номера_1(1 To k), Номера_2(1 To k)
Значения(k) = m1(i)
Номера_1(k) = i + 1: Номера_2(k) = j + 1
End If
Next j
Next i
If k = 0 Then
MsgBox "Равных значений нет"
Else
List3.List = Значения
List4.List = Номера_1
List5.List = Номера_2
End If
End Sub
Пояснения.
В примере 1 реализовано решение задачи сравнения двух одномерных числовых массивов с целью нахождения равных по значению элементов в этих массивах.
На форму помещены пять списковых полей. После запуска программы на выполнение и щелчка на командной кнопке «Решение» в первые два поля выводятся сравниваемые массивы чисел, а в другие три поля выводится искомая информация.
Массивы чисел формируются (заполняются) с помощью функции Array. Эта функция создает одномерный массив. По умолчанию (а в данном примере задано явно) элементы этого массива имеют универсальный тип Variant, т.е. элементам массива могут быть даны как числовые (целые или вещественные), так и символьные (строковые) значения. При объявлении в инструкции Dim такого рода массивов для них указывается только имя. Не требуется указание не только крайних индексов элементов массивов, но даже пустых круглых скобок. По умолчанию элементы массива функцией Array всегда нумеруются с ноля.
Поиск равных по значению элементов массивов организован в программе с помощью двух операторов цикла For…Next: внешнего – по элементам первого массива и внутреннего (вложенного) – по элементам второго массива. При равенстве значений элементов этих массивов увеличивается на единицу счетчик количества таких элементов. Далее в инструкции ReDim на это количество формируются (разворачиваются) динамически объявленные массивы, в которые затем помещаются найденные равные значения соответствующих номера элементов в первом втором массивах со смещением на единицу в плюс. Этим достигается более естественное отражение расположения элементов в массивах, начиная с первого, а не с нулевого (как это по умолчанию задается функцией Array).
Пример2. Задача поиска минимального элемента в одномерном числовом массиве.
Private Sub CmdРешение_Click()
Dim x As Single, a(1 To 10) As Single, _
i As Integer, jmin As Integer
x = CSng(Text1.Text)
' Randomize
For i = 1 To 10
a(i) = Int(x * Rnd)
Next
List1.List = a
jmin = 1
For i = 2 To 10
If a(i) < a(jmin) Then jmin = i
Next
Text2.Text = jmin
Text3.Text = a(jmin)
End Sub
Пояснения.
В примере 2 реализовано решение задачи поиска минимального элемента в одномерном числовом массиве (конкретно – номера элемента с минимальным значением).
В программе массив объявлен в инструкции Dim состоящим из 10-ти элементов с номерами от 1 до 10. Массив заполняется в цикле случайными числами с помощью специальной функции (датчика случайных чисел) Rnd (сокращение англ. “Randomize” – случайность, вероятность). Функция Rnd, вызываемая без параметра, выдает (имеет при каждом очередном обращении к ней) значение, которое равномерно распределено (равновероятно) в интервале от 0 до 1. Для получения чисел из любого интервала на основе функции Rnd строятся специальные расчетные формулы. В данном примере множителем перед этой функцией задается максимальное значение случайных чисел (верхняя граница интервала). Это значение считывается с соответствующего поля формы. После получения очередного случайного числа его значение для удобства восприятия округляется до целого значения функцией Int. После цикла формирования массив случайных чисел выводится в списковое поле формы.
Примечание. Для получения в массиве при каждом обращении к данной программе другой последовательности случайных чисел возможен предварительный (перед циклом заполнения массива) вызов стандартной подпрограммы Randomize, не имеющей параметров. Такое действие было обязательным при работе на платформе операционной системы MS-DOS в среде Турбо – ПАСКАЛЬ, т.е. при программировании на языке ПАСКАЛЬ. Но, как практика, при программировании на языке VBA вызов подпрограммы Randomize не является обязательным: и без выполнения этой подпрограммы каждый раз формируется новая последовательность случайных чисел. Поэтому можно или не использовать эту подпрограмму , или, если ее вызов имеется в программе, для подтверждения вышесказанного выключить выполнение, набрав апостроф перед именем подпрограммы (говорят – «закомментировать» вызов, т.е. превратить эту строку программы в комментарий).
После заполнения и вывода массива чисел выполняется собственно поиск номера элемента массива с минимальным значением (переменная j min). Предварительно номеру присваивается значение1 (это рабочая гипотеза – первый элемент может иметь минимальное значение). Затем организуется цикл сравнения элементов массива, начиная со второго элемента, с элементом, имеющим минимальное значение. При нахождении элемента, имеющего меньшее значение, номер этого элемента запоминается и дальнейшее сравнение выполняется относительно этого элемента. В итоге переменная j min получает значение номера искомого элемента массива.
В конце программы номер элемента массива, имеющего минимальное значение, и это значение выводится в соответствующие поля формы.
Пример 3. Задача сортировки массива чисел по возрастанию методом перестановки.
Private Sub Поиск_мин_элем( _
ByRef b() As Single, _
ByVal jn As Integer, ByVal jk As Integer, _
ByRef jmin As Integer)
Dim j As Integer
jmin = jn
For j = jn + 1 To jk
If b(j) < b(jmin) Then jmin = j
Next
End Sub
Private Sub Перестановка(ByRef x As Single, _
ByRef y As Single)
Dim z As Single
z = x
x = y
y = z
End Sub
Private Sub CmdРешение_Click()
Dim n As Integer, imin As Integer, _
k As Integer, a(1 To 10) As Single
n = CInt(Text1.Text)
Randomize
For k = 1 To n
a(k) = Int(100 * Rnd)
Next
List1.List = a
For k = 1 To n - 1
Поиск_мин_элем a, k, n, imin
Перестановка a(k), a(imin)
Next
List2.List = a
End Sub
В примере 3 реализовано решение задачи сортировки массива чисел по возрастанию методом перестановки. В этой задаче выделяются две подзадачи: поиск минимального по значению элемента (его номера) и перестановка (обмен значениями) начального элемента в очередном сортируемом подмассиве и элемента с минимальным значением, номер которого определен. Номер начального элемента меняется в цикле от первого до предпоследнего в исходном неупорядоченном массиве.
Сортировка выполняется структурированной программой. В ее структуру входят две вспомогательные подпрограммы с именами «Поиск_мин_элем» и «Перестановка». В них дано описание выполнения выделенных двух подзадач. В подпрограмме «Поиск_мин_элем» формализована суть предыдущего примера (см. файл Пример2.xls).
Особенностью передачи в эту вспомогательную подпрограмму массива чисел (при вызове подпрограммы на выполнение – это фактический параметр с именем «a»), как показала практика, является необходимость описывать в заголовке этой подпрограммы соответствующий формальный параметр с именем «b» как динамический массив (не указывать в скобках диапазон номеров элементов, хотя фактический массив явно задан с фиксированным количеством элементов) и придавать этому параметру “b” статус именно ByRef (передача посредством ссылки на адрес (зону) в памяти, где размещен фактический массив “a”).
В данном примере в главной подпрограмме сортируемый массив объявлен в инструкции Dim состоящим из 10-ти элементов с номерами от 1 до 10. В программе предусмотрен ввод конкретного количества элементов в этих пределах. Далее подобно предыдущему примеру заполняется случайными числами из интервала [0,100] и выводится в списковое поле формы неупорядоченный массив чисел. После этого выполняется цикл сортировки. В этом цикле вызываются на выполнение две названные выше вспомогательные подпрограммы. В итоге получается упорядоченный по возрастанию массив чисел. Он выводится в соответствующее списковое поле формы.
Недостатком использования массива с фиксированным количеством элементов является вывод массива полностью даже в том случае, когда он заполнялся частично (незаполненные элементы имеют значение ноль).
Пример 4. Задача сортировки для динамического массива чисел.
Private Sub Поиск_мин_элем( _
ByRef b() As Single, _
ByVal jn As Integer, ByVal jk As Integer, _
ByRef jmin As Integer)
Dim j As Integer
jmin = jn
For j = jn + 1 To jk
If b(j) < b(jmin) Then jmin = j
Next
End Sub
Private Sub Перестановка(ByRef x As Single, _
ByRef y As Single)
Dim z As Single
z = x
x = y
y = z
End Sub
Private Sub CmdРешение_Click()
Dim n As Integer, imin As Integer, _
k As Integer, a() As Single
n = CInt(Text1.Text)
Randomize
For k = 1 To n
ReDim Preserve a(1 To k)
a(k) = Int(100 * Rnd)
Next
List1.List = a
For k = 1 To n - 1
Поиск_мин_элем a, k, n, imin
Перестановка a(k), a(imin)
Next
List2.List = a
End Sub
В примере 4 реализовано решение той же задачи сортировки, но сортируемый массив чисел формируется динамически, т.е. в него можно включить любое количество элементов, а не ограниченное числом 10, как это принято в предыдущем примере сортировки. Желаемое количество элементов в динамическом массиве задается (вводится с формы проекта). В главной подпрограмме именно на это количество поэлементно в цикле формируется массив (повторно объявляется инструкцией ReDim его размерность и заполняются случайными числами из интервала [0,100] очередные элементы). При выводе неупорядоченного и упорядоченного массивов чисел в списковые поля формы в случае, когда размер этих полей по вертикале недостаточен для отображения всех элементов массивов, в этих полях автоматически создается полоса прокрутки.
Примечание. В программе (в ее главной и вспомогательной подпрограммах) задаваемое количество элементов массива и другие количественные показатели объявлены в инструкциях Dim переменными типа Integer (целый). Переменные такого типа могут принимать значения в пределах интервала [-32768,32767]. Ограничение 32767 надо учитывать при задании конкретного количества элементов сортируемого массива. При сортировке очень большого количества чисел многие из них будут иметь значение менее 0,5. После округления с помощью функции Int эти числа примут значение 0. Множество этих нолей будет выведено в начале списковых полей на форме. Чтобы увидеть дробные числа и со значениями менее 0,5, надо исключить в тексте главной подпрограммы обращение к функции Int.
3. Завершить работу щелчком ЛКМ на пункте «Завершение сеанса <имя группы>».