Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
80
Добавлен:
27.04.2015
Размер:
290 Кб
Скачать
☆

2.5.1.6. Средства описания и работы с одномерными массивами данных

Массив–это последовательность переменных одинакового типа, объединенных общим именем. Массив состоит из элементов,например: одномерный массив а(50) состоит из 51 элемента:a(0), a(1) a(2) a(3) . . . a(50).

. В программе элементы одного и того же массива отличаются один от другого при помощи индексов. Индексы записываются вслед за именем в круглых скобках и могут представлять собой любое целочислен­ное выражение. Например: d(24), a(2*i+1), b(i,i-1).

Количество индексов указывает на размерность массива. Так, в приведенном выше примере размерность массива a(50) равна единице, то есть массив одномерный. Максимальная размер­ность массива может достигать 60.

В отличие от размерности, размер массива - это количество элементов в массиве. В нашем примере размер массива а(50) равен 51 ( с 0-го по 50).

Перед использованием массива в программе его необходимо объявить с помощью оператора DIM.Этот оператор выделяет место в памяти для размещения элементов массива. Онимеетследующийформат:

DIM v1([imin TO] imax) AS type [, . . . vn([imin TO] imax) [AS type]

где: v1,...,vn - имена описываемых массивов; imin, imax - нижняя и верхняя границы изменения индекса (если imin опущено, то нижняя граница по умолчанию принимается равной нулю - 0); служебное слово AS с параметром type устанавливает тип массива (INTEGER, LONG, SINGLE, DOUBLE, STRING).

Оператор DIM не только объявляет, но и обнуляет элементы числовых массивов или запол­няет элементы строковых массивов пустыми строками (“”). Если одномерный массив, используемый в программе, не объявлен оператором DIM, то верхняя граница его индексов устанавливается равной 10.

Различают два способа распределения памяти: статическое - на этапе компиляции до выполнения программы, и динамическое - в ходе вы­полнения программы. По умолчанию массив, границы которого заданы константными выражениями, считается статическим. Па­мять для размещения такого массива выделяется на этапе компиляции программы и сохраняется за ним на весь период выполнения программы. На­пример:

DIM sigma(1 TO 5) AS INTEGER, m(3) AS INTEGER

Если в процессе выполнения программы элементы массива требуется очистить, то используется оператор

ERASE a[,b . . . c] , где a, b, c – имена массивов.

Если границы массива в операторе DIM указаны в виде пере­менных (или выражений, содержащих переменные), то массив счита­ется динамическим. Причем все переменные, определяющие границы массива, должны быть объявлены до оператора DIM. Например:

m = 5

DIM mas1(m+2).

Выделение памяти для хранения динамического массива осуществляется в процессе выполнения программы. Такой массив можно многократно переопределять (изменять границы индексов, и даже размерность массива) с помощью оператора REDIM, имеющего такой же формат, что и оператор DIM.

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

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

Соседние файлы в папке 2 Уровень повыше. Теоретика