
- •Содержание
- •1. Основные понятия
- •2. Операторы цикла
- •2.1 Оператор цикла с заранее заданным количеством повторений. Оператор for..Next
- •2.2 Операторы цикла с заранее неизвестным количеством повторений
- •Операторы цикла с предусловием
- •Операторы цикла с постусловием
- •3. Массивы
- •3.1 Статические массивы
- •3.2 Динамические массивы
- •3.3 Ввод и вывод элементов массива
- •3.4 Типовые алгоритмы обработки массивов
- •Порядок выполнения работы
- •Контрольные вопросы
3.2 Динамические массивы
Динамическими называются массивы с изменяющимся, заранее не известным количеством элементов.
Объявление динамических массивов:
Dim <имя_массива> (количество_элементов)
Изменение размерности динамического массива осуществляется с помощью инструкции ReDim:
ReDim [Preserve]<имя_массива> (количество_элементов)
Здесь,Preserve(необязательный параметр), который позволяет изменить последний размер массива, без потери его содержимого.
3.3 Ввод и вывод элементов массива
Ввод значений элементов массива можно осуществлять:
при помощи функции InputBox()
с помощью функции rnd() и генератора случайных чисел Randomize
Примечания:
функция rnd(N) генерирует случайное вещественное число в диапазоне [0; N/10]
в данном примере она будет генерировать случайное число в диапазоне [-4;5]
функция round округляет вещественное число по правилам математического округления
3.4 Типовые алгоритмы обработки массивов
К основным алгоритмам обработки массивов относят:
поиск суммы элементов массива
поиск произведения элементов массива
поиск количества элементов в массиве, удовлетворяющих заданным условиям
поиск максимального или минимального значения в массиве
Основные алгоритмы рассмотрим для массива D, состоящего из n элементов.
Поиск суммы |
Поиск произведения |
|
|
Поиск количества |
Поиск значения максимального элемента |
|
|
Примечание: алгоритм поиска минимального значения в массиве аналогичен поиску максимума, в нем только меняется знак ">" на знак "<" и имя переменной с max на min.
Порядок выполнения работы
Создать новую рабочую книгу.
Выполнить
пример 1. Вычислить
значения функции в заданных расчетных
точках
.
Значения начальной расчетной точки xn,
конечной расчетной точки xk
и интервала между двумя соседними
точками dx
задавать при помощи диалога InputBox.
Для вычислений использовать оператор
For.
Вывод данных осуществлять, используя
диалог MsgBox.
Порядок решения примера 1
Запустить редактор VBE, нажав Alt+F11
Открыть окно программного кода объекта "Эта книга", дважды щелкнув по указанному объекту в списке объектов
Создать новую процедуру, выполнив команду Insert-Procedure.В появившемся диалоге в строке Nameуказать имя task_1. ОК.
Набрать в теле процедуры операторы для решения данной задачи
Выполнить программу, нажав
Выполнить индивидуальное задание 1. Вычислить значения функции в заданных расчетных точках . Значения начальной расчетной точки xn, конечной расчетной точки xk и интервала между двумя соседними точками dx задавать при помощи диалога InputBox. Для вычислений использовать оператор For. Вывод данных осуществлять, используя диалог MsgBox. Вариант взять из таблицы1.
Таблица 1 – Индивидуальное задание 1 |
|
Вариант |
Вычисляемая функция |
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
Выполнить пример 2. Вычислить значения функции в заданных расчетных точках . Значения начальной расчетной точки xn, конечной расчетной точки xk и интервала между двумя соседними точками dx задавать при помощи диалога InputBox. Для вычислений использовать оператор While..Wend. Вывод данных осуществлять в ячейки рабочего листа1.
Порядок решения примера 2
На листе 1 сформируйте следующую таблицу:
Вернитесь в редактор VBE, нажав Alt+F11
Откройте окно программного кода объекта "Лист1", дважды щелкнув по указанному объекту в списке объектов
Создайте новую процедуру, выполнив команду Insert-Procedure.В появившемся диалоге в строке Nameуказать имя task_2. ОК.
Наберите в теле процедуры операторы для решения данной задачи
Выполните программу, нажав
Выполнить индивидуальное задание 2. Вычислить значения функции в заданных расчетных точках . Значения начальной расчетной точки xn, конечной расчетной точки xk и интервала между двумя соседними точками dx считывать с рабочего листа 2, предварительно введя их в ячейки. Для вычислений использовать оператор DO..UNTIL..LOOP. Вывод данных осуществлять на лист 2. Вариант взять из таблицы1.
Выполнить
пример 3.
Создать одномерный массив D, состоящий
из N целых чисел. Получить новый массив
C, элементы которого вычисляются так:
.
Найти сумму элементов массива D, значения
которых кратны числу 4. Ввод элементов
исходного массива осуществить, используя
генератор случайных чисел. Вывод
результатов осуществить на лист 3.
Порядок решения примера 3
Вернитесь в редактор VBE, нажав Alt+F11
Откройте окно программного кода объекта "Лист3", дважды щелкнув по указанному объекту в списке объектов
Создайте новую процедуру, выполнив команду Insert-Procedure.В появившемся диалоге в строке Nameуказать имя task_3. ОК.
Наберите в теле процедуры операторы для решения данной задачи
Выполните программу, нажав
Выполнить пример 4. Создать одномерный массив D, состоящий из N целых чисел. Найти сумму элементов массива, значения которых кратны числу 4. Для решения задачи составить пользовательскую функцию. Элементы массива вводить произвольно в ячейки рабочего листа 4.
Порядок решения примера 4
На листе 4 введите элементы массива D (например, любые 10 чисел)
Вернитесь в редактор VBE, нажав Alt+F11
Создайте новый модуль, выполнив команду Insert-Module
Создайте новую процедуру, выполнив команду Insert-Procedure. В появившемся диалоге в строке Name укажите имя task_4 и выберите Type Function. ОК.
Наберите в теле функции операторы для решения данной задачи
Вернитесь на лист 4. В любой свободной ячейке рядом с исходным массивом решите задачу, используя для вызова пользовательской функции Мастер функций. Созданная функция task_4 будет находиться в категории определенные пользователем.
Решите задачу, задаваясь другими массивами данных.
Выполнить индивидуальное задание 4_1 из контрольной работы.