Понятие об индексированных переменных

Массивы

 

 

Массивом называется совокупность индексированных элементов a(i,j):

а11 а12 ... a1j ... а1n

...

аi1 аi2 ... аij ... аin (9.4.26)

...

аm1 аm2 ... аmj ... аmn

Здесь аij – элемент массива. Индекс i означает номер строки, j – номер столбца.

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

Число индексов в многомерных массивах ограничено и в системе QBasic не превышает восьми. Верхнее значение индекса может быть равно 32767, а нижнее - 0.

Объявление массивов осуществляется оператором DIM. Размерность массива может задаваться константами или переменными:

DIM A(10)

DIM A1(m), B(m,n)

DIM С(нижняя_граница TO верхняя_граница).

DIM A2(1 to m), B2(5 to 10, 1 to 20)

DIM A(10) – одномерный массив, содержит 11 элементов;

DIM B(5 TO 10, 1 TO 20) – двухмерный массив, имеет 6 строк и 20 столбцов. Нумерация строк начинается с 5, а нумерация столбцов с единицы. При объявлении массивов можно указать и их тип.

По умолчанию нумерация элементов массива начинается с нуля. Для изменения индексации с нуля на единицу используется оператор Option Base N, где N может принимать значения 0 и 1. Однако, при объявлении массивов можно задавать произвольные значения верхних и нижних границ массива, как показано выше.

В зависимости от способа распределения памяти массивы делятся на массивы со статическим распределением памяти и массивы с динамическим распределением памяти.

Массивы со статическим распределением памяти (для краткости – статические массивы) объявляются операторами Dim с атрибутом STATIC. Если размерность массива задана константами, то массив считается статическим:

DIM [STATIC] ABC(1 TO 5, 1 TO 2).

Размерность статического массива не может быть изменена при выполнении программы.

Массивы с динамическим распределением памяти (для краткости – динамические массивы) объявляются оператором DIM с атрибутом DINAMIC. Размерности динамического массива задаются переменными:

DIM [DINAMIC] A ( m, n)

При объявлении массивов вместе с оператором DIM и REDIM может использоваться также атрибут SHARED. Этот атрибут означает, что данный массив является массивом общего пользования, доступен нескольким программным модулям:

REDIM SHARED B ( m, n)

Переобъявление размерностей массива осуществляется оператором REDIM:

REDIM B3(m, n)

Удалениемассива осуществляется командой Erase:

ERASE < имя_массива>

Для статических массивов команда Erase не удаляет массив, а только очищает его.