Тип данных массив
Рассмотренные выше простые типы данных позволяют работать с одиночными объектами. В Turbo Pascal могут использоваться также объекты, содержащие множество однотипных элементов. Массив - это формальное объединение нескольких однотипных объектов, рассматриваемых как одно целое. К необходимости использования массива мы приходим всякий раз, когда требуется связать и неоднократно использовать в программе целый, ограниченный по количеству элементов, ряд родственных величин.
Как переменная массив описывается в программе следующим образом:
a : array [<тип индекса>] of <тип элементов>;
Здесь: a - имя переменной массива;
array, of - зарезервированные слова (массив, из);
<тип индекса> - любой упорядоченный тип, указывающий на кол-во элементов массива;
<тип элементов> - тип данных элементов массива.
Зачастую для задания количества элементов массива используется тип-диапазон. Тип-диапазон задается левой и правой границами изменения индекса массива. Например:
Var
a : array [1..10] of Integer;
b : array [0..50] of Real;
c : array [-3..4] of Integer;
Из примера мы видим, что массив A состоит из 10 элементов, массив B - из 51 элемента, а массив C - из 8 элементов.
В программе ко всему массиву одновременно обратиться нельзя, возможно обращение только к элементу массива. Доступ к элементу массива осуществляется с помощью задания его индекса - целого числа, служащего своеобразным именем элемента в массиве. При упоминании в программе любого элемента массива сразу за именем массива должен следовать индекс элемента в квадратных скобках: a[1], b[0], c[-3].
В правильно составленной программе индекс не должен выходить за пределы, определенные типом диапазон. Так для тех же массивов A, B, C ошибочными будут обращения a[11], b[-1], c[5].
Для иллюстрации работы данного типа рассмотрим несколько примеров.
Пример 1.
Задана последовательность из 10 целых чисел. Вычислить отклонение от среднего арифметического для каждого элемента последовательности.
| | Program p1; Var s, i : Integer; sr, a : Real; b : array [1..10] of Integer; Begin s := 0; For i := 1 to 10 do begin Read (b[ i ]); s := s + b[ i ]; end; sr := s / 10; For i := 1 to 10 do begin a := abs (sr - b[ i ]); Write (a : 5 : 1); end; End. |
Пример 2.
Задана последовательность из 10 целых чисел. Распечатать их в обратном порядке.
| | Program p2; Var i : Integer; a : array [-3..6] of Integer; Begin For i := -3 to 6 do Read (a[ i ]); For i := 6 downto -3 do Write (a[ i ] : 4); End. |
Пример 3.
Задана последовательность из 10 целых чисел. Вывести номер тех, которые больше среднего арифметического.
| | Program p3; Var s, i : Integer; sr : Real; c : array [1..10] of Integer; Begin s := 0; For i := 1 to 10 do begin Read (c[ i ]); s := s + c[ i ]; end; sr := s / 10; For i := 1 to 10 do If c[ i ] > sr then Write (i : 4); End. |
| < Предыдущая | Следующая > |
|---|








