Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Массивы




Массивэто конечный, упорядоченный набор элементов одного типа (чисел, символов, строк), рассматриваемый как единое целое. Необходимость в массивах возникает всякий раз, когда необходимо хранить в памяти большое, но конечное количество однотипных данных.

Массив – это n – мерная фиксированная совокупность однотипных элементов, которая отображает следующие математические понятия:

1) вектор с элементами Ai для I = 1 ÷ n; на языке Паскаль это одномерный массив;

2) матрица с элементами Ai,j; на языке Паскаль – это двумерный массив;

3) пространство Ai,j,k,..; на языке Паскаль – это n – мерный массив, где n – количество его измерений (индексов).

Массивы часто используют для:

a) численных методов решения систем алгебраических и дифференциальных уравнений;

b) формирования совокупностей однотипных значений: исходных данных, промежуточных и конечных результатов.

Объявление массива определяет атрибуты, характерные только для массивов:

1) Размерность (количество измерений) или ранг массива определяет количество индексов при обращении к элементу массива;

2) Размер массива – это количество его элементов с учетом всех измерений.

Размерность массива на языке Паскаль не ограничена. Однако общий объем ОП массива должен быть не более 65520 байт.

В Паскале массивы называют также регулярными типами данных. Тип элементов массива называют базовым типом. Он может быть любым: простым или сложным. Так как элементы массива упорядочены по индексам, то индекс элемента определяет его положение в ОП, т.е. доступ к каждому элементу массива в программе осуществляется с помощью индекса, служащего своеобразным адресом элемента массива. Мощность индекса (диапазон) определяется количеством элементов массива по данному измерению (строке или столбцу для двумерного массива).

Размерность и мощности индексов (диапазоны) определяют его форму.

Тип индексов может быть любым простым порядковым (ординальным) типом данных, кроме стандартного LONGINT (длинное целое) и его диапазона. Кроме того, тип индексов может быть перечисляемым или диапазонным. В правильно составленной программе значение индекса не должно выходить за пределы, определенные типом - диапазоном.

Массивы можно определять или в подразделе TYPE или в подразделе VAR.

Ø Форма объявления массива:

TYPE T = ARRAY [T1] OF T2;

VAR A: T; {Массив данных А с типом данных Т2 и типом индексов Т1}.

Можно объявлять массивы и в подразделе VAR:

VAR A: ARRAY [1..20, 1..30] OF INTEGER;

Объявление массивов отвечает на следующие вопросы транслятора:

1. Какие переменные могут быть с индексами;

2. Сколько должно быть индексов при обращении к элементу массива;

3. Какие допустимы значения индексов в соответствии с определенными для них границами;

4. Какой объем ОП нужен массиву.

Операции над массивами в Паскале запрещены. Но допускается копирование элементов одного массива в другой посредством оператора присваивания. Например:

TYPE T = ARRAY [1..10] OF REAL;

VAR A, B: T; ….

A:= B; { Копирование элементов массива }

Если два массива имеют элементы одинакового типа и одинакового типа индексы, то такие массивы можно поэлементно сравнивать, используя логические операции = или <>.

При обращении к элементу массива индексы указываются в квадратных скобках после имени массива. Он может быть выражением. Значение выражения индекса вычисляется перед обращением к элементу массива, и полученный результат используется в качестве индекса (A [I + J], B [I][J DIV 2]).

Над элементами массивов допускаются те же операции, что и над простыми переменными базового типа.

Типичные действия над массивами:

Ø Вывод массива;

Ø Ввод массива;

Ø Сортировка массива;

Ø Поиск в массиве заданного элемента;

Ø Поиск в массиве максимального или минимального элемента.

Ввод-вывод элементов массива можно производить только поэлементно, т.е. с помощью циклов.

Например: FOR I:= 1 TO 10 DO READ (A [I]);.

Если границы элементов массивов являются константами, которые могут изменяться для различных вариантов исходных данных, их можно задать в подразделе CONST. Тогда при изменении размеров массивов достаточно будет изменить граничные значения только в подразделе описания CONST. Например:

CONST M =10; N = 20;

TYPE T = ARRAY [ 1..M,1..N ] OF REAL;

VAR A, B: T;

I, J; INTEGER;

………………..

FOR I:= 1 TO M DO ….

FOR J:= 1 TO N DO …..

В ОП элементы массива располагаются так, что при переходе от элемента к элементу наиболее быстро меняется самый правый индекс массива, т.е. номер столбца матрицы. Следовательно, матрица располагается в ОП по строкам.

Объем ОП для хранения массива определяется числом его элементов и их типом. Например, для хранения 20 элементов массива типа Real необходимо 20*6=120 байт ОП.

 




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


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


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



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




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