- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 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. Обозначения блоков в схемах алгоритмов
- •Литература
- •Содержание
Программная единица
Private Sub Command1_Click() ' Заголовок основной программы
Dim x (1 To 10), y (1 To 10) As Single ' Описание массивов X, Y
Dim p1, p2, z As Single ' Описание переменных
Dim i As Integer
For i = 1 To 3 ' Цикл для ввода элементов масиива Х
x(i) = Val (InputBox (" Введите " & i & " элемент X "))
Next i
For i = 1 To 4 ' Цикл для ввода элементов масиива У
y(i) = Val (InputBox (" Введите " & i & " элемент Y "))
Next i
z = Sum1(x, 3) + Sum1(y, 4) ' Два вызова п/п Function Sum1
TextBox1.text= z ' Вывод в TextBox1 результата работы п/п Function
Call Sum2 (x, 3, p1 ) ' 1- й вызов п/п Sub Sum2 ( х, 3, р1 – фактические параметры)
Call Sum2 (y, 4, p2 ) ' 2- й вызов п/п Sub Sum2 ( y, 4, p2 – фактические параметры )
z = p1 + p2 ' p1 и p2 – результаты 2 –х обращений к п/п Sub Sum2
TextBox2.text= z ' Вывод в TextBox2 результата работы п/п Sub Sum2
End Sub ' Конец основной программы
Function Sum1(x, n) As Single ' п/п Function ( x, n – формальные параметры)
Dim i As Integer, S As single ' Описание переменных в подпрограмме
S = 0 ' Переменная для накопления суммы
For i = 1 To n ' Цикл для суммирования
S = S + x(i) ' Суммирование элементов в цикле
Next I ' Конец цикла
Sum1= s ' Присвоение имени подпрограммы переменной s
End Function ' Конец подпрограммы Function
Sub Sum2 (y, m, s) ' Заголовок п/п Sub Sum2 ( y, m, s - формальные параметры)
Dim i As Integer ' Описание переменной в подпрограмме
s=0 ' Переменная для накопления суммы
For i = 1 To m ' Цикл для суммирования
s = s + y(i) ' Сумма элементов в цикле
Next i
End Sub ' Конец подпрограммы Sub
Private Sub CommandButton2_Click() ' Процедура окончания работы
End ' Закончить работу проекта
End Sub
При вводе: х(1)=1; х(2)=2; х(3)=3 и у(1)=1; у(2)=2; у(3)=3; у(4)=4;
Результат работы программной единицы приведен на рис. Л9.2.
Оформление протокола лабораторной работы
Отчет оформить на рабочем листе 1.
В заголовке лабораторной работы записать ее номер и цель проведения.
Записать условия индивидуальных заданий и порядок выполнения.
На листе 1 записать результаты решения.
Записать проект в личную папку под именем Лаб. 9.
Подготовиться для ответа на контрольные вопросы при защите лабораторной работы.
Контрольные вопросы
В каких случаях применяется подпрограмма?
Дайте определение программной единицы.
Где располагается подпрограмма?
Дайте определение глобальных и локальных переменных.
Приведите структуру подпрограммы Sub.
Приведите структуру подпрограммы Function.
Как осуществляется вызов подпрограммы Sub?
Как осуществляется вызов подпрограммы Function?
В чем отличие подпрограммы Function и Sub?
Понятие фактических параметров при вызове подпрограммы Sub.
Понятие фактических параметров при вызове подпрограммы Function.
Понятие формальных параметров в подпрограмме Sub.
Понятие формальных параметров в подпрограмме Function.
Соответствие между фактическими и формальными параметрами.
15. Как передается результат работы подпрограммы Function и Sub в основную программу.
Л а б о р а т о р н а я р а б о т а № 10