Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
INFORMATIKA / LrVBA / Lab4.doc
Скачиваний:
17
Добавлен:
12.04.2015
Размер:
1.32 Mб
Скачать
          1. Синтаксис

ReDim [Preserve] ИмяПеременной (Индексы) [As Тип] [, ИмяПеременной (Индексы) [As Тип]]

          1. Аргументы

Preserve-ключевое слово, используемое для сохранения данных в существующем массиве при изменении значения последней размерности

ИмяПеременной- Имя переменной, удовлетворяющее стандартным правилам именования переменных

Индексы- Размерности переменной массива; допускается описание до 60 размерностей. Аргумент индексы использует следующий синтаксис: [Нижний То] Верхний [, [Нижний То] Верхний]. Если нижний индекс не задан явно, нижняя граница массива определяется инструкцией Option Base. Если отсутствует инструкция option Base, нижняя граница массива равняется нулю

Тип- Тип данных массива

Для создания массива, значения элементов которого известны, можно применять функцию «Array».

          1. Синтаксис

Array (СписокАргументов)

          1. Возвращаемое значение

Возвращает массив типа variant.

          1. Аргументы

СписокАргументов представляет разделенный запятыми список значений, присваиваемых элементам массива.

          1. Пример

Описание массива «День», элементам которого присвоены сокращённые названия дней недели:

Dim День As Variant День = Array ("Пн", "Вт", "Ср", "Чт", "Пт")

Для определения номеров первого и последнего элементов массива используются функции «LBound» и «UBound».

          1. Синтаксис

LBound (ИмяМассива [, Размерность])

UBound (ИмяМассива [, Размерность])

          1. Возвращаемое значение

Минимальное и максимальное допустимое значение указанной размерности массива.

          1. Аргументы

ИмяМассива— имя переменной массива

Размерность— целое число, указывающее размерность, нижнюю или верхнюю границу которой возвращает функция. Для первой размерности следует указать 1, для второй 2 и т. д. Если аргумент Размерность опущен, подразумевается значение 1

Функция «Erase» служит для очистки или повторной инициализации массива.

          1. Синтаксис

EraseСписокМассивов

Повторно инициализирует элементы массивов фиксированной длины и освобождает память, отведенную для динамического массива,

          1. Аргументы

СписокМассивовпредставляет имена одной или нескольких очищаемых переменных массивов, разделенных запятой. ИнструкцияEraseустанавливает элементы массивов фиксированной длины следующим образом: массив чисел или строк фиксированной длины (присваивает каждому элементу значение 0), массив строк переменной длины (присваивает каждому элементу значение пустой строки), массив типа variant (присваивает каждому элементу значениеEmpty).Eraseосвобождает память, используемую динамическими массивами. Перед тем как из программы вновь появится возможность сослаться на динамический массив, необходимо переопределить размерности переменной массива с помощью инструкции ReDim.

    1. Задание

  1. Разработать алгоритм и программу на VBAпо варианту.

  2. Ввести программу в редактор VBAи добиться её выполнения.

  3. Подготовить отчёт.

    1. Содержание отчёта

  1. Титульный лист.

  2. Индивидуальное задание.

  3. Схема алгоритма.

  4. Текст программы с комментариями.

  5. Ответы на контрольные вопросы.

    1. Пример выполнения работы

          1. Задание

Сформируйте массив целых чисел из диапазона [-x,x],x<=100, длинойN<=20 и определите произведение ненулевых элементов. 1 -2

          1. Схема алгоритма

Рис. 5. Алгоритм программы вычисления произведения ненулевых элементов массива.

          1. Текст программы

Sub Example()

Dim A(1 To 20), x, i, N As Integer, P As Long

Dim D As Boolean, S As String

N = InputBox("Введите длину массива от 1 до 20")

Do While (N < 1) Or (N > 20)

N = InputBox("Будте внимательны! Число от 1 до 20.")

Loop

x = InputBox("Введите диапазон чисел в пределах 100")

Do While (Abs(x) < 1) Or (Abs(x) > 100)

x = InputBox("Будте внимательны! Число от 1 до 100.")

Loop

Randomize

For i = 1 To N

A(i) = Int(Rnd * 2 * x - x) ‘Целые случайные числа из [-x,x]

Next i

P = 1‘Произведение начинаем вычислять с 1

D = True‘Если не произойдёт переполнения, то останетсяTrue

For i = 1 To N‘Цикл для всех элементов

If (A(i) <> 0) Then ‘Если элемент ненулевой

If Abs(2147483647 / A(i)) > Abs(P) Then ‘Если тип Long _

P = P * A(i) ‘ не переполнится, перемножаем.

Else‘ Иначе

D = False‘Если переменная типаLongпереполнится

P = 0‘правильно произведение не вычислить…

End If

End If

Next i

Соседние файлы в папке LrVBA