- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 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. Обозначения блоков в схемах алгоритмов
- •Литература
- •Содержание
9.2. Применение процедуры Поиск решения для решения линейных оптимизационных задач
Процедура поиска решения позволяет найти оптимальное значение формулы содержащейся в ячейке, которая называется целевой. Эта ячейка связана с влияющими на нее другими ячейками, на значения которых могут накладываться ограничения. Изменяя значения влияющих ячеек, мы можем получить мин. или мах. значение целевой. Например, можно получить максимальную прибыль при наложенных ограничениях на выпуск объема продукции.
Постановка задачи оптимизации
Производится выпуск колбас двух типов – Краковской (переменная х1) и Московской (переменная х2), с определенной прибылью за 1кг. На каждый тип колбасы требуется необходимое количество основного сырья 1-го и 2-го сорта. Для выпуска 1кг. Краковской колбасы требуется 0,4 кг сырья 1-го сорта и 0,6кг. 2-го сорта. Соответственно для Московской 0,8кг. и 0,2кг. При этом запас основного сырья ограничен, а также наложены ограничения на выпуск колбас обеих типов. Все это представим таблицей 9.2:
Таблица 9.2 – данные для производства колбас
Основное сырье |
Краковская (х1) |
Московская (х2) |
Запасы сырья (кг) |
1-го сорта |
0,4 |
0,8 |
2000 |
2-го сорта |
0,6 |
0,2 |
1500 |
Прибыль гр/ кг. |
2 |
4 |
|
Выпустить не меньше |
600кг. |
200кг. |
|
Выпустить не больше |
1000кг. |
800кг. |
|
В задаче требуется определить значения х1 и х2 таким образом, чтобы прибыль была максимальной.
Математическая формулировка задачи.
Запишем формулу =х1*2 +x2*4 в целевой ячейке, в которой нужно получить максимальное значение.
Запишем ограничения по сырью:
0,4*x1+0,8*x2<= 2000
0,6*x1+0,2*x2<= 1500
Запишем ограничения по выпуску продукции:
x1 >= 600 (не меньше )
x2 >= 200 (не меньше )
х1 <= 1000 (не больше )
x2 <= 800 (не больше )
9. 3. Подготовка эт
Расположим данные в ЭТ (рис. 9.4). Режим листа – отображение формул.
В ячейках B4; С4 записываем нули (начальные значения х1 и х2).
Целевую формулу = 2*B4 + 4*C4 запишем в ячейку В5.
Ограничения по сырью располагаем в диапазоне В8:С9.
Ограничения по выпуску колбас располагаем в диапазоне В12:С15.
Подключить (если не был подключен) пакет «Поиск решения» командами: Сервис, Надстройки и установить флажок Поиск решения, ОК.
Рис.
9.4. Расположение данных в ЭТ
Работа с пакетом «Поиск решения».
Выполнить команды: Сервис, Поиск решения. В появившемся окне заполнить данные (рис. 9.6):
Установить целевую ячейку: B5 равной максимальному значению
Изменяя ячейки: B4:С4
В поле Ограничения необходимо ввести ограничения на сырье
B8:B9<=C8:C9
Для этого:
Щелкнуть кнопку Добавить. Появляется окно Добавление ограничения
В поле Ссылка на ячейку щелкнуть кнопку снятия окна и мышкой выделить ячейки В8:В9. Вернуться к окну Добавить.
Выбрать знаки
В поле ограничения снять окно, мышкой выделить ячейки С8:С9 и вернуться к окну с названием Добавить (рис. 9.5).
Рис.
9.5. Ввод ограничений на сырье
Аналогично нужно выполнить ввод ограничений по выпуску продукции В12:В13С12:С13
В14:В15С14:С15
6. После ввода всех ограничений щелкнуть кнопку ОК.
Рис.
9.6. Окно Поиск решения
В окне Поиск решения щелкнуть кнопку Выполнить (рис. 9.6).
Щелкнуть ОК в появившемся окне Результаты поиска решения.
Перевести ЭТ в режим отображения численных значений формул (команды - Сервис, Параметры, Вкладка Вид, снять флажок Формулы).
Результаты решения в ячейках ЭТ:
В4 - выпуск Краковской колбасы (х1)=1000кг.
С4 - выпуск Московской колбасы (х2)= 800кг.
В5 - максимальная величина прибыли= 5200гр.
Лабораторные работы в первом семестре
При подготовке к каждой лабораторной работе необходимо:
Ознакомиться с содержанием лабораторной работы.
Проработать теоретический материал, ссылка на который дана в начале лабораторной работы.
Ответить на контрольные вопросы, приведенные в конце лабораторной работы (самоконтроль).
Перед лабораторной работой и в ходе ее необходимо:
Получить допуск к лабораторной работе, ответив на контрольные вопросы преподавателя.
Выполнить лабораторную работу и записать ее результаты в личную папку на ПК.
Оформить отчет о лабораторной работе и защитить его у преподавателя.
Вариант задания выбирают по двум последним цифрам зачетной книжки студента согласно таблице Л1.0. Например, две последние цифры номера зачетной книжки 57. Пересечение 5-й строки и 7-го столбца указывает на выбор 27-го варианта.
Таблица Л1.0 — Выбор варианта задания по зачетной книжке
Предпоследняя |
Последняя цифра номера зачетной книжки | |||||||||
цифра номера |
| |||||||||
зачетн. книжки |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
30 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
2 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
3 |
30 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
4 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
5 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
6 |
30 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
8 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
9 |
30 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
Л а б о р а т о р н а я р а б о т а № 1