![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Технология выполнения работы. Содержание отчета ⇐ ПредыдущаяСтр 4 из 4
Содержание отчета
Вопросы для защиты работы
Лабораторная работа № 3. Циклические алгоритмы. Работа с массивами Время выполнения 8 часов Цель работы Научиться использовать язык программирования Visual Basic for Applications (VBA) для разработки модулей в Excel на основе циклических алгоритмов. Задачи лабораторной работы После выполнения данной работы студент должен знать и уметь:
Перечень обеспечивающих средств Для обеспечения выполнения работы необходимо иметь компьютер со следующим математическим обеспечением: операционная система Windows XP, электронные таблицы Excel с приложением в виде языка Visual Basic for Applications. Общие теоретические сведения VBA – это язык объектно-ориентированного программирования. Основными парадигмами являются объект, свойство, метод, событие, класс и семейство объектов. Объект – это инкапсуляция данных вместе с кодом, предназначенным для их обработки. Семейство – объект, содержащий несколько других объектов того же типа. Классы – это проект, на основе которого будет создан объект, т.е. класс определяет имя объекта, его свойства и действия, над ним выполняемые. А каждый объект, свою очередь, является экземпляром класса. Методы – это действия, выполняемые над объектом. Свойства – это атрибут объекта, определяющий его характеристики: размер, цвет, положение на экране или состояние (доступность, видимость). События – это действия, распознаваемые объектом.
Пример 1. В массиве чисел М(10) очистить клетки с нулевыми значениями.
Запись программы в виде блок-схемы (рис. 1) и визуальное представление ввода данных и вывода результата (рис. 2): Рисунок 1. Электронная таблица с исходными данными
Рисунок 2. Результат работы программы
Пример 2. Выявить, есть ли в массиве число 10? Если есть, на каком месте оно стоит (известно, что число может встретиться несколько раз).
Программный код Sub Число() Dim A As Variant Dim i, k As Integer i = 1 k = 0 A = Range("A1:A10") For i = 1 To 10 If A(i, 1) = 10 Then MsgBox ("Номер ячейки, содержащей число 10 - " & i) k = k + 1 End If Next i MsgBox ("Число 10 встретилось следующее количество раз - " & k) End Sub
Пример 3. Вычислить произведение ряда:
Программный код Sub Main() Dim x, n, res As Double x = 3 n = 4 res = 1 For i = 2 To n res = res * (i * x / (2 * i - 1)) Next i MsgBox "res=" & CStr(res) End Sub Private Sub CommandButton4_Click() Dim x, n, res As Double x = Cells(36, 1) n = Cells(36, 2) res = 1 For i = 2 To n res = res * (i * x / (2 * i - 1)) Next i Cells(38, 2) = res End Sub
Визуальное представление ввода данных и вывода результата (рис. 3): Рисунок 3. Результат работы программы
Пример 4. Найти максимальное значение из значений элементов последовательности x1, x2, …, x20 (одномерного массива), используя оператор do while…loop
Программный код Private Sub CommandButton5_Click() Dim x(20) As Double Dim res, res1 As Double i = 1 res = 0 Do While i < 20 x(i) = Cells(44 + i, 1) If x(i) > res Then res = x(i) i = i + 1 Loop Cells(47, 4) = res End Sub
Визуальное представление ввода данных и вывода результата (рис. 4):
Рисунок 4. Результат работы программы
Пример 5. Задан двумерный массив F(4 to 85, 2 to 6). Найти сумму элементов этого массива.
Программный код Private Sub CommandButton1_Click() Dim f(6) As Integer For j = 4 To 8 res = 0 For i = 2 To 6 f(i) = Cells(j, i) res = res + f(i) Next i Cells(j, 7) = res Next j End Sub
Пример 6. Найти в процедуре сумму в каждом столбце.
Программный код Sub kol(ByRef x() As Integer, ByVal n As Integer, ByVal m As Integer) Dim i, j, k(2) As Integer For j = 0 To m k(j) = 0 For i = 0 To n k(j) = k(j) + x(i, j) Next i MsgBox "k(j)=" & CStr(k(j)) Next j End Sub Sub commandbutton1_click() Dim i, j, n, m, x(4, 2) As Integer Dim k(2) As Integer n = 4 m = 2 For i = 0 To n For j = 0 To m x(i, j) = Cells(i + 1, j + 1) Next j Next i kol x, n, m End Sub
Пример 7. В процедуре найти сумму элементов 1 и 3 строки и записать их на место элементов 1 строки.
Программный код Sub kol(ByRef x() As Integer, ByVal n As Integer, ByVal m As Integer, k() As Integer) Dim i, j As Integer For j = 0 To m x(1, j) = x(1, j) + x(3, j) Next j End Sub Sub commandbutton1_click() Dim i, j, n, m, x(4, 4) As Integer Dim k(2) As Integer n = 4 m = 4 For i = 0 To n For j = 0 To m x(i, j) = Cells(i + 1, j + 1) Next j Next i kol x, n, m, k For j = 0 To m For i = 0 To n Cells(i + 7, j + 1).Value = x(i, j) Next i Next j End Sub Варианты заданий Задание 1. Разработать алгоритм решения задачи и составить программу согласно варианта.
Задание 2. По заданным значениям a, x и n найти сумму ряда.
Задание 3. Решить задачу для своего варианта на одномерный массив двумя способами: с данными на рабочем листе и вводимыми по тексту программы.
Задание 4. Решить задачу для своего варианта на двумерный массив двумя способами: с данными на рабочем листе и вводимыми по тексту программы.
Задание 5. Решить задачи по условию 3 и 4 задания с использованием подпрограмм. |
Последнее изменение этой страницы: 2019-05-08; Просмотров: 269; Нарушение авторского права страницы