Компонентный Паскаль/Знакомство с массивами: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Строка 1: Строка 1:
__TOC__
__TOC__
==Общие сведения о массивах==
==Общие сведения о массивах==
Массивом называется выделенный блок однотипных переменных, например 1`000 переменных типа INTEGER или 1`000`000 типа CHAR. Или даже ещё больше. Поскольку разные типы переменных занимают разное число байтов в памяти, массивы из одного количества элементов (например 1000) могут занимать разное количество байт(например SHORTCHAR займёт 1000 байт, а LONGINT -- 8000). Необходимость в массивах возникает довольно часто, особенно при обработке больших ''массивов данных''. Например, Большой адронный коллайдер (БАК) в Швейцарии (родине Никлауса Вирта) создаёт такие огромные массивы данных, что после каждого запуска БАК все ведущие университеты мира и исследовательские организации по полгода обрабатывают накопленные данные.
Массивом называется выделенный блок однотипных переменных, например 1`000 переменных типа INTEGER или 1`000`000 типа CHAR. Или даже еще больше. Поскольку разные типы переменных занимают разное число байтов в памяти, массивы из одного количества элементов (например 1000) могут занимать разное количество байт (например SHORTCHAR займет 1000 байт, а LONGINT 8000). Необходимость в массивах возникает довольно часто, особенно при обработке больших ''массивов данных''. Например, Большой адронный коллайдер (БАК) в Швейцарии (родине Никлауса Вирта) создает такие огромные массивы данных, что после каждого запуска БАК все ведущие университеты мира и исследовательские организации по полгода обрабатывают накопленные данные.


===Объявление массива===
===Объявление массива===
Строка 9: Строка 9:
d: ARRAY 1000 OF INTEGER;
d: ARRAY 1000 OF INTEGER;
</source>
</source>
Как видно из приведённого текста массив объявляется ключевым словом ARRAY, после чего через пробел указывается его размерность. После определения размерности следует ключевое слово OF с указанием типа элементов INTEGER. Точно также, как и в случае с обыкновенными переменными окончание объявление массива ограничивается точкой с запятой (если это не последний элемент секции VAR).
Как видно из приведенного текста массив объявляется ключевым словом ARRAY, после чего через пробел указывается его размерность. После определения размерности следует ключевое слово OF с указанием типа элементов INTEGER. Точно также, как и в случае с обыкновенными переменными окончание объявление массива ограничивается точкой с запятой (если это не последний элемент секции VAR).


Ничто не мешает объявить два или больше массивов сразу, через одно объявление типа:
Ничто не мешает объявить два или больше массивов сразу, через одно объявление типа:
Строка 16: Строка 16:
d1, d2, d3, d4: ARRAY 1000 OF INTEGER;
d1, d2, d3, d4: ARRAY 1000 OF INTEGER;
</source>
</source>
Всё это допустимые формы объявления переменных (массив особый случай переменной, но по большому счёту -- это переменная).
Всё это допустимые формы объявления переменных (массив особый случай переменной, но по большому счету это переменная).


===Объявление многомерного массива===
===Объявление многомерного массива===
Многомерным массивом называется такой массив, в котором расположение элементов не только по одной линии (друг за другом), но и в более высоких размерностях. Например, массив с двумя измерениями можно уподобить фигуре на плоскости. При этом при размерности 1000х1000 он будет в общей сложности иметь 1 млн. элементов (1000^2). Такой массив называется прямоугольным или квадратным по аналогии с планиметрией. Массив с тремя измерениями будет иметь размер 1000х1000х1000 -- 1 млрд. элементов (1000^3). А это уже даже для современных компьютеров довольно много. Такой массив называется объёмным или кубическим по аналогией со стереометрией. Можно создать массив с ещё более высокими размерностями и адекватно представить даже в воображении такой массив трудно, если не невозможно. Но тем не менее, аналогии можно провести с реальностью. Например структура "Города-улицы-дома-квартиры". Ниже пример объявления многомерных массивов:
Многомерным массивом называется такой массив, в котором расположение элементов не только по одной линии (друг за другом), но и в более высоких размерностях. Например, массив с двумя измерениями можно уподобить фигуре на плоскости. При этом при размерности 1000х1000 он будет в общей сложности иметь 1 млн. элементов (1000^2). Такой массив называется прямоугольным или квадратным по аналогии с планиметрией. Массив с тремя измерениями будет иметь размер 1000х1000х1000 1 млрд. элементов (1000^3). А это уже даже для современных компьютеров довольно много. Такой массив называется объемным или кубическим по аналогией со стереометрией. Можно создать массив с ещё более высокими размерностями и адекватно представить даже в воображении такой массив трудно, если не невозможно. Но тем не менее, аналогии можно провести с реальностью. Например структура "Города-улицы-дома-квартиры". Ниже пример объявления многомерных массивов:
<source lang="oberon2">
<source lang="oberon2">
VAR
VAR

Версия от 11:45, 16 апреля 2015

Общие сведения о массивах

Массивом называется выделенный блок однотипных переменных, например 1`000 переменных типа INTEGER или 1`000`000 типа CHAR. Или даже еще больше. Поскольку разные типы переменных занимают разное число байтов в памяти, массивы из одного количества элементов (например 1000) могут занимать разное количество байт (например SHORTCHAR займет 1000 байт, а LONGINT — 8000). Необходимость в массивах возникает довольно часто, особенно при обработке больших массивов данных. Например, Большой адронный коллайдер (БАК) в Швейцарии (родине Никлауса Вирта) создает такие огромные массивы данных, что после каждого запуска БАК все ведущие университеты мира и исследовательские организации по полгода обрабатывают накопленные данные.

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

Массив, по сути это такая же переменная, как и например, BOOLEAN. Поэтому объявление массивов не выбивается из общих правил:

VAR
	d: ARRAY 1000 OF INTEGER;

Как видно из приведенного текста массив объявляется ключевым словом ARRAY, после чего через пробел указывается его размерность. После определения размерности следует ключевое слово OF с указанием типа элементов INTEGER. Точно также, как и в случае с обыкновенными переменными окончание объявление массива ограничивается точкой с запятой (если это не последний элемент секции VAR).

Ничто не мешает объявить два или больше массивов сразу, через одно объявление типа:

VAR
	d1, d2, d3, d4: ARRAY 1000 OF INTEGER;

Всё это допустимые формы объявления переменных (массив особый случай переменной, но по большому счету — это переменная).

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

Многомерным массивом называется такой массив, в котором расположение элементов не только по одной линии (друг за другом), но и в более высоких размерностях. Например, массив с двумя измерениями можно уподобить фигуре на плоскости. При этом при размерности 1000х1000 он будет в общей сложности иметь 1 млн. элементов (1000^2). Такой массив называется прямоугольным или квадратным по аналогии с планиметрией. Массив с тремя измерениями будет иметь размер 1000х1000х1000 — 1 млрд. элементов (1000^3). А это уже даже для современных компьютеров довольно много. Такой массив называется объемным или кубическим по аналогией со стереометрией. Можно создать массив с ещё более высокими размерностями и адекватно представить даже в воображении такой массив трудно, если не невозможно. Но тем не менее, аналогии можно провести с реальностью. Например структура "Города-улицы-дома-квартиры". Ниже пример объявления многомерных массивов:

VAR
	d1, d2: ARRAY 1000, 1000 OF INTEGER;
	d3, d4: ARRAY 1000, 1000, 1000 OF REAL;

В первом случае объявлены два массива типа INTEGER с двумя измерениями. Во-втором случае объявлены два массива с тремя измерениями типа REAL.

Количество измерений массивов и их размер не может быть бесконечным по нескольким причинам:

  • Размер памяти компьютера ограничен
  • Если массив даже будет с небольшими несколькими размерностями -- их может оказаться достаточно, что бы памяти компьютера не хватило
  • Если компьютер с 32-х битной архитектурой, то обратиться к ячейке памяти с адресом свыше 2^32 (примерно 4,2 млрд.) компьютер не сможет, хотя размерностей может быть будет всего 4-5-6.

Заключение

Как работать с массивами рассмотрим в следующих главах. Но уже сейчас полезно знать, что программист не оставлен 1 на 1 с огромными данными, не нужно руками описывать сотни тысяч переменных, чтобы хранить большие объёмы данных. Кроме того, массивы, по сути -- те же переменные, и всё что справедливо для переменных -- справедливо и для массивов с дополнением буквально нескольких особенностей.