Dim mass (1 To 5, 1 To 5) As Integer




Лабораторная работа № 8. Работа с массивами

Теоретические сведения

Массив – это сложный (структурированный) тип данных, переменная типа массив (для краткости тоже называется "массив") представляет собой совокупность пронумерованных индексом элементов (переменных) одного типа.

Индексы предназначены для нахождения определенного элемента массива, т.е. положение каждого элемента в массиве определяется его индексом. Тип элементов называется базовым типом массива.

В VBA массив рассматривается как переменная структурированного типа. Массиву присваивается имя, посред­ством которого можно ссылаться на него, как на единое целое, так и на любую из его компонент. Переменная с индексом — идентификатор компоненты мас­сива. Формат записи:

<имя массива> (<индекс>), где индекс может быть выражением порядкового типа.

Видим, что индексы принято указывать в круглых скобках после имени массива. По умолчанию нумерация элементов массива начинается с 0. Говорят, что 0 – базовый индекс.

Например, если А – массив из пяти чисел: 2, 3, 7, 9, 6, то А (0) = 2 – первый элемент массива, А (4) = 6 – последний.

Описание массива определяет имя, размер массива, базо­вый тип и производится в разделе переменных. В VBA имеются следующие способы описания массивов:

1. <имя массива> (<номер последнего элемента>) [As <тип>]

2. <имя массива> (<начальный индекс> To <конечный индекс>) [As <тип>]

Отметим, что второй способ позволяет изменить базовый индекс. Другим способом изменения базового индекса является использование оператора Option Base, который имеет следующий синтаксис:

Option Base <базовый индекс>

<базовый индекс> – единица или ноль.

Этот оператор применяется перед процедурой, аналогично оператору Option Explicit.

Например, для изменения базового индекса с 0 на 1 используется оператор Option Base 1.

Массив A, который был рассмотрен, требует одного индекса для указания любого элемента. Такой массив называется одномерным (или линейным) В одномерных массивах хра­нятся значения линейных таблиц. Примеры описания одно­мерных массивов:

1. Dim A (12) As Byte

2. Dim A (1 To 12) As Byte

3. Dim Bin (5) As Integer

4. Dim Str_mass (4) As String

5. Dim K (7)

6. Dim L (0 To 3)

Заполнение массива в программе производится поэлементно. Чаще всего для этого используется цикл с параметром, где в качестве параметра применяется индексная переменная. Возможно заполнение массива путем простого присвоения значения элементам:

Dim B (1 To 3) As Integer

B (1) = 2

B (2) = 18

B (3) = 6

Удобным способом определения одномерных массивов является функция Array, преобразующая список элементов, разделенных запятыми, в вектор из этих значений, и присваивающая их переменной типа Variant.

Dim A As Variant

A = Array (10, 20, 35, 70)

Иногда в процессе выполнения программы требуется изменять размер массива. В этом случае первоначально массив объявляют как динамический. Для этого при объявлении массива не указывают его размерность. Например,

Dim R () As Single

В программе следует вычислить необходимый размер массива и связать его с некоторой переменной, например, n; затем изменить размер динамического массива с помощью оператора ReDim:

ReDim [Preserve] Имя (<номер последнего элемента>) [As <тип>]

ReDim [Preserve] Имя (<начальный индекс> To <конечный индекс>) [As <тип>]

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

Двумерный массив — это сложный (структурированный) тип данных, переменная типа массив (для краткости тоже называется "массив") представляет собой совокупность пронумерованных двумя индексами элементов (переменных) одного типа.

В VBA двумерный массив может быть описан следующим образом:

1. <имя массива> (<n1>, <n2>) [As <тип>]

<n1>, <n2> – номер последнего элемента строки И номер последнего элемента строки соответственно;

2. <имя массива> (<k1> To <k2>, <m1> To <m2>) [As <тип>]

<k1>, <k2> – начальный и конечный индексы элементов строки;

<m1>, <m2> – начальный и конечный индексы элементов столбца.

Например,

Dim mass (5, 5) As Integer

Dim mass (1 To 5, 1 To 5) As Integer

описывают один и тот же массив, при условии, что был использован оператор Option Base 1.

Элементы дву­мерного массива идентифицируются переменными с двумя ин­дексами. Например: М (3, 5). Обычно первый индекс связывают с номером строки, второй — с номером столбца матрицы.

 

Демонстрационные примеры:

1. Приведем фрагмент программы, осуществляющей ввод десяти элементов целочисленного массива А, формирование строки элементов массива и вывод его на экран.

2. Напишем программу, содержащую базовые элементы программ для обработки массивов: заполнение случайными числами динамического массива, поиск наибольшего и наименьшего элементов, перестановка элементов, дописывание в имеющийся массив новых элементов.

3. Дан целочисленный линейный массив. Отсортировать его в порядке убывания значений.

Воспользуемся алгоритмом, известным под названием “метод пузырька”. Идея состоит в последовательном перемещении элементов путем попарных перестановок.

 

 

4. Пример заполнения двумерного динамического массива случайными целыми числами и вывод на экран.

 

 

5. Заполнить матрицу порядка n по следующему образцу:

Идея алгоритма основана на двух свойствах этой матрицы: она симметрична относительно главной диагонали, т.е. A (i, j) = A (j, i) и элементы верхнего треугольника матрицы вычисляются по формуле A (i, j) = i – j + 1.

 

 

6. Сформировать таблицу умножения и вывести ее на экран.

Значения элементов вы­числяются следующим образом: P (i, j) = i*j. Вычисления и вывод матрицы производятся в двух вложенных циклах. Вывод на экран организуем в виде пря­моугольной таблицы.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: