Понятие об индексированных переменных
Массивы
Массивом называется совокупность индексированных элементов 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 не удаляет массив, а только очищает его.