Массивы

4125
знаков
2
таблицы
0
изображений

Иногда бывает так нужны десятка два переменных и, если бы не массив, прищлось бы писать

Dim A As Integer

Dim B As Integer

.......

.......

.......

Dim X As Integer

Dim Y As Integer

Но нет! Для этого есть массивы! Но для того, чтобы его использовать сначало надо его объявить, например:

Dim A(20) As Integer

Это равносильно двадцати переменным!!! Но по-моему так удобней :)? Т.е. этим мы выделили двадцать ячеек памяти.

Массив представляет собой набор значений, связанных с одним именем. Массивы бывают одномерными (список значения), двумерными (таблица значений), но при необходимости работы со сложными математическими моделями, например, трёхмерными фигурами, Вы можете задать и большее количество измерений массива. Массивы могут быть так же динамический, т.е. не содержать определённое количество ячеек. Декларируются они так:

Dim ABC () As ... т.е. в скобках ничего не указывается

Чтобы установить размерность массива нужно использовать ключевое слово ReDim, которое перераспределяет массив, стирая старые ячейки.

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

Например, у Вас есть восемь чисел и для каждого нужна переменная. Если они одинакового типа, то можно создать массив и присвоить эти значения (см. примечания):

Dim ABC (8) As Integer

ABC(0) = 123

ABC(1) = 5

ABC(2) = 87

ABC(3) = 4

ABC(4) = 99

ABC(5) = 43

ABC(6) = 7

ABC(7) = 21

ABC(8) = 11

Этот массив графически можно представить так:

Ячейка 0 1 2 3 4 5 6 7 8
Значение 123 5 87 4 99 43 7 21 11

Допустим, что Вы пишите программу, которая создаёт палитры и она должна запросить количество цветов, которые она должна смешать и какие (Вы только сильно не радуйтесь следующий пример ничего мешать не будет, он только запросит цвета ;-)):

Sub Main()

Dim MyArray() As Stringобъявляем массив, содержащий цвета

Dim x As Integer объявляем переменную, содержащую кол-во цветов

Dim y As Integer объявляем переменную-счётчик

Dim Msg As String объявляем переменную, содержащую все названия цветов

x = InputBox("Введите число цветов") получаем количество цветов

перераспределяем в массиве столько ячеек, сколько цветов мы получили

ReDim MyArray(x)

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

цветов

For y = 1 To x

присваеваем каждой ячейке цвет

MyArray(y) = InputBox("Ведите цвет номер " & y)

Next

запускаем цикл, который собирает все цвета в одну переменную

For y = 1 To x

теперь мы вытаскиваем все значения

Msg = Msg + MyArray(y) + Chr(13) + Chr(10)

Next

MsgBox Msg выводим все цвета, которые ввели

End Sub

Здесь вроде бы всё просто! Теперь двумерный массив. Но не пугайтесь, здесь не менее просто, только с непривычки можно чуть-чуть запутаться :-).

Декларируются они так:

Dim ABC(1, 8) As String

Это получается этакая таблица: две ячейки на десять. Примерно так:

0 1 2 3 4 5 6 7 8
0 красный оранжевый жёлтый зелёный голубой синий фиолетовый бирюзовый пурпурный
1 коричневый серый чёрный белый розовый лиловый вишнёвый прозрачный матовый

И всё это присвоить таким образом:

ABC(0, 0) = "красный"

ABC(0, 1) = "оранжевый"

ABC(0, 2) = "жёлтый"

и т.д. Ну, очень напоминает систему координат! А чтобы вызвать, например, лиловый нужно написать так:

Color = ABC(1, 5) переменной color присваеваем строку "лиловый"

Трёхмерную таблицу я начертить не смогу, но думаю, что и там всё понятно. Объявляется он, например так:

Dim ABC (10, 4, 7)

Таким образом уже создётся как бы геометрический прямоугольник длиной 10, шириной - 4 и высотой - 7. Всего внутри 440 ячеек ( 11 * 5 * 8).

Примечание: Вы должны помнить, что объявляя массив с, например, тремя ячейками, в скобках Вы должны писать 2,

Dim ABC(2) As Variant

т.к. идекс ячеек начинается с нуля: 0, 1, 2 - в сумме получается три. Если в скобках окажется цифра три, то ячеек будет четыре: 0, 1, 2, 3. Если Вам кажется это неудобным, то строкой (в самом верху формы или модуля):

Option Base 1

Вы как бы сдвините массив вверх на один, и нижней границей станет не 0, а 1. Также есть другой способ:

Dim ABC(1 To 2)

Результат одинаков!

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://visualprogs.narod.ru/


Информация о работе «Массивы»
Раздел: Информатика, программирование
Количество знаков с пробелами: 4125
Количество таблиц: 2
Количество изображений: 0

Похожие работы

Скачать
56781
0
12

... они являются отдельными массивами. Пример определения динамических массивов: 1          var 2          byteArray: Array of Byte; // одномерный массив 3          multiArray: Array of Array of string; // двумерный массив 1.2.3 Функции для работы с массивами Copy (Source : array; StartIndex, Count : Integer ) : array – создает копию части массива. High (type or variable): Ordinal type ...

Скачать
61373
2
1

... выполнения этой функции */  /* указатель q должен быть возвращен в первоначальное */  /* положение */  free(++q);  /* Рассмотрим возможность изменения индексации и */  /* освобождения памяти для двумерного массива */  b=(float **)calloc(m,sizeof(float *));  for (i=0; i < m; i++)  b[i]=(float *)calloc(n,sizeof(float));  /* После распределения памяти начальным элементом */  /* массива ...

Скачать
42712
23
23

... с условием задачи; 4) выводить исходные данные и результаты вычислений. Исходные данные для отладки программы выбрать самостоятельно. Массив объявить как статический. Задание: В одномерном массиве A размерностью n, найти количество чисел, меньших заданного X, и произведение отрицательных чисел, стоящих на четных местах. Решение Таблица соответствия переменных Переменные в задаче Имя ...

Скачать
22462
7
0

... 30 END Возможно присваивание значений не всем элементам массива. Тогда оставшиеся элементы будут иметь начальное нулевое значение. Если загрузить значения в большой массив, то эти методы работы с массивами становятся непрактичными. Можно значительно упростить программу, если привлечь для присвоения значений оператор цикла FOR. Выполните и проанализируйте действие программы 4. ПРОГРАММА 4 10 ...

0 комментариев


Наверх