Операторы описания массивов
Массив — группа переменных, которые имеют одно и то же имя, но различные индексы. Каждая переменная называется элементом массива и характеризуется двумя атрибутами: своим положением внутри массива и значением. При этом все элементы массива имеют один и тот же тип. В качестве индекса элемента массива могут использоваться числа, переменные целого типа или арифметические выражения.
Имя массива может содержать до 40 символов (букв латинского алфавита, цифр, специальных знаков). Присваивать значения элементам массива можно различными способами:
- с помощью оператора присваивания;
- с помощью цикла при заполнении большого массива;
- путем ввода значений с клавиатуры;
- использованием операторов DATA и READ:
- использованием стандартных функций.
QBASIC не всегда требует объявления массива при использовании его в программе. Если массив содержит менее 11 элементов, достаточно одного упоминания имени переменной, чтобы QBASIC автоматически выделил ячейки в памяти для массива с 11 элементами и присвоил им нулевые значения. Первый элемент массива по умолчанию имеет номер ноль, а не 1, поэтому последний элемент будет иметь порядковый номер 10.
Для того, чтобы первый элемент массива имел номер 1, нужно воспользоваться специальным оператором:
OPTION BASEзначение,
где: значение - номер начального элемента массива. Этот параметр может принимать значения 0 или 1; по умолчанию 0.
Пример.
OPTION BASE 1
DIM NUM% (100)
Оператор OPTION BASE может использоваться в программе только один раз до описания всех массивов.
Для описания больших массивов используется оператор DIM. Общий вид оператора:
DIM имя1 (размер 1) [,имя2 (размер 2), . . .]
где: имя1, имя2 - имена массивов переменных; размер 1, размер 2 - размерность массива, выражаемая следующим образом:
[нижний TO] верхний ,[нижний TO] верхний, например:
DIM A (100 TO 200) - одномерный массив;
DIM D%(10 TO 50, 20 TO 30) - двухмерный массив.
Функции оператора описания массивов DIM:
- позволяет резервировать место в памяти сразу для нескольких массивов;
- определяется имя массива;
- задает тип элементов массива;
- резервирует ячейки памяти для элементов массива;
- присваивает нулевые значения ячейкам массива числового типа или пустые строки текстового массива;
- предоставляет возможность использовать в программах массивы с числом измерений до 60.
Пример. Заполнение двухмерного массива А(5,3) по строкам.
DIM A(5,3)
FOR I=1 TO 5
FOR J=1 TO 3
INPUT A(I,J)
NEXT J
NEXT I
Правила записи оператора DIM:
- в одном операторе можно объявлять любое число массивов;
- оператор DIM желательно помещать в начале программы;
- не использовать в программе простую переменную и массив с одним именем;
- границы массива могут быть переменными.
Размер одного массива не может превышать 64 Кбайт. Для получения объема памяти, занимаемой массивом, нужно умножить число элементов массива на размер одного элемента.
Таблица 7.3
Распределение памяти для переменных
Тип переменной | Знак типа | Число занимаемых байтов |
1. Целый | % | |
1. Длинный целый | & | |
1. Одинарной точности | ! | |
1. Двойной точности | # | |
1. Строковый произвольной длины | $ | 1 байт для 1 символа |
Две стандартные функции LBOUND и UBOUND возвращают верхнее (UBOUND) и нижнее (LBOUND) значения границ определенного измерения массива. Общий вид функций:
LBOUND (массив[, размерность])
UBOUND (массив[, размерность])
где:массив - имя массива, размерность - номер измерения массива, для которого эти функции возвращают значения нижней и верхней границы. Для определения индекса первого измерения используется 1, для второго - 2 и т.д.
Пример. Объявление двухмерного массива.
CLS
‘объявление двухмерного массива
DIM M (-10 TO 5, 20 TO 30)
‘ вывод границ массива
PRINT LBOUND (M, 1);
PRINT UBOULD (M, 1)
PRINT LBOUND (M, 2);
PRINT UBOULD (M, 2)
END
Результат на экране:
-10 5
20 30
Дата добавления: 2016-04-02; просмотров: 2231;