- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 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.3. Оператор выбора Select Case
Для решения поставленной задачи удобно использовать оператор выбора Select Case. Синтаксис оператора Select Case:
Select Case селектор
Case 1-й установленный диапазон значений селектора : оператор 1
Case 2-й установленный диапазон значений селектора : оператор 2
-----------------------------------------------
Case n- й установленный диапазон значений селектора : оператор n
Case Else: оператор n+1
End Select
Селектор – переменная, значение которой до входа в оператор Select Case должно быть известно. Если это значение совпадает с 1-м установленным заранее диапазоном значений, то выполняется оператор 1 и управление передается на End Select. Если значение не совпадает, происходит сравнение со вторым диапазоном и т.д.
Способы
задания установленного значения
селектора: Перечнем
значений через запятую (например: Case
2,5,8 ...) Диапазоном
значений ( Case
2 to
10) Ключевым
словом Is,
справа от которого записывается
оператор отношения, например, Case
is
< 2.
Запишем процедуру отклика командной кнопки CommandButton1 для решения данной задачи:
Private Sub CommandButton1_Click()
Dim x, y As Single 'Объявление типов переменных Х и Y
x = Val(InputBox(" Введите значение х ")) ' Ввод текущего значения Х
Select Case x ' Начало оператора Select Case
Case 1,3,5,6: y=sin(x)
Case 8 to 10 : y=Tan(x)
Case 15 to 20: y=Log(x)
Case is >30: y=x^2.5
Case Else: y=0 ' В остальных случаях
End Select ' Конец оператора Select
MsgBox “y=” & y
End Sub
Пример 5.4. По вводимым буквам русского алфавита А, Б, Д вывести слова Одесса, Николаев, Херсон. Сделать контроль ввода.
Private Sub CommandButton2_Click()
Dim x, y As String 'Объявление типов переменных Х и Y
x = InputBox(" Введите заданный символ") 'Ввод текущей буквы
Select Case x ' Начало оператора Select Case
Case “А“: y = " Одесса "
Case “Б“ : y = " Николаев "
Case “Д“: y = " Херсон "
Case Else: MsgBox " Ошибочный ввод" ' Проверка ввода
End Select ' Конец оператора Select
MsgBox y
End Sub
Глава 6. Организация циклических программ в vba
6.1. Простые циклические программы с оператором if
Пример 6.1. Составить программу для решения задачи табулирования функции у=х2 при х=xn, xk, dx т.е. параметр цикла х изменяется от xn до xk с шагом dx.
Используем простой циклический алгоритм (глава1. рис. 1.5,а ).
Процедура отклика командной кнопки
Private
Sub CommanButton1_Click Dim
x, y, xn, xk, dx As Single xn=-1:
xk=1: dx=0.2 x=xn 1:
y=x^2 Debug.Print
“ x= “; x ; “ y=”; y x=x+dx If
x<=xk Then GOTO 1 End
Sub
Алгоритм и программа могут быть представлены более компактно, если применить блок модификации и соответствующий ему оператор цикла For ..Next.