- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 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. Обозначения блоков в схемах алгоритмов
- •Литература
- •Содержание
Разработка проектов в vba по разветвляющимся программам
Цель работы: освоение операторов безусловной и условной передачи управления, а также оператора выбора. Разработка проектов для решения задач по разветвляющимся программам с применением операторов if и case. При подготовке к работе изучить теоретический материал (с.22 – 26).
Задание № 1. Разработать проект для решения задачи по разветвляющейся программе. Функции для вычисления приведены в табл. Л5.1(вар. 16-30 см. лаб. 1). Порядок выполнения задания 1 приведен ниже. Результатом работы проекта по заданию 1 являются значения У при введенных значениях Х.
Таблица Л5.1 — Варианты к заданию № 1
Функ- ция Усло- вие |
sin(x)
|
cos(x)
|
tg(x)
|
eX
|
ln(x)
|
|
X2.5
|
В оста-льных слу- чаях |
№вар. |
|
|
|
|
|
|
|
|
0 |
+ |
|
+ |
|
+ |
|
+ |
0 |
1 |
+ |
+ |
+ |
+ |
|
|
|
1 |
2 |
+ |
|
+ |
+ |
+ |
|
|
2 |
3 |
+ |
|
|
+ |
+ |
|
|
3 |
4 |
+ |
|
|
|
+ |
+ |
|
4 |
5 |
+ |
|
|
|
|
+ |
+ |
5 |
6 |
+ |
+ |
|
|
|
+ |
+ |
6 |
7 |
|
+ |
+ |
+ |
+ |
|
|
7 |
8 |
|
+ |
|
+ |
+ |
|
+ |
8 |
9 |
|
+ |
|
|
+ |
+ |
|
9 |
10 |
|
+ |
|
|
|
+ |
+ |
10 |
11 |
|
+ |
|
+ |
|
+ |
+ |
11 |
12 |
|
|
+ |
+ |
+ |
|
|
12 |
13 |
|
|
+ |
|
+ |
+ |
|
13 |
14 |
|
|
+ |
|
|
+ |
+ |
14 |
15 |
+ |
|
+ |
|
|
+ |
+ |
15 |
16 |
|
|
|
+ |
+ |
+ |
|
16 |
Задание № 2. Условия 2-го задания при использовании оператора CASE, выбираются из табл. Л5.2. При запуске проекта последовательно вводятся входные данные, а в текстовом окне получаем результаты решения. Например, для нулевого варианта последовательно вводятся числа 1, 2, 3, 4, результатом являются слова один, два, три , четыре.
Таблица Л5.2 — Варианты к заданию № 2
№ вар. |
Вводимые символы |
Выводимая информация |
0 |
1, 2, 3, 4 |
один, два, три , четыре |
1 |
О, Д, Т, Ч |
1, 2, 3, 4 |
2 |
1,2,5,6, 8 |
Январь, Февраль, Май, Июнь, Август |
3 |
Я, Ф, М, И, А |
1месяц, 2месяц, 5месяц, 6месяц, 8месяц |
4 |
1, 2, 3, 4, 5, 6 |
Понед., Втор., Среда,Четверг,Пятница, Суббот. |
5 |
П, В, С, Ч, П, С |
1 день, 2 день, 3 день, 4 день,5 день, 6 день |
6 |
7, 8, 9, 10,11 |
Июль, Август, Сентябрь, Октябрь, Ноябрь |
7 |
И, А, С, О, Н |
7месяц, 8месяц, 9месяц, 10месяц, 11месяц |
8 |
0, 1, 2, 3, 4 |
Черный, Синий, Зеленый, Голубой, Красный |
9 |
Ч, С, З, Г, К |
0 , 1, 2, 3, 4 |
10 |
О, Х, Н, К, Р, Л |
Одесса, Херсон, Николаев, Киев, Ровно, Луцк |
11 |
У, З, М, Б, П |
Украина, Россия, Молдавия, Болгария, Польша |
12 |
S, C, L, E, A |
sin(x), cos(x), ln(x), exp(x), abs(x) |
13 |
Д, В, П, Л, Е |
Днепр, Волга, Прут, Лена , Енисей |
14 |
А, Б, В. Г, Д |
128, 129, 130, 131, 132 |
15 |
1, 2, 3, 4, 5 |
Иванов, Петров, Сидоров, Якушев, Романов |
16 |
И, П, С, Я, Р |
Иванов, Петров, Сидоров, Якушев, Романов |
Порядок выполнения лабораторной работы для задания № 1.
1. Выписать условия индивидуального задания из таблицы Л5.1. Знаком + указаны вычисляемые функции и диапазон изменения Х. Математическая формулировка задачи и данные для ввода х для нулевого варианта записаны ниже.
Х=
-2для первого условия
Х=
2.5для второго условия
Х=
10для третьего условия
Х=35для четвертого условия
Х=25в остальных случаях
Алгоритм решения данной задачи см. глава 5, пример 5.2.
2. Интерфейс пользователя для обоих заданий представлен на рис. Л5.1. Ввод данных выполняется с помощью функции InputBox. Вывод выполняется в окно элемента управления TextBox1 для 1-го задания и TextBox для 2-го задания. Свойства элементов представлены в табл. Л5.3.
Таблица Л5.3 — Таблица свойств элементов
Элемент (Объект ) |
Свойство |
Значение свойства |
Форма 1 |
Caption |
Разветвляющаяся программа |
Надпись (Label1) |
Caption |
Группа и фамилия студента № вар. |
TextBox1 |
Text |
|
TextBox2 |
Text |
|
Кнопка 1 |
Caption |
Запуск 1 программы |
Кнопка 2 |
Caption |
Запуск 2 программы |
Кнопка 3 |
Caption |
Закрыть проект |
Рис.
Л5.2. Работа проекта
Рис.
Л5.1. Интерфейс
3. Составить разветвляющуюся программу решения задачи с использованием оператора if.
Процедура отклика на кнопку CommanButton1
Private Sub CommandButton1_Click() ' Начало процедуры
Dim x As Single, y As Double ' Объявление типов переменных Х и Y
x = Val(InputBox("Введите х")) ' Ввод значения Х
If x < -1 Then ' Начало оператора if ( вычисления у )
y = Sin(x)
ElseIf (2 < x) And (x <= 3) Then
y = Tan(x)
ElseIf (5 < x) And (x <= 20) Then
y = Log(x)
ElseIf x > 30 Then
y = x ^ 2.5
Else
y = 0
End If ' Конец оператора вычисления у
TextBox1.Text = Format(y, "#0.####") 'Вывод с 4-мя знаками после запятой
Debug.Print "x="; x, "y="; y ' Вывод х, у в окно отладки Immediate Window
End Sub ' Конец процедуры
Private Sub CommandButton3_Click() ‘ Процедура закрытия проекта
End
End Sub
4. Активизировать форму и запустить проект командой Run (рис. Л5.2). Щелкая по кнопке запуск 1-й программы, ввести значение х равное –2. Щелкнуть ОК и записать результат. Аналогично выполнить для х=2.5; х=10; х=35 и х=25. Закрыть проект и вывести окно Immediate Window ( команды View, Immediate Window). Выписать и сравнить полученные результаты.
Выполнение задания 2
Интерфейс прежний. Ввод данных выполняется с помощью функции InputBox. Вывод выполняется в окно элемента управления TextBox2. Свойства элементов представлены в табл. Л5.3.
По заданному условию варианта составить программу решения.
Private Sub CommandButton2_Click()
Dim x As Single, y As String 'Объявление типов переменных Х и Y
x = Val(InputBox(" Введите заданный символ")) ' Ввод текущего символа
Select Case x ' Начало оператора Select Case
Case 1: TextBox2.Text = " один " ' Если х=1
Case 2: TextBox2.Text = " два " ' если x=2
Case 3: TextBox2.Text = " три " ' если x=3
Case 4: TextBox2.Text = " четыре " ' если x=4
Case Else: TextBox2.Text = " Ошибочный ввод" ' в остальных случаях
End Select ' Конец оператора Select
y = TextBox2.Text
Debug.Print "символ ="; x; " результат= "; y ' Вывод в окно отладки
End Sub
Решение задачи выполняется щелчком по кнопке Запуск 2-й программы. Как и в первом задании осуществить ввод значение 1,2,3,4 и записать результаты. Закрыть проект и открыть отладочное окно Immediate Window . Сравнить результаты.