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

5.2.14. Массивы. Переменные типа массива

В языке Basic масси­вы данных со­сто­ят из данных одинакового ти­па, нумеруемых последовательными целыми чис­лами. Номера эле­ментов по другому называются индексами.

Обычно на­чальный индекс (индекс пер­вого элемента массива) ра­вен 1, а конечный ин­декс соответственно равен количеству элементов в мас­сиве. Но это не­обязательно, начальный индекс может быть любым целым числом, напри­мер, 0 или -100. Соответственно, ко­нечный ин­декс будет ра­вен сумме на­чального индекса и количества эле­ментов без единицы.

Все массивы дан­ных с одинаковым диа­пазоном изме­нения индек­сов и одинаковым типом эле­ментов принадлежат одному ре­гулярному типу данных. Например, все­возможные массивы с элементами типа INTEGER, проиндексированные в пределах от -3 до +3 (7 элементов), представляют от­дельный регулярный тип.

Конкретный регу­лярный тип полно­стью задается ти­пом элемен­тов и диапазоном изменения индексов. Поэтому необязательно давать отдель­ные имена для регулярных типов данных. Доста­точно указы­вать дополни­тельные признаки в опера­торах объявления перемен­ных.

В языке Basic в операторе объявления переменных достаточно за именем пе­ре­менной регулярного типа указать конструкцию вида

(   начИндекс   TO    конИндекс   )

где начИндекс  и конИндекс - целые константы, задающие соответст­вен­но начальный индекс и конечный индекс. TO - ключевое сло­во (с анг­лийского - до).

Пример. Для объявления переменной X, служащей для хранения мас­сива из 10 элементов типа INTEGER, достаточно записать:

DIM    X (1 TO 10)    AS INTEGER

Для доступа к внутренним элементам переменных регулярного типа слу­жит язы­ковая конструкция, называемая индексированной переменной. Та­кая кон­ст­рукция в языке рассматри­вается как имя внутренней перемен­ной, хра­нящей этот элемент, и может использо­ваться всюду, как и имя обыч­ной переменной. В том числе в левой и правой частях оператора при­сваивания.

В языке Basic индексированная переменная состоит из имени пере­менной ре­гу­ляр­ного типа, за которой в круглых скобках следует целое вы­ражение, за­даю­щее некоторый индекс.

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

Пример. Для объявленной ранее переменной X, можно задавать такие ин­декси­рованные переменные: X(1), X(5), X(I*5-3), которые могут ис­поль­зо­ваться как обычные переменные

X(1)=0

X(5)=X(3)+A*B-3

X(I*5-3)=2*I-7+X(I)

Пример. Объявим переменную Z регулярного типа с элементами струк­тур­ного типа, например, описанного ранее типа Product :

DIM    Z  (  -5   TO   5  )   AS    Product

Тогда, например, Z(3) является переменной структурного типа, со­стоя­щей, в свою очередь, из переменных Z(3).Part, Z(3).Price и Z(3).Fam; Z(3).Part состоит, в свою очередь, из переменных Z(3).Part.Det, Z(3).Part.Num и Z(3).Part.W.

Как уже отмечалось выше, массивы могут состоять из элементов, также являющихся массивами. Такие массивы называются многомер­ны­ми, в отли­чие от рассмотренных ранее одномерных массивов с ком­по­нен­тами элемен­тарного или структурного типов. В частности, массивы из одномерных мас­сивов являются двумерными; массивы, элементами кото­рых являются двумер­ные массивы, называются трех­мерными массивами и т.д.

В языке Basic для объявле­ния переменной, хранящей мно­го­мер­ный массив, достаточно в операторе объявления переменных за именем пе­ре­менной регулярного типа указать конструкцию вида

(  начИнд1  TO  конИнд1,  начИнд2  TO  конИнд2,  ........ )

где для каждой размерности массива указываются целые константы на­чИнд  и конИнд - задающие соответст­вен­но начальный индекс и конеч­ный индекс. Описания диапазонов индексов для каждой размер­ности сле­дуют через запятую.

Пример. Для объявления переменной W, служащей для хранения мас­сива из 10 элементов регулярного типа из 6 элементов типа INTEGER, доста­точно запи­сать

DIM    W (1 TO 10, 1 TO 6)    AS INTEGER

Индексированная переменная для многомерных массивов состоит из имени переменной ре­гу­ляр­но­го типа, за которой в круглых скобках следу­ют через запятую целые вы­раже­ния, задаю­щие индексы для каж­дой раз­мерности массива.

Пример. Для объявленной ранее переменной W, можно задавать та­кие ин­декси­рованные переменные: W(1,3), W(9,5*K), W(I*5-3,J*K-3), ко­торые мо­гут ис­пользо­ваться как обычные переменные:

W(1,3)=0

W(9,5*K)=W(1,3)+A*B-3

W(I*5-3,J*K-3)=2*I-7+W(I,J)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]