5. Массивы.
Массив - это структурированный тип данных, который используется для описания упорядоченной совокупности фиксированного числа элементов одного типа, имеющих общее имя. Для обозначения элементов массива используются имя переменной-массива и индекс.
Type < имя типа массив > = Array [ <тип индекса>] Of < тип элементов >;
Var < имя переменной > : < имя типа массив >;
< тип индекса > - перечисляемый, логический, символьный, диапазон
Поскольку тип массив относится к стандартным типам языка Паскаль, то он может быть использован в описаниях переменных и без определения для него специального имени в разделе описания типов.
Var < имя переменной > : Array [ < тип индекса > ] Of < тип элементов >;
Массивы обычно используются в тех программах, где требуется сохранять во время выполнения программы в памяти ЭВМ некоторую совокупность величин одного типа. Например, это требуется для задач, алгоритмы решения для которых предполагают неоднократное обращение к элементам заданной последовательности. Кроме того, массивы часто используются и в тех случаях, когда для решения задачи достаточно однократного использования каждого элемента последовательности и, следовательно, нет необходимости хранить все элементы в памяти ЭВМ. Примерами таких задач являются все задачи с последовательностями из предыдущего параграфа.
Пример. Дана последовательность из n вещественных чисел. Упорядочить ее элементы по возрастанию. Решение: рассмотрим метод сортировки выбором. Отыскивается максимальный элемент и переносится в конец массива; затем этот метод применяется ко всем элементам, кроме последнего (он уже находится на своем окончательном месте), и т.д.
Program SortCase; Const n=10; Type mas:Array[1..n] Of Real; Var x : Mas; i,j,m : Integer; r : Real;
Begin {ввод элементов массива} For i:=1 To n Do Readln(x[i]); For j:=n Downto 2 Do Begin {поиск m-номера max x[1..j]} m:=1; For i:=2 To j Do If x[i]>x[m] Then m:=i; {перестановка элементов x[m] и x[j]} r:=x[j]; x[j]:=x[m]; x[m]:=r End; {вывод элементов упорядоченного массива} For i:=1 To n Do Writeln(x[i]) End.
5.1. Одномерные массивы. Использованный в описанном выше примере массив относится к тому виду массивов, элементы которых имеют простой тип (целый, вещественный, логический и т.д.). Для указания конкретного элемента массива используется один индекс. Такие массивы называют одномерными.
5.2. Многомерные массивы. Элементы массива не обязательно должны иметь простой тип, но и сами могут являться массивами, например:
Type mas=Array[1..10] Of Array[1..20] Of Integer; Var A:mas;
Тогда A[i][j]- это j -ый элемент i -го элемента массива A. В языке Паскаль такие конструкции можно записывать в более короткой форме.
Type mas=Array[1..10,1..20] Of Integer и указывать элемент массива такого типа в виде A[i,j]. Т.к. здесь используется два индекса для задания элементов, то массив называют двумерным. В общем случае можно использовать и r - мерные массивы. Двумерные массивы являются той структурой данных, которая наиболее естественна для задач с матрицами.