- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 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. Обозначения блоков в схемах алгоритмов
- •Литература
- •Содержание
Глава 7. Массивы данных в vbа
7.1. Характеристики и описание одномерных массивов
Массив - это упорядоченная совокупность данных одного типа (см. глава 1, параграф 1.5) и имеет следующие характеристики:
Имя массива - подчиняется правилу образования имен в VBA.
Размерность - одномерный, двумерный, трехмерный и т.д. ( <= 60) .
Длина - количество элементов в массиве
Тип - элементы массива должны быть одного типа (вещ., целые и т.д.).
Одномерныймассив состоит из ряда элементов.
Математическая запись массива: Х= ( хi ), i=1,2,...,n ,
где Х - имя массива;
xi - имя элемента массива в общем виде (индексная переменная);
i -индекс, указывающий на порядковый номер элемента в массиве.
В VBА имя элемента в общем виде запишется так - х( i ).
Массивы с фиксированными размерами называют статическими, а с переменными размерами - динамическими. Характеристики массива заключены в его обязательном описании.
Синтаксис описания статического одномерного массива:
dim Имя (размерность массива) [ AS тип массива ]
Приведем описание массива с именем х.
dim x(1 to 10) As single
где:
Имя массива - х;
Размерность - одномерный;
Длина массива - 10 элементов;
Тип массива - вещественный.
При этом будет выделено 10 пустых ячеек с именами х(1), х(2),... х(10)
Данный массив также может быть описан следующим образом:
Option base 1 ' Оператор записать в разделе General редактора кода
dim x(10) as single
Общая блок - схема обработки элементов одномерного массива
Содержание блока подготовки и тела цикла при решении некоторых задач обработки одномерного массива:
Задача Блок подготовки Тело цикла
Сумма элементов s=0 s=s+x(i)
Произведение элем. р =1 р=р*x(i)
мин. элемент min=x(1) if min>x(i) then min=x(i)
мах. элемент max=x(1) if max<x(i) then max=x(i)
7.2. Примеры обработки одномерных массивов
Пример 7.1.
Задан одномерный массив Х=хi i=1,2,...,10. Составить программу определения максимального элемента.(см. глава 1, рис. 1.10).
Private Sub CommandButton1_Click()
Dim x(1 To 10), max As Single, i As Integer
For i = 1 To 10
x(i) = Val(InputBox(" Введите " & i & " Элемент массива "))
Next i
max = x(1)
For i = 2 To 10
If max < x(i) Then max = x(i)
Next i
MsgBox "max=" & max
End Sub
Сортировка числовых одномерных массивов
Для сортировки обычно применяют модифицированный метод "пузырька". В нем попарно сравниваются элементы массива и по условию сортировки меняются или не меняются местами. Массив считается упорядоченным, если в процессе попарного сравнения не было ни одной перестановки элементов.
Пример 7.2.
Составить алгоритм и программу сортировки по возрастанию одномерного массива вещественных чисел методом пузырька.
Задан массив Х=хi , i=1,2,...,6.
Введем переменную р - признак перестановок элементов в массиве.
Алгоритм сортировки одномерного массива по возрастанию
Программа сортировки одномерного массива по возрастанию
Dim x(1 To 6), a As Single
Dim i, p As Integer
For i = 1 To 6
x(i) = Val(InputBox(" Введите " & i & " элемент массива "))
Next i
1: p = 0
For i = 1 To 5
If x(i) > x(i + 1) Then a = x(i): x(i) = x(i + 1): x(i + 1) = a : p = 1
Next i
If p = 1 Then GoTo 1 ‘ Если были перестановки (р=1), то переход к метке 1
Debug.Print "Упорядоченный по возрастанию массив "
For i = 1 To 6
Debug.Print x(i)
Next i