Этой статьёй я начинаю рассказ о структурированных типах данных. Структурированные типы - это данные, которые состоят не из одного, а из множества элементов. В Паскале это, например, массивы, записи, множества и файлы.
Самый, пожалуй, простой и понятный - это массив - совокупность данных одного и того же типа (в Паскале, в некоторых других языках в массиве могут быть данные разных типов).
Ну и, как всегда, напомню, что этот канал рассчитан, в основном, на начинающих, поэтому я обычно отбрасываю излишние подробности, а иногда даже жертвую точностью терминологии ради простоты.
Для описания массива в Lazarus, как и в других реализациях Паскаля, используются слова array … of:
ИмяМассива : array[СписокИндексов] of ТипДанных;
- ИмяМассива - любой допустимый идентификатор.
- СписокИндексов - перечисление диапазонов изменения номеров элементов массива. Индекс - это номер элемента массива.
Диапазон индексов массива определяется интервальным типом, например, так:
M1 : array[1..10] of Byte;
Здесь мы объявили массив байтов, который состоит из 10 элементов, и в котором индексы (номера) элементов находятся в диапазоне 1..10. Индекс массива в Паскале может начинаться с любого числа (не обязательно с единицы), и даже может быть вообще не числом (главное, чтобы это был порядковый тип). Причём, если это число, то оно может быть и отрицательным. Главное, чтобы это был диапазон “слева направо”, то есть первое число должно быть меньше или равно второму числу. Вот так:
array[10..1] of…
делать нельзя.
Массивы могут быть многомерными. Чаще всего используются двухмерные - матрицы (таблицы). Изредка - трёхмерные. Массивы с большей размерностью использовать не советую, потому что так можно легко заблудиться в измерениях. Пример двумерного массива:
array[1..3, 1..4] of Word
Здесь мы описываем массив-таблицу из трёх строк и четырёх столбцов. Впрочем, разделение на столбцы и строки весьма условное. Это зависит от того, как вы их будете использовать в программе.
Больше примеров см. на рисунке:
На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.