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

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 Уровень повыше. Теоретика