- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 1. Алгоритмизация вычислительных процессов Этапы решения инженерных задач на пк
- •1.1. Алгоритм и его свойства
- •Типы алгоритмических структур
- •1.2. Линейные и разветвляющиеся алгоритмы
- •1.3. Простые циклические алгоритмы
- •1.4. Циклические алгоритмы обработки массивов
- •Двумерные массивы
- •А) ввод по строкам в) ввод по столбцам
- •Глава 2. Система программирования Visual Basic for Applications (vba)
- •2.1. Основные положения
- •2.2. Некоторые определения
- •Стандартный модуль (Module)
- •2.3. Запуск и элементы окна редактора vba
- •Глава 3. Пример создания проекта в vba и типы данных
- •3.1. Порядок действий на пк при создании проекта
- •3.2. Элементы языка vba
- •Данные в vba
- •3.3. Описание переменных
- •Глава 4. Выражения в vba и ввод – вывод данных
- •4.1. Выражения в vba
- •4.2. Операторы присваивания и способы ввода данных Оператор присваивания
- •Способы ввода данных
- •Для ввода
- •4.3. Способы вывода данных
- •Глава 5. Организация разветвляющихся программ
- •5.1. Операторы управления goto, if
- •Условный оператор управления if
- •5.3. Оператор выбора Select Case
- •Глава 6. Организация циклических программ в vba
- •6.1. Простые циклические программы с оператором if
- •6.2. Оператор цикла For ... Next
- •6.3. Операторы циклов типа Do (выполнить)
- •Использование операторов Do While и Do Until для организация цикла с защитой входа
- •Использование операторов Do While и Do Until для организация цикла с свободным входом в цикл (с послеусловием) Организация цикла с проверкой условия в конце цикла
- •Глава 7. Массивы данных в vbа
- •7.2. Примеры обработки одномерных массивов
- •Сортировка числовых одномерных массивов
- •Алгоритм сортировки одномерного массива по возрастанию
- •7.3. Двумерный массив
- •Программа
- •Глава 8. Пользовательские процедуры типа Sub и Function в vba
- •8.1. Подпрограммы
- •Вызов подпрограммы процедуры Sub
- •2 Способ.
- •8.3. Подпрограмма - процедура Function
- •Вызов подпрограммы - процедуры Function
- •Глава 9. Решение оптимизационных задач
- •9.1. Обработка электронных таблиц в среде vba
- •9.2. Применение процедуры Поиск решения для решения линейных оптимизационных задач
- •9. 3. Подготовка эт
- •Линейные, разветвляющиеся и циклические алгоритмы
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Алгоритмы обработки одномерных и двумерных массивов
- •Оформление протокола лабораторной работы
- •Задание №1. Создать простейший проект ″Приветствие″ в vba:
- •1. Разработка интерфейса пользователя.
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Линейные программы в vba
- •Пример составления программы для нулевого варианта задания
- •Private Sub CommandButton1_Click() ′ Заголовок процедуры отклика
- •Разработка проектов в vba по разветвляющимся программам
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Циклические программы в vba
- •End Sub ‘ Конец процедуры отклика
- •End Sub ‘ Конец процедуры отклика
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Обработка одномерных массивов в vbа
- •Порядок выполнения задания №1.
- •Пример выполнения лабораторной работы
- •3. Интерфейс на рис. Л7.1. Вывод результата решения по условию нулевого варианта не в окно TextBox1, а в окно отладки Immediate Window.
- •4. Процедура отклика кнопки 1:
- •Результат решения в окне отладки Immediate Window (рис. Л7.3).
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Дайте определение одномерного массива.
- •Обработка двумерных массивов в vbа
- •Порядок выполнения задания №1.
- •Пример выполнения лабораторной работы
- •Оформление протокола лабораторной работы
- •Программная единица
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Обработка эт в среде vbа
- •Оформление протокола лабораторной работы
- •Приложение 1. Обозначения блоков в схемах алгоритмов
- •Литература
- •Содержание
End Sub ‘ Конец процедуры отклика
Пример процедуры отклика кнопки 2 (2-й задачи нулевого варианта).
Private Sub CommandButton2_Click() ‘ Заголовок процедуры отклика
Dim x, y, xn, xk, dx As Single ‘ Описание вещественных переменных
Dim a As Integer ‘ Описание целых переменных
Const t = 2.65 ‘ Присвоение константе t вещественного числа 2.65
xn = 0 : xk= 2.2: dx= 0.2 ‘ Присвоение значения xn, xk, dx
a = 3 ‘ Присвоение значения a
for x=xn to xk step dx ‘ Оператор цикла for
1: y = (3.5 + x) / (x + 1) – (2 ^ x + a) / Sin(x + 2) – t ‘ Вычисление У
Debug.Print "x= "; x, "y= "; y ‘ Вывод х, у в окно отладки Immediate Window
Next x ‘ Конец области действия DO
textBox1.text= “см. Immediate “
End Sub ‘ Конец процедуры отклика
Пример процедуры отклика кнопки 3 (3-й задачи нулевого варианта).
Private Sub CommandButton3_Click() ‘ Заголовок процедуры отклика
Dim an, S, e As Single ‘ Описание вещественных переменных
Dim n As Integer ‘ Описание целых переменных
e = 0.001 ‘ Присвоение значения
S = 0: n = 1 ‘ Присвоение начального значения
an = n / (n ^ 3 + n ^ 2 + 1) ‘ Вычисление начального an
Do While an >= e ’ Оператор цикла Do While ….. Loop
S = S + an ‘ Получение суммы
n = n + 1 ‘ Изменение n
an = n / (n ^ 3 + n ^ 2 + 1) ‘ Вычисление текущего an
Loop ‘ Конец области действия Do
TextBox2.Text =”S= “ & Format(S, "##0.##") & “n= “ & n ‘ Вывод в TextBox2
End Sub
Оформление протокола лабораторной работы
Отчет оформить на рабочем листе 1.
В заголовке лабораторной работы записать ее номер и цель проведения.
Записать условия индивидуальных заданий и порядок выполнения.
На листе 1 записать результаты решения.
Записать проект в личную папку под именем Лаб. 6.
Подготовиться для ответа на контрольные вопросы при защите лабораторной работы.
Контрольные вопросы
Дайте определение циклического алгоритма по переменной.
Что такое параметр цикла?
Что представляет собой тело цикла?
В чем смысл итерационного циклического алгоритма?
Как организовать циклическую программу с помощью оператора IF?
Когда используется оператор цикла FOR…next?
Как функционирует оператор цикла FOR…next ?
В чем отличие первой формы от второй оператора цикла FOR?
Как выполняется структура оператора Do While... loop ?
Как выполняется структура оператора Do ... loop While?
Как выполняется структура оператора Do Until... loop ?
Как выполняется структура оператора Do ... loop Until ?
Л а б о р а т о р н а я р а б о т а № 7
Обработка одномерных массивов в vbа
Цель работы: разработка проектов по обработке одномерных массивов. При подготовке к работе изучить теоретический материал (с.29 – 31).
Задание №1. Задан массив А=(аi), i=1,2,...,n. Разработать проект по обработке элементов массива, значения которых выбрать самостоятельно. Варианты заданий приведены в табл. Л7.1, в которой предусмотрен способ вывода результатов решения.
Таблица Л7.1 — Варианты для задания №1
Вар. № |
Определить |
Способ вывода результатов |
Число элементов |
0 |
Упорядочить элементы массива по возрастанию и вывести в окно отладки |
Immediate Window |
6 |
1 |
Найти минимальный и максимальный элементы, а также их индексы |
Immediate Window |
9 |
2 |
Для нечетных элементов найти сумму элементов при ai > d где d - заданное число |
TextBox1 |
7 |
3 |
Определить сумму значения индексов всех отрицательных элементов |
MsgBox |
8 |
4 |
Найти произведение элементов, удовлетворяющих условию с< ai < d , где с, d - заданные числа |
Immediate Window |
7 |
5 |
Вывести на экран четные элементы массива и их сумму |
Immediate Window |
7 |
6 |
Определить минимальный элемент при условии аi 0 |
TextBox1 |
8 |
7 |
Упорядочить элементы массива по убыванию и вывести на экран |
Immediate Window |
9 |
8 |
Найти сумму индексов элементов при условии аi > 0 |
TextBox1 |
10 |
9 |
Вычислить сумму первых четырех четных элементов массива |
MsgBox |
12 |
10 |
Найти разность и сумму максимального и минимального элементов |
Immediate Window |
6 |
11 |
Найти число нулевых элементов и сумму их индексов |
Immediate Window |
7 |
12 |
Найти число ненулевых элементов и сумму их индексов |
Immediate Window |
6 |
13 |
Определить максимальный элемент из пяти последних элементов |
MsgBox |
9 |
14 |
Найти минимальный элемент среди первых 6 элементов |
TextBox1 |
8 |
15 |
Вычислить произведение нечетных элементов массива при ai > d |
MsgBox |
8 |
16 |
Определить сумму четных элементов массива |
TextBox1 |
9 |
17 |
Определить число положительных и отрицательных элементов |
TextBox1 |
8 |
18 |
Вычислить сумму первых восьми элементов при аi < с |
TextBox1 |
9 |
19 |
Вычислить произведение индексов всех положительных элементов |
TextBox1 |
7 |
20 |
Вычислить сумму индексов всех отрицательных элементов |
MsgBox |
8 |
21 |
Найти сумму индексов минимального и максимального элементов |
Immediate Window |
7 |
22 |
Вычислить произведение последних пяти нечетных элементов |
TextBox1 |
7 |
23 |
Упорядочить по возрастанию первые 10 элементов и вывести на экран |
Immediate Window |
8 |
24 |
Упорядочить по убыванию последние 10 элементов |
Immediate Window |
9 |
25 |
Вывести на экран индексы элементов при xi > c |
Immediate Window |
10 |
26 |
Вывести на экран индексы элементов xi < d |
Immediate Window |
12 |
27 |
Вычислить сумму и произведение четных элементов |
Immediate Window |
6 |
28 |
Найти число элементов, удовлетворяющих условию 4 < ai <8 |
MsgBox |
7 |
29 |
Определить суммы четных и нечетных элементов |
Immediate Window |
6 |
30 |
Упорядочить элементы массива по возрастанию и вывести на экран |
Immediate Window |
9 |