Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обращение к элементу массива




Basic

Объявления массивов

Массивы

Совокупности данных

Дополнительные типы данных

Описанные выше типы данных можно считать основными. Они используются в той или иной форме во всех языках программирования. В языке C (C++) определены также следующие типы: указатели, ссылки, перечисления (enum), void; в языке Basic: перечисления (enum), даты (date), универсальный (object) и десятичный (decimal). Они будут введены позже по ходу изложения.

Переменные любых типов могут быть объединены в совокупности. Если в совокупности все переменные одного типа и место каждой определяется номером (индексом), то это массив, если же разных, то – структура.

Пример. Массив. Система линейных алгебраических уравнений.

a11*x1+a12*x2=b1

a21*x1+a22*x2=b2

В результате имеем 3 массива: {aij,i,j=1,2}, {xk,k=1,2}, {bl,l=1,2}.

Количество индексов определяет размерность массива. Различают одномерные (размерность равна 1) и многомерные (размерность > 1) массивы.

Расположение в памяти элементов многомерного массива в языках C и Basic лексикографическое, т.е. в следующем порядке: a11 a12 a21 a22 .

Доступ к отдельным элементам производится по значениям индексов.

Пример.

i=1 j=2 aij=a12

Массивы должны быть объявлены в специальных инструкциях.

С

<элемент>:=<имя> [ <длина> ] [, [ <длина> ] ]…

<длина> - количество элементов массива в данном измерении.

Замечание. Жирным выделены символы языка, начертание которых совпадает с метаобозначениями.

Пример.

Page[10 ] Line[81] Screen[24][80] Vect[20] Matr[10][10]

Нижняя граница (минимальное значение) индекса в каждом измерении всегда равна 0, верхняя (максимальное значение) равна длина-1.

Пример.

В объявлении Matr[10][10] первый элемент – это Matr[0][0], последний – Matr[9][9]. Всего элементов 10*10=100. Многомерный массив можно рассматривать как массив, элементами которого являются массивы меньшей размерности.

Пример.

Matr[0] – первый элемент массива, элементом которого является массив из 10 элементов.

Длина измерения – целое постоянное выражение (пока будем считать, целое без знака).

< массив >:=< имя >(< индекс>[,<индекс>]...)

<индекс>:=[нижняя граница to ] верхняя граница

Различают массивы фиксированного размера (в качестве границ при объявлении используются целые числа >0) и массивы, размеры которых могут изменяться при выполнении программы – динамические массивы (о них позже). В данной версии языка нижняя граница индекса массива всегда равна 0. Задать отличную от 0 нижнюю границу можно, но это только приведет к неиспользованию части отведенной под массив памяти.

Пример.

A(1,1) X(1) DaysOfMonth(1 to 12) Etap(1 to 20, 1) Matr(,)

Массив Matr() относится к динамическим массивам.

Замечание. Старайтесь не использовать нижнюю границу при объявлении массива, поскольку нижняя граница измерения всегда равна 0. В результате при массивах DaysOfMonth и Etap память используется неполностью.

DaysOfMonth: выделено памяти под 12+1=13 элементов, используется 12,

Etap: выделено памяти под (20+1)*(1+1)=42 элемента, используется 40.

В отличие от языка C, где в объявлении массивов используется понятие длина или количества элементов в данном измерении массива, понятие верхняя граница означает максимальное значение индекса в данном измерении и, следовательно, объявление A(1,1) определяет массив данных из 4 элементов: A(0,0), A(0,1), A(1,0), A(1,1). Как видно из примера, многомерные массивы аналогично языку C располагаются в памяти построчно.

С

<имя> [ i1 ] [ [ i2 ] ]…, где i1, i2 – целые выражения.

Пример.

Page[ 5 ] Line[ i ] Screen[ j ][ k ] Matr[ i-1 ][ j+i-1]

Basic

<имя>(i1[,i2]...), где i1, i2 – целые выражения.

Пример.

Page(5) Line(i) Etap(j, k) Matr(i-1, j+i-1)




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 496; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.