- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 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. Обозначения блоков в схемах алгоритмов
- •Литература
- •Содержание
Глава 5. Организация разветвляющихся программ
5.1. Операторы управления goto, if
Алгоритмы, в которых может нарушаться естественный порядок выполнения операций и программы, составленные по ним, называются разветвляющимися. Для изменения естественного порядка выполнения операторов в программе используются операторы управления.
Оператор безусловной передачи управления GOTO
Синтаксис оператора: goto метка;
где метка - целое число либо имя переменной. Перед оператором, к которому передается управление, должна быть поставлена метка с двоеточием. Функционирование оператора: без всяких условий передать управление оператору с указанной справа после goto меткой.
Пример.goto 5;
------------
5: a:= 2*x ;
Условный оператор управления if
Оператор IF имеет две формы представления - однострочную и многострочную. Синтаксис однострочной формы IF:
If <условие> Then оператор 1 [ Else оператор 2] ;
где: <условие> - логическое выражение. В квадратных скобках указан необязательный параметр. Если он отсутствует, то такая форма представления IF называется неполной или сокращенной.
Функционирование оператора: если значение логического выражение "истина", то выполняется оператор 1, иначе выполняется оператор 2. Ниже приведено блок – схемное представление оператора.
Истина Ложь
Логическое
выражение оператор1 оператор2
Пример 5.1. Применение данного оператора для решения следующей задачи:
Функционирование оператора
Ложь
Истина
If x<1 Then y= a*x Else y= b*x
Передача управления к следующему оператору
Эту же задачу можно решить двумя операторами, так называемой неполной или сокращенной формы if :
If x<1 Then y= a*x
If x=>1 Then y= b*x
Синтаксис многострочной формы IF
Если оператор 1 или оператор 2 должен состоять из нескольких операторов, то удобно применять многострочный оператор if, синтаксис которого:
If <условие> Then
операторы
-------------
[Else
операторы
------------- ]
End If
Предыдущая задача решается таким образом:
If x<1 Then
y=a*x ' оператор 1
Else
z=b*x ' оператор 2
End If
Пример 5.2. Рассмотрим задачу, когда поставленных условий может быть больше двух:
Геометрическая интерпретация задачи. Расположим на оси Х числа.
-1 0 1 2 3 4 5 10 30
Алгоритм решения задачи
Для решения такой задачи можно использовать однострочный, вложенный IF или IF с добавочными условиями.
5.2. Однострочный вложенный If
Синтаксис оператора :
If <условие1> Then оператор 1 [ Else If <условие2> Then оператор 2 Else If ..]
Функционирование оператора: если <условие1> истинно, то выполняется оператор 1 и оператор If заканчивает работу. Если <условие1> ложно, то проверяется <условие2> и т.д.
Запишем этот оператор для решения поставленной задачи.
If x<-1 Then y=sin(x) Else If (2<x AND x<=3 ) Then y=Tan(x) Else If (5<x AND x<=10) Then y=Log(x) Else If x>30 Then y=x^2.5 Else y=0
Такой оператор трудно рассматривать в окне кода проекта, поєтому существует многострочный If с добавочными условиями. Синтаксис такого If :
If <условие1> Then
группа операторов 1
ElseIf <условие2> Then
группа операторов 2
ElseIf <условие n> Then
группа операторов n
[ else
группа операторов n]
End If
Для решения задачи примера 5.2 запишем многострочный If с добавочными условиями:
If x < -1 Then ' Начало оператора If
y = Sin(x)
ElseIf (2 < x) And (x <= 3) Then
y = Tan(x)
ElseIf (5 < x) And (x <= 10) Then
y = Log(x)
ElseIf x > 30 Then
y = x ^ 2.5
Else
y = 0
End If ' Конец оператора IF
Пример 5.3. Задача примера 5.2 может быть модифицирована следующим образом
Вычисление y=sin(x) выполняется при х=1 или х=3 или х=5 или х=6
Алгоритм решения задачи по структуре аналогичен алгоритму примера 5.2.