Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Цикл алгоритмы и массивы.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
635.9 Кб
Скачать

3.2 Динамические массивы

Динамическими называются массивы с изменяющимся, заранее не известным количеством элементов.

Объявление динамических массивов:

Dim <имя_массива> (количество_элементов)

Изменение размерности динамического массива осуществляется с помощью инструкции ReDim:

ReDim [Preserve]<имя_массива> (количество_элементов)

Здесь,Preserve(необязательный параметр), который позволяет изменить последний размер массива, без потери его содержимого.

3.3 Ввод и вывод элементов массива

Ввод значений элементов массива можно осуществлять:

  • при помощи функции InputBox()

  • с помощью функции rnd() и генератора случайных чисел Randomize

Примечания:

  1. функция rnd(N) генерирует случайное вещественное число в диапазоне [0; N/10]

  2. в данном примере она будет генерировать случайное число в диапазоне [-4;5]

  3. функция round округляет вещественное число по правилам математического округления

3.4 Типовые алгоритмы обработки массивов

К основным алгоритмам обработки массивов относят:

  • поиск суммы элементов массива

  • поиск произведения элементов массива

  • поиск количества элементов в массиве, удовлетворяющих заданным условиям

  • поиск максимального или минимального значения в массиве

Основные алгоритмы рассмотрим для массива D, состоящего из n элементов.

Поиск суммы

Поиск произведения

Поиск количества

Поиск значения максимального элемента

Примечание: алгоритм поиска минимального значения в массиве аналогичен поиску максимума, в нем только меняется знак ">" на знак "<" и имя переменной с max на min.

Порядок выполнения работы

Создать новую рабочую книгу.

Выполнить пример 1. Вычислить значения функции в заданных расчетных точках . Значения начальной расчетной точки xn, конечной расчетной точки xk и интервала между двумя соседними точками dx задавать при помощи диалога InputBox. Для вычислений использовать оператор For. Вывод данных осуществлять, используя диалог MsgBox.

Порядок решения примера 1

  1. Запустить редактор VBE, нажав Alt+F11

  2. Открыть окно программного кода объекта "Эта книга", дважды щелкнув по указанному объекту в списке объектов

  3. Создать новую процедуру, выполнив команду Insert-Procedure.В появившемся диалоге в строке Nameуказать имя task_1. ОК.

  4. Набрать в теле процедуры операторы для решения данной задачи

  5. Выполнить программу, нажав

Выполнить индивидуальное задание 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. На листе 1 сформируйте следующую таблицу:

  2. Вернитесь в редактор VBE, нажав Alt+F11

  3. Откройте окно программного кода объекта "Лист1", дважды щелкнув по указанному объекту в списке объектов

  4. Создайте новую процедуру, выполнив команду Insert-Procedure.В появившемся диалоге в строке Nameуказать имя task_2. ОК.

  5. Наберите в теле процедуры операторы для решения данной задачи

  6. Выполните программу, нажав

Выполнить индивидуальное задание 2. Вычислить значения функции в заданных расчетных точках . Значения начальной расчетной точки xn, конечной расчетной точки xk и интервала между двумя соседними точками dx считывать с рабочего листа 2, предварительно введя их в ячейки. Для вычислений использовать оператор DO..UNTIL..LOOP. Вывод данных осуществлять на лист 2. Вариант взять из таблицы1.

Выполнить пример 3. Создать одномерный массив D, состоящий из N целых чисел. Получить новый массив C, элементы которого вычисляются так: . Найти сумму элементов массива D, значения которых кратны числу 4. Ввод элементов исходного массива осуществить, используя генератор случайных чисел. Вывод результатов осуществить на лист 3.

Порядок решения примера 3

  1. Вернитесь в редактор VBE, нажав Alt+F11

  2. Откройте окно программного кода объекта "Лист3", дважды щелкнув по указанному объекту в списке объектов

  3. Создайте новую процедуру, выполнив команду Insert-Procedure.В появившемся диалоге в строке Nameуказать имя task_3. ОК.

  4. Наберите в теле процедуры операторы для решения данной задачи

  5. Выполните программу, нажав

Выполнить пример 4. Создать одномерный массив D, состоящий из N целых чисел. Найти сумму элементов массива, значения которых кратны числу 4. Для решения задачи составить пользовательскую функцию. Элементы массива вводить произвольно в ячейки рабочего листа 4.

Порядок решения примера 4

  1. На листе 4 введите элементы массива D (например, любые 10 чисел)

  2. Вернитесь в редактор VBE, нажав Alt+F11

  3. Создайте новый модуль, выполнив команду Insert-Module

  4. Создайте новую процедуру, выполнив команду Insert-Procedure. В появившемся диалоге в строке Name укажите имя task_4 и выберите Type Function. ОК.

  5. Наберите в теле функции операторы для решения данной задачи

  6. Вернитесь на лист 4. В любой свободной ячейке рядом с исходным массивом решите задачу, используя для вызова пользовательской функции Мастер функций. Созданная функция task_4 будет находиться в категории определенные пользователем.

  7. Решите задачу, задаваясь другими массивами данных.

Выполнить индивидуальное задание 4_1 из контрольной работы.