Определение массива. Характеристики массива. Если работа программы связана с хранением и обработкой большого количества однотипных переменных, для их представления в программе можно использовать массивы. Массив представляет собой совокупность данных одного типа с общим для всех элементов именем. Массив относится к структурированным типам данных (упорядоченная совокупность данных). Элементы массива пронумерованы, и обратиться к каждому из них можно по номеру Номера элементов массива иначе называются индексами, а сами элементы массива — переменными с индексами (индексированными переменными). При обращении к элементу массива нужно указать имя массива и индекс того элемента, с которым вы хотите выполнить действие. Индекс элемента массива указывается в квадратных скобках после имени массива. Например, массив а заполнен следующим образом:
-5
8
2
4
-9
-1
6
4
2
1
Значение элемента массива а[3]=2, а а[7]=4. Обратите внимание — данные в массивах сохраняются только до конца работы программы. Для их долговременного хранения программа должна записать данные в файл. Характеристики массива:
тип — общий тип всех элементов массива;
размерность (ранг) — количество индексов массива;
диапазон изменения индекса (индексов) — определяет количество элементов в массиве.
Одномерный массив — это пример массива, в котором элементы нумеруются одним индексом. Способы описания массива
Самый простой способ описания массива — это объявить переменную в разделе описания переменных var с использованием зарезервированного слова array (т. е. массив). В общем виде описание выглядит так:
var ИмяМассива: array[НижняяГраница.. ВерхняяГраница] of Тип Элементов; Например: Constn=100; vara: array[1..n] ofreal; { 100 элементов — вещественные числа } b: array[0..50] of char; { 51 элемент — символы } с: array[-3..4] ofboolean; { 8 элементов — логические значения } x,y: array[1..20] of integer; { два массива x и у содержат по 20 элементов — целые числа } Описание массива требуется компилятору для выделения памяти под его элементы.
Массив также можно описать как типизированную константу в разделе описания констант. Список значений элементов массива при этом заключается в круглые скобки.
Например: const x: array[1..5] of integer=(l,3,5,7,9); В этом примере не просто выделяется память под массив, а происходит заполнение ячеек заданными значениями по строкам.
При описании массивов также широко используется предварительное описание типа в разделе описания типов данных. Такая возможность может потребоваться, например, при использовании имени массива в качестве параметра процедуры или функции.
Например, для массива а из 100 элементов (вещественные числа, тип real) в памяти будет выделено 100 ячеек по шесть байт — всего 600 байт. Type ИмяТипа = аггау[ НижняяГраница.. ВерхняяГраница ] of Тип Элементов; Var ИмяМассива : ИмяТипа; Например: Type z: array[1..20] of integer; Var x, y: z Как вы думаете, при выполнении программы обязательно заполнять все ячейки данными? Почему? Если ячейка не заполнена то, какое значение в ней находится? Может ли реальное количество элементов в массиве может быть меньше, чем указано при описании? Почему? А может быть больше? Почему? Вывод. При выполнении программы вовсе не обязательно заполнять все ячейки данными (в этом случае значение ячейки будет равно нулю), т. е. реальное количество элементов в массиве может быть меньше, чем указано при описании, но ни в коем случае не должно быть больше. Действия с одномерными массивами. Для работы с массивом как единым целым используется имя массива без указания индекса в квадратных скобках. Массивы могут участвовать только в операциях отношения «равно», «не равно», и в операторе присваивания. В этом случае массивы должны иметь одинаковый тип элементов и одинаковое количество элементов. Например. Var A,B:array[1..n] of integer; Применение допустимых операций даст следующий результат: A=B-результат истина, если значение каждого элемента массива а равно соответствующему значению элемента b. A<>B- результат истина, если хотя бы одно значение элемента массива а не равно значению соответствующего элемента массива b. A:=B- все значения элементов массива B присваиваются соответствующим элементам массива A.