- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 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. Обозначения блоков в схемах алгоритмов
- •Литература
- •Содержание
Глава 1. Алгоритмизация вычислительных процессов Этапы решения инженерных задач на пк
1. Постановка инженерной задачи. На этом этапе уясняется, что задано, что необходимо получить, а также целесообразность постановки задачи.
2. Этап преобразования инженерной задачи в математическую, т.е. получение математической модели и выбор (если необходимо) математического метода ее решения.
3. Разработка алгоритма решения математической модели.
4. Составление программы решения на алгоритмическом языке согласно разработанному алгоритму.
5. Этап отладки составленной программы, т.е. выявление возможных ошибок в программе.
6. Решение задачи на ПК и обработка результатов решения.
1.1. Алгоритм и его свойства
Алгоритм - это строгая однозначная последовательность действий, приводящая к решению поставленной задачи. Алгоритм отличается от обычной инструкции рядом свойств. К основным свойствам алгоритма относятся:
Детерминированность - однозначное понимание алгоритма различными пользователями, однозначность получения результата решения.
Дискретность - представление алгоритма в виде простейших операций.
Массовость - возможность применения алгоритма к целому классу однотипных задач.
Результативность - получение результата либо сообщение об его отсутствии за конечное число действий.
Разнообразие форм представления (текстовая, символическая, графическая и т.д.).
Наиболее употребительной формой представления алгоритма является блок-схема. Это графическое представление алгоритма в виде набора геометрических фигур, соединенных линиями (стрелками), указывающими на направление развития вычислительного процесса. Стрелки указываются, если процесс направлен справа налево и снизу вверх. Каждая фигура имеет специальное назначение (см. приложение 1). Алгоритм начинается блоком "Начало" и заканчивается блоком "Конец".
Типы алгоритмических структур
На рис. 1.1 представлены линейные, разветвляющиеся, циклические и иерархические алгоритмы.
Линейный алгоритм - это последовательность действий, выполняемых в порядке их естественного расположения, т.е. одно за другим (рис. 1.1,а).
Разветвляющийся - это алгоритм, в котором может нарушаться естественный порядок выполнения действий в зависимости от выполнения тех или иных поставленных условий. В таком алгоритме могут возникать различные направления развития вычислительного процесса, которые принято называть ветвями (рис. 1.1,б). Ветви могут сходиться в конце алгоритма, либо иметь различные окончания вычислительного процесса.
а) б) в) г) д) е)
Рис. 1.1. Алгоритмические структуры
Циклический - это алгоритм, в котором предусмотрено многократное выполнение одной и той же последовательности действий, называемых телом цикла. Цикл — повторение этой последовательности действий. При выполнении цикла изменяется значение некоторой переменной, которая называется параметром цикла. Когда параметр цикла достигнет заданного значения, цикл прекращается. Приведем общепринятые положения организации цикла:
Установить начальное значение параметра цикла;
Выполнить тело цикла;
Изменить параметр цикла;
Выполнить проверку: если параметр цикла не достиг заданного значения — возврат к пункту 2, иначе — к пункту 5;
Выход из цикла.
Проверка значения параметра цикла может выполняться в начале цикла (рис. 1.1,в). Такой алгоритм называют циклическим с предусловием или с защитой входа. Если проверка значения параметра цикла помещается в конце цикла (рис. 1.1,г), то такой тип алгоритма называют постусловием или свободным входом в цикл.
Существуют алгоритмы с заранее известным числом выполняемых циклов. Параметром цикла в таком случае является переменная, в которой накапливается количество выполняемых циклов - счетчик цикла. Когда будет выполнено заданное число циклов – осуществляется выход из цикла. Например, задачи обработки массивов данных сводятся к алгоритмам с заданным числом циклов.
Ряд задач сводятся к ЦА, в которых заранее неизвестно число выполняемых циклов. Например, определение суммы членов ряда с заданной точностью E , если задан общий член ряда аn. Параметром цикла в данном случае является значение текущего члена ряда. Выход из цикла произойдет при an ≤ E. При уточнении корня алгебраического уравнения методом половинного деления параметром цикла является переменная z= b-a. Выход из цикла при выполнении условия z ≤ E.
При решении задач с использованием итерационных формул yi+1 = f(yi,x), выход из цикла осуществляется при выполнении условия yi+1 - yi <=E, где Е — заданная точность.
Циклические алгоритмы бывают простые (рис. 1.1,в,г) и сложные (на рис. 1.1,д представлен сложный циклический алгоритм без детализации начальной установки и изменения параметров внутреннего и внешнего циклов). Например, при решении задачи табулирования функции двух переменных Z=f(x,y) используется сложный циклический алгоритм, где параметром внутреннего цикла является х = xнач., xкон., dxшаг., а параметром внешнего цикла y= yнач.,yкон.,dyшаг.. К сложным циклическим алгоритмам сводятся задачи обработки элементов двумерных массивов и т.д.
Иерархические алгоритмы (рис. 1.1,е) используют подчиненные алгоритмы (подпрограммы). Алгоритм, из которого происходит обращение к подчиненному алгоритму, называют основным. Из основного алгоритма может происходить неограниченное число обращений к подчиненным алгоритмам.