![](/user_photo/2706_HbeT2.jpg)
- •Одесская национальная академия пищевых технологий
- •Программа дисциплины
- •Глава 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. Обозначения блоков в схемах алгоритмов
- •Литература
- •Содержание
Порядок выполнения задания №1.
Использовать алгоритмы, разработанные в лабораторной работе №2
Интерфейс пользователя соответствует рис. Л7.1.
Ввод элементов массива с помощью функции InputBox.
Способ вывода результатов представлен в табл. Л7.1.
Составить программу решения и решить ее на ПК.
Пример выполнения лабораторной работы
Составить алгоритм и программу сортировки по возрастанию одномерного массива Х=хi , i=1,2,...,6 вещественных чисел. 1. Алгоритм упорядочения:
Были
перестановки ?
2. Таблица свойств объектов
Объект |
Свойство |
Значение свойства |
Форма 1 |
Caption |
Обработка одномерного массива |
CommandButton1 |
Caption |
Запуск программы |
CommandButton2 |
Caption |
Закрыть проект |
TextBox1 |
Text |
|
Label1 |
Caption |
Результат решения |
Рис.
Л7.1. Интерфейс
3. Интерфейс на рис. Л7.1. Вывод результата решения по условию нулевого варианта не в окно TextBox1, а в окно отладки Immediate Window.
4. Процедура отклика кнопки 1:
Private Sub CommandButton1_Click()
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
Debug.Print "Упорядоченный по возрастанию массив " ‘ Вывод заголовка
For i = 1 to 6 ‘ Цикл для вывода упорядоченного массива
Debug.Print x(i) ‘ Вывод в окно отладки Immediate Window
N
Введем
массив: 6, 4,3,1,2, 5
Результат решения в окне отладки Immediate Window (рис. Л7.3).
End Sub
Private Sub CommandButton2_Click()
End
End Sub
Рис.
Л7.3.
Окно
Immediate
Window
Рис.
7.2. Работа проекта
Оформление протокола лабораторной работы
Отчет оформить на рабочем листе 1.
В заголовке лабораторной работы записать ее номер и цель проведения.
Записать условия индивидуальных заданий и порядок выполнения.
На листе 1 записать результаты решения.
Записать проект в личную папку под именем Лаб. 7.
Подготовиться для ответа на контрольные вопросы при защите лабораторной работы.
Контрольные вопросы
Дайте определение одномерного массива.
Как записать имя элемента одномерного массива в общем виде?
Как записать имя элемента одномерного массива в VBA?
Объясните смысл описания одномерного массива.
Приведите общую структуру обработки одномерного массива.
Что положено в основу алгоритма поиска мин. и мах. элементов массива?
Сущность метода "пузырька" для сортировки элементов массива.
Как выделять нечетные элементы массива?
Как выделять четные элементы массива?
Как вывести элементы всего массива?
Как ввести элементы массива?
Л а б о р а т о р н а я р а б о т а № 8
Обработка двумерных массивов в vbа
Цель работы: составление алгоритмов и разработка проектов по обработке двумерных массивов. При подготовке к работе изучить теоретический материал (с.32 – 33).
Задание №1 . Организация обработки двумерных массивов.
Дан двумерный массив (матрица ) A=(aij ), i=1,2,..n; j=1,2,…m. Составить алгоритм и проект по обработке элементов массива, значения которых выбрать самостоятельно. Варианты заданий приведены в табл. Л8.1.
Таблица Л8.1 — Варианты для задания
№ вар. |
Условие |
Знач. n x m |
Способ вывода |
1 |
Найти сумму элементов каждой строки матрицы |
3х3 |
Immediate |
2 |
Найти сумму элементов каждого столбца матрицы |
3х3 |
Immediate |
3 |
Найти минимальный элемент каждой строки матрицы |
3х4 |
Immediate |
4 |
Найти минимальный элемент каждого столбца матрицы |
3х3 |
Immediate |
5 |
Найти сумму отрицательных элементов в каждой строке матрицы |
4х4 |
Immediate |
6 |
Найти количество отрицательных элементов в каждой строке матрицы |
3х4 |
Immediate |
7 |
Найти сумму положительных элементов в каждой строке матрицы |
4х3 |
Immediate |
8 |
Найти мин. элемент и его индекс в каждой строке матрицы |
3х4 |
Immediate |
9 |
Найти макс. элемент и его индекс в каждом столбце матрицы |
3х3 |
Immediate |
10 |
Найти минимальный элемент матрицы |
3х4 |
TextBox1 |
11 |
Найти количество нулевых элементов в каждой строке матрицы |
2х5 |
Immediate |
12 |
Найти количество нулевых элементов в каждом столбце матрицы |
3х4 |
Immediate |
13 |
Определить количество отрицательных элементов матрицы |
2х4 |
TextBox1 |
14 |
В каждой строке определить сумму элементов, при aij < c |
4х3 |
Immediate |
15 |
В каждом столбце определить сумму элементов, при aij < c |
2х5 |
Immediate |
16 |
Найти максимальный элемент матрицы |
3х3 |
TextBox1 |
17 |
Определить индексы элементов матрицы aij< b |
3х5 |
Immediate |
18 |
Найти сумму индексов отрицательных и положительных элементов массива |
4х4 |
Immediate |
19 |
Определить произведение ненулевых элементов для каждого столбца матрицы |
2х5 |
Immediate |
20 |
Для каждой строки матрицы определить сумму элементов при условии aij >b |
4х3 |
Immediate |
21 |
Определить количество положительных элементов в каждом столбце матрицы |
2х5 |
Immediate |
22 |
Разделить элементы каждого с3х3толбца на последний элемент столбца. Вывести массив. |
3х4 |
Immediate |
23 |
Элементы каждой с2х5троки разделить на последний элемент строки. Вывести массив. |
4х2 |
Immediate |
24 |
Для каждой строки матрицы определить номера столбцов, имеющих нулевые элементы |
3х3 |
Immediate |
25 |
Определить индексы нулевых и отрицательных элементов матрицы |
4х4 |
Immediate |
26 |
Для каждого столбца матрицы определить номера строк, содержащих отрицательные элементы |
2х5 |
Immediate |
27 |
Для каждого столбца матрицы найти сумму нечетных элементов |
5х3 |
Immediate |
28 |
Элементы каждой строки матрицы разделить на первый элемент строки. Вывести массив. |
5х3 |
Immediate |
29 |
Элементы каждого столбца разделить на первый элемент столбца. Вывести массив. |
3х3 |
Immediate |
30 |
Найти сумму и произведение элементов главной диагонали матрицы |
4х4 |
Immediate |