- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 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. Обозначения блоков в схемах алгоритмов
- •Литература
- •Содержание
Двумерные массивы
Двумерный массив данных состоит из строк и столбцов. Например, двумерный массив, состоящий из двух строк и двух столбцов, математически запишется так: A=a(i,j) , i =1,2; j=1,2 , где А – имя массива; a(i,j) – элемент двумерного массива в общем виде; i - индекс, указывающий номер строки; j - индекс, указывающий номер столбца. Для обращения к конкретному элементу массива необходимо указать числовое значение его индексов. В данном случае массив можно представить в виде четырех ячеек. Каждая ячейка имеет свое имя и как видно из рис. 1.11 числа в ячейки можно вводить по строкам или столбцам. Для этого организуется сложный цикл с параметрами i и j . Если на внешнем цикле изменяется параметр i , а на внутреннем параметр j, то ввод чисел выполняется по строкам (рис. 1.12,а). Если i и j поменять местами, то ввод выполняется по столбцам (рис. 1.12,в).
Аналогично структуре ввода элементов двумерного массива по строкам или столбцам осуществляется их вывод. Подобная структура сохраняется и при обработке элементов двумерного массива по строкам или столбцам. Например, фрагмент алгоритма суммы элементов по строкам представлен на рис. 1.13
Рис. 1.11. Имена ячеек
А) ввод по строкам в) ввод по столбцам
Рис. 1.12. Ввод элементов матрицы
Пример
1.7. Дан
двумерный массив
A=
a(i,j) , i =1,2,3;
j=1,2,3. Составить алгоритм получения
суммы элементов главной диагонали,
критерием выделения которых является
равенство i
= j . Ввод и
обработку элементов массива будем
выполнять по строкам (рис. 1.14).
Рис. 1.13. Сумма элементов массива
Рис. 1. 14. Обработка матрицы
Глава 2. Система программирования Visual Basic for Applications (vba)
В первом семестре мы использовали табличный процессор Excel для обработки табличных данных. Следует отметить, что многие команды Excel представляют собой набор мини – команд, которые выполняются в автоматическом режиме по заранее определенному алгоритму. Подобный набор мини команд содержится в встроенной в Excel системе программирования, которая носит название VBA, основой для которого является система программирования Visual Basic (VB). VBA – это интегрированная среда программирования, которая включает редактор кода (программы), систему подсказок (помогающие в выборе параметров вводимой команды), компилятор (для перевода команд в двоичный код), компоновщик (составитель исполнимого модуля), отладчик программ (помогает поэтапно выполнять программу), а также элементы интерфейса пользователя. Используя VBA, мы по заранее разработанному алгоритму можем решать ту или иную поставленную задачу.
2.1. Основные положения
VВА работает в среде Excel. Процесс программирования поставленной задачи в VBА включает два этапа (проект):
Этап визуального программирования или создание интерфейса пользователя. На этом этапе необходимо заранее продумать, что будет расположено на экране ПК для удобства решения задачи (кнопки управления, окна ввода и вывода данных и другие элементы). После расположения необходимых элементов (объектов) нужно установить их свойства.
Этап непосредственного программирования задачи. На этом этапе составляется программа (программный код), которая состоит из операторов VBА. В этом плане создание программы с помощью VBА сходно с разработкой программ на других языках программирования.
Рассмотрим постановку задачи программирования, на конкретном примере. Разработать проект в Excel, для определения минимальной поверхности S, радиуса R и высоты h консервной банки заданного объема V. Проект включает следующие этапы:
1. Создание интерфейса пользователя. Интерфейс пользователя – форма (или рабочий лист1), на которой расположены следующие объекты (рис. 2.1):
Окно для ввода заданного объема;
Окна для вывода полученного R , h высоты и минимальной поверхности S;
Кнопка запуска программы;
Кнопка закрытия проекта (выход).
R=5,4см h=10,8см
S=0,055м2 V=1000cм2 Рис. 2.1. Интерфейс
Составление математической модели минимизации поверхности.
V=r2h; откуда h=v/(r2); s=2r2 + 2rh ; подставив h в s , возьмем частную производную ds/dr и приравняем ее нулю.
Откуда получим s=2r2 + 2rh
Составление процедуры вычисления минимальной поверхности при заданном объеме (вопросы составления программы будут рассмотрены позже).
Порядок запуска проекта в редакторе VBA (при открытой UserForm1):
Команда Run, Run Sub/UserForm;
В появившейся форме ввести заданный объем;
Щелкнуть на форме кнопку Запуск;
Записать полученные результаты;
Щелкнуть на форме кнопку Выход (закрыть проект).