КАТЕГОРИИ: Архитектура-(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) |
Массивы и работа с ними
Под массивом понимается фиксированная совокупность однотипных элементов, расположенных в определенном порядке.
Местоположение элемента в массиве определяется его номером или, иначе, - индексом. Тем самым обеспечивается упорядоченность элементов и возможность быстрого доступа к ним.
Каждый массив обладает по крайней мере тремя характеристиками: мерностью, размерностью и размером . Мерность определяется количеством измерений массива, т.е. количеством индексов, используемых при обращении к элементу массива. В зависимости от числа индексов (измерений) массивы бывают одномерными и многомерными. Например,
а). последовательность чисел
есть одномерный массив, состоящий из 7 элементов целого типа (и только). Присутствие в нем элемента со значением, допустим, 3.14 недопустимо, т.к. это число с дробной частью, т.е. вещественного типа. Обозначить данный массив можно, например, так:
При этом число 13 в массиве будет иметь индекс 6 и выражаться MAS[6] или А[6].
I- ый элемент обозначается MAS[I] или А[I].
Аналогично, последовательность слов МИР РАК РИМ СОК КОТ ТОК также является одномерным массивом, состоящим из 6-ти, но уже 3–х символьных элементов.
б). двумерный массив в нашем представлении есть матрица, где местоположение элемента определяется двумя индексами, первый из которых обозначает строку, а второй – столбец. Поэтому элемент М[2,4] будет располагаться на пересечении 2-й строки и 4-го столбца. А сама матрица, состоящая, например, из 6 строк и 5 столбцов, будет иметь следующее обозначение:
М(6,5)
в). трехмерный массив представляется кубом. Для идентификации отдельного элемента в нем уже применяются 3 индекса: первый и второй отображают, соответственно, строку и столбец плоскости (матрицы) куба, а третий – саму эту плоскость (матрицу). Поэтому отображение
К(3,4,5)
задает куб из 5-ти матриц, каждая из которых насчитывает 3 строки и 4 столбца. А указание К[2,1,3]
выводит нас на элемент, находящийся на пересечении 2-ой строки и 1-го столбца 3-й матрицы куба. Если увеличивать число индексов, то можно оперировать более сложными массивами и представлять n-мерные пространства.
Размерность массива учитывает количество измерений и задается максимальной (верхней) границей диапазона изменения его индексов. В частности, для одномерного массива размерность будет совпадать с количеством элементов в нем. А для двухмерного размерность будет отражать количество строк и, отдельно, количество столбцов в соответствующей ему матрице. Например, говорят: массив В, размерностью 4 на 6, подразумевая, что он двумерный и содержит 4 строки 6 столбцов. Т.е. В(4,6).
Размер массива определяет общее количество его элементов. При этом в расчет берутся все измерения массива. Так, размер двумерного массива В(4,6) равен 24. Напомним, что важнейшей особенностью массива является фиксированно е количество элементов в нем.
Чтобы использовать массивы в программе, их необходимо объявить. Объявить массив – это означает сообщить компилятору: - имя массива, которое определяет переменную с индексами; - тип элементов массива; - тип индексов элементов массива; - размерность массива, равную количеству его индексных позиций; - порядок позиционирования, т.е. нумерации элементов массива; - количество элементов массива.
Полная форма объявления массива:
cписок тип TYPE <имя типа > =ARRAY[ <типов индексов > ] OF < элементов >; массива через запятую массива
VAR < имя массива >: < имя типа массива>;
Типы индексов указываются для каждого измерения и м.б. любыми простыми порядковыми, кроме LONGINT и его диапазона. На практике чаще всего используют интервальный или перечисляемый типы. Тип элементов м.б. любым из допустимых, кроме FILE.
Сокращенная форма объявления:
имя cписок тип VAR < массива >: ARRAY[ <типов индексов > ] OF < элементов >; через запятую массива
Примеры объявления одномерных массивов:
a). полная запись:
TYPE A=ARRAY[1..50] OF INTEGER; B=ARRAY[10..20] OF REAL; C=ARRAY[-5..15] OF BOOLEAN; D=ARRAY[0..25] OF STRING[30]; E=ARRAY[-1..5] OF CHAR; VAR MASA: A; => массив из 50 элементов целого типа MASB: B; => массив из 11 элементов вещественного типа MASС: С; => массив из 21 элемента булевского типа MASD: D; => массив из 26 элементов строкового типа MASE: E; => массив из 7 элементов символьного типа
Границы изменения индексов можно задать и так:
CONST I=-10000; N=10000; TYPE M= ARRAY[I..N] OF REAL;
б). сокращенная запись:
VAR MASA: ARRAY[1..50] OF INTEGER;
Примеры объявления многомерных массивов:
TYPE A1= ARRAY[1..20] OF INTEGER; A2= ARRAY[1..10] OF A1; VAR MSV: A2; => матрица, размерностью 10 на 20
Или:
TYPE A1= ARRAY[1..20] OF INTEGER; VAR MSV: ARRAY[1..10] OF A1;
Или:
VAR MSV: ARRAY[1..10] OF ARRAY[1..20] OF INTEGER;
Или еще проще:
VAR MSV: ARRAY[1..10,1..20] OF INTEGER;
Следует учитывать, что, располагаясь в оперативной памяти, элементы массива образуют цепочку, в которой при последовательном переходе от элемента к элементу быстрее меняется самый правый (младший) индекс. Иными словами, в массиве T(2,3) элементы расположатся в следующем порядке:
Т[1,1] Т[1,2] Т[1,3] Т[2,1] Т[2,2] Т[2,3]
А в нашем представлении:
Т[1,1] Т[1,2] Т[1,3] Т[2,1] Т[2,2] Т[2,3]
Для обращения к любому элементу объявленного массива предназначена переменная с индексом. По форме записи - это имя массива со списком из одного или нескольких индексов через запятую, заключенным в квадратные скобки. Индекс может быть константой или выражением того же типа, что и тип индекса:
MASА[7] => обращение к 7–му (из 50-ти) элементу массива MASA. MSV[2,5] => обращение к элементу, лежащему на пересечении 2-ой строки и 5-го столбца матрицы MSV. M1[i+1,j-2,k*3] => обращение к элементу трехмерного массива M1, индексы которого вычисляются согласно приведенным выражениям.
Замечания: 1. при обращении к элементам массива следует помнить, что количество индексных выражений /индексов/ должно равняться размерности массива. 2. значения индексов должны находиться в пределах их границ, заданных интервалом или перечислением. 3. значение вычисляемого индекса должно соответствовать типу индекса и не м.б. REAL. Например, недопустимо:
Pole:=MSV[ 15, 25/(3+a), 4 ];
т.к.: - первый индекс д.б. < = 10 - второй – дает в результате REAL - третьего индекса вообще не должно быть
Можно описывать массивы с помощью компонент и индексов разных типов: а). TYPE DAY=(PND,VTR,SRD,CTV,PTN,SBT,VSK); VAR DN: ARRAY[1..7] OF DAY;
Значениями элемента этого массива DN может быть один из 7 дней недели, задаваемых перечисляемым типом DAY, т.е допустимо:
DN[5]:=CTV;
б). TYPE GR=(EIS_111,EIS_112,EIS_211,EIS_212,EIS_311,EIS_312); ML_KURS=(1..3); VAR STUD: ARRAY[GR, ML_KURS] OF INTEGER; Тогда,
STUD[EIS_112,1]:=23; => число студентов в группе.
Дата добавления: 2014-01-15; Просмотров: 950; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |