
- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 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
- •Оператор1
- •Оператор2
- •Синтаксис многострочной формы if
- •Пример 5.2. Рассмотрим задачу, когда поставленных условий может быть больше двух:
- •Алгоритм решения задачи
- •5.2. Однострочный вложенный 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.1. Характеристики и описание одномерных массивов
- •Одномерный массив состоит из ряда элементов.
- •Синтаксис описания статического одномерного массива: dim Имя (размерность массива) [ as тип массива ]
- •Общая блок - схема обработки элементов одномерного массива
- •7.2. Примеры обработки одномерных массивов
- •Сортировка числовых одномерных массивов
- •Алгоритм сортировки одномерного массива по возрастанию
- •7.3. Двумерный массив
- •Программа
- •Глава 8. Пользовательские процедуры типа Sub и Function в vba
- •8.1. Подпрограммы
- •8.2. Процедура типа Sub Синтаксис процедуры типа Sub
- •Вызов подпрограммы процедуры Sub
- •2 Способ.
- •8.3. Подпрограмма - процедура Function
- •Вызов подпрограммы - процедуры Function
- •Глава 9. Решение оптимизационных задач
- •9.1. Обработка электронных таблиц в среде vba
- •9.2. Применение процедуры Поиск решения для решения линейных оптимизационных задач
- •9. 3. Подготовка эт
- •Линейные, разветвляющиеся и циклические алгоритмы
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Алгоритмы обработки одномерных и двумерных массивов
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Дайте определение двумерного массива.
- •Задание №1. Создать простейший проект ″Приветствие″ в vba:
- •1. Разработка интерфейса пользователя.
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Линейные программы в vba
- •Пример составления программы для нулевого варианта задания
- •Разработка проектов в vba по разветвляющимся программам
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Циклические программы в vba
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Обработка одномерных массивов в vbа
- •Порядок выполнения задания №1.
- •Пример выполнения лабораторной работы
- •3. Интерфейс на рис. Л7.1. Вывод результата решения по условию нулевого варианта не в окно TextBox1, а в окно отладки Immediate Window.
- •4. Процедура отклика кнопки 1:
- •Обработка двумерных массивов в vbа
- •Порядок выполнения задания №1.
- •Пример выполнения лабораторной работы
- •Программная единица
- •Оформление протокола лабораторной работы
- •Контрольные вопросы
- •Обработка эт в среде vbа
- •Оформление протокола лабораторной работы
- •Приложение 1. Обозначения блоков в схемах алгоритмов
- •Литература
- •Глава 1. Алгоритмизация вычислительных процессов
- •Глава 8. Пользовательские процедуры типа Sub и Function в vba
1.2. Линейные и разветвляющиеся алгоритмы
Пример
1.1. Заданы
значения переменных а, х. Составить
алгоритм вычисления зависимости
у=ах2
Пример
1.2. Заданы
значения переменных а, в, х Составить
алгоритм вычисления
Рис. 1.2. Линейный алгоритм Рис. 1.3. Разветвляющийся алгоритм
1.3. Простые циклические алгоритмы
Пример 1.3. Составить алгоритм табулирования заданной функции у=х2 , где х изменяется от xn до xk с шагом dx. Обычно это записывают так: x=xn, xk, dx. Для решения поставленной задачи составлены три алгоритма (рис. 1.5,а,б,с).
В
первом алгоритме (рис. 1.5,а) параметром
цикла является переменная х.
Выход из цикла происходит при х>
xk.
Во втором алгоритме параметром цикла
является переменная к
– счетчик циклов, nc
– заданное количество циклов. Для данной
задачи количество выполняемых циклов
(берется
целое от деления). Выход из цикла будет
при к>nc.
Третий алгоритм дублирует второй, но при этом используется блок модификации (рис. 1.4) , который включает в себя блоки второго алгоритма.
Рис. 1.4. Блок модификации и соответствующий ему эквивалент
1 алгоритм 2 алгоритм 3 алгоритм
а) б) с)
Рис. 1.5. Циклические алгоритмы табулирования заданной функции
Пример 1.4. Составить алгоритм вычисления суммы членов ряда с заданной точностью Е и число его членов, если задан общий член ряда an=1/n2. В данном циклическом алгоритме (рис. 1.6) заранее не известно количество выполняемых циклов. Параметром цикла является переменная an . Выход из цикла выполняется, когда очередной член ряда an становится равным или меньше заданной точности Е.
Пример
1.5. Составить
алгоритм вычисления
по следующей итерационной формуле
yi+1=0,5(yi
+ x/yi)
с заданной точностью Е и начальным
приближением y0.
В данном циклическом алгоритме (рис.
1.7) количество выполняемых циклов
неизвестно и выход из цикла происходит,
когда разность по модулю между предыдущим
и последующим значением Y будет меньше
или равно заданной точности Е.
Рис. 1.6 Рис. 1.7
1.4. Циклические алгоритмы обработки массивов
Массив – это набор данных одного типа. Рассмотрим одномерные и двумерные массивы.
Одномерные массивы
Например, одномерный массив, состоящий из 4 элементов, математически запишется так: Х= х(i); i =1,2,3,4 , где Х – имя массива; х(i) – имя элемента массива в общем виде; i - индекс, указывающий на порядковый номер элемента в массиве. Для обращения к конкретному элементу массива необходимо указать значение его индекса. В данном случае массив можно представить в виде четырех ячеек. Каждая ячейка имеет свое имя (рис. 1.8). Для ввода в ячейки чисел достаточно организовать цикл, в котором будет меняться переменная i (параметр цикла). На рис. 1.9 приведен фрагмент алгоритма ввода, в блоке модификации которого меняется параметр цикла от 1 до 4 с шагом равным 1. После выполнения четырех циклов произойдет выход из цикла, а в ячейках окажутся введенные числа.
х(1)
х(2) х(3) х(4)
Рис. 1.8. Имена ячеек Рис.1.9. Фрагмент ввода
Пример
1.6. Составить
алгоритм определения максимального
элемента одномерного массива
Х=
х(i);
i
=1,2, …,10. В основу алгоритма положен
принцип "Претендентов" на максимум,
который заключается в следующем (рис.
1.10). В ячейку с именем МАХ помещается
первый элемент массива. Организуется
цикл, в котором сравнивается МАХ со
вторым элементом (цикл начинается при
i=2). Если второй элемент окажется больше,
то он помещается в МАХ, иначе в МАХ
остается первый элемент и выполняется
следующий цикл. После выполнения 9
циклов в ячейке МАХ останется максимальный
элемент.
Рис. 1.10. Поиск МАХ элемента