- •Лабораторный практикум по информатике
- •Часть 2
- •Содержание
- •Введение
- •Методические рекомендации по подготовке к лабораторным работам
- •Варианты задания
- •Технология выполнения работы
- •Разработка приложения
- •Создание интерфейса приложения
- •Определение функциональности приложения.
- •Конструирование формы
- •Множественный выбор
- •Конструирование формы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Варианты заданий
- •Технология выполнения работы
- •Варианты заданий
- •Технология выполнения работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Составление линейных алгоритмов
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты заданий
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Цель работы
- •Технология выполнения работы
- •Изучение управляющего элемента CheckBox
- •Изучение управляющего элемента RadioGroup
- •Технология выполнения работы
- •Изучение управляющего элемента ComboBox
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Цель работы
- •Задачи лабораторной работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Изучение управляющего элемента StringGrid
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Метод сортировки выбором
- •Метод сортировки включением
- •Пример использования генератора случайных чисел
- •Пример заполнения массива и вывода его в ListBox1
- •Измерение времени выполнения алгоритма
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Поиск элемента массива на основе линейного просмотра
- •Метод двоичного поиска
- •Технология выполнения работы
- •Вопросы для защиты работы
- •Варианты задания
- •Технология выполнения работы
- •Задание
- •Варианты заданий
- •Технология выполнения работы
- •Перечень обеспечивающих средств
- •Общие теоретические сведения
- •Варианты задания
- •Технология выполнения работы
- •Обращение к программе-функции Mathcad
- •Задание
- •Варианты задания
- •Технология выполнения работы
- •Содержание отчета
- •Вопросы для защиты работы
- •Библиографический список
Технология выполнения работы
Разработать алгоритм для написания программы в виде блок-схемы.
Написать программу.
Протестировать ее с разными исходными данными.
Содержание отчета
Цель работы, условие задачи
Алгоритм в виде блок-схемы.
Исходный текст программы.
Вводимые данные и результаты.
Фрагменты экрана с диалоговыми окнами Excel.
В программе предусмотреть сбойные ситуации (деление на ноль, извлечение квадратного корня из отрицательного числа и т. д.).
Результат работы программы должен иметь наглядный вид.
Вопросы для защиты работы
Какая конструкция у оператора повтора?
Какие операторы разветвления Вы знаете?
Чем заканчивается оператор IF, если в ветке «да» несколько операторов?
Как выглядит полная форма оператора IF?
Как выглядит оператор IF, если в ветке «нет» отсутствуют операторы?
Лабораторная работа № 7 Visual Basic for Applications (VBA). Циклические алгоритмы. Работа с массивами
Время выполнения – 8 часов.
Цель работы
Научиться использовать язык программирования Visual Basic for Applications(VBA) для разработки модулей вExcelна основе циклических алгоритмов.
Задачи лабораторной работы
После выполнения данной работы студент должен знать и уметь:
знать все операторы, используемые в программах;
уметь применять любые из изученных операторов для написания своих модулей;
уметь объяснить написанную программу.
Перечень обеспечивающих средств
Для обеспечения выполнения работы необходимо иметь компьютер со следующим математическим обеспечением: операционная система WindowsXP, электронные таблицыExcelс приложением в виде языкаVisual Basic for Applications.
Общие теоретические сведения
VBA– это язык объектно-ориентированного программирования.
Основными парадигмами являются объект, свойство, метод, событие, класс и семейство объектов.
Объект– это инкапсуляция данных вместе с кодом, предназначенным для их обработки.
Семейство– объект, содержащий несколько других объектов того же типа.
Классы– это проект, на основе которого будет создан объект, т.е. класс определяет имя объекта, его свойства и действия, над ним выполняемые. А каждый объект, свою очередь, является экземпляром класса.
Методы– это действия, выполняемые над объектом.
Свойства– это атрибут объекта, определяющий его характеристики: размер, цвет, положение на экране или состояние (доступность, видимость).
События– это действия, распознаваемые объектом.
Пример 1.
В массиве чисел М(10) очистить клетки с нулевыми значениями.
Запись программы в виде блок-схемы (рис. 1) и визуальное представление ввода данных и вывода результата (рис. 2):
Рисунок 1 – Электронная таблица с исходными данными
Блок - схема |
Программа |
|
Sub ОбнулениеКлетокС_НулевымиЗначениями() For i = 1 To 10 If Cells(i, 1) = 0 Then Cells(i, 1).Clear Next i End Sub |
Рисунок 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(одномерного массива), используя операторdowhile…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(4to85, 2to6). Найти сумму элементов этого массива.
Программный код
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