Скачиваний:
18
Добавлен:
01.05.2014
Размер:
14.27 Кб
Скачать

Turbo Pascal | Глава 6 a:link {TEXT-DECORATION: none} a:visited {TEXT-DECORATION: none} a:active {TEXT-DECORATION: none} a:hover {COLOR: #007EFF;} A.menu:link { Color:#FFFFFF; } A.menu:visited { Color:#EEEEEE; } A.menu:hover { Color:#CCDDFF; } .glow { FILTER: DropShadow(Color=#000000, OffX=1, OffY=1, Positive=1)FILTER: Glow(Strength=1, Color=#454545); } .logot { color:#FFFFFF; }  

В в е д е н и е  /  О г л а в л е н и е  /  О т   а в т о р а

М е н ю

1. Интегрированная среда разработки программ Turbo Pascal 7.0 2. Лексические основы языка Pascal 3. Программирование алгоритмов линейной структуры 4. Алгоритмы и программы ветвящейся структуры 5. Алгоритмы и программы циклической структуры 6. Регулярные типы данных. Массивы 6.1 Понятие регулярного типа

6.2 Работа с массивами

6.2.1 Инициализация элементов массива

6.2.2 Нахождение суммы и произведения массива 6.3 Алгоритмы сортировки массивов

6.3.1 Постановка задачи сортировки и методы её решения

6.3.2 Алгоритмы и программы сортировки

6.3.2.1 Алгоритм сортировки обменами ("пузырьковая" сортировка)

6.3.2.2 Алгоритм сортировки вставками

6.3.2.3 Алгоритм сортировки выбором элемента

6.3.2.4 Алгоритм быстрой сортировки (метод Хоора)

6.3.2.5 Алгоритм пирамиды (метод Уильямса-Флойда) 7. Подпрограммы в Turbo Pascal

Регулярные типы данных. Массивы

Понятие регулярного типа

      Массивом называется ограниченная упорядоченная совокупность однотипных величин. Каждая отдельная величина называется компонентой массива. Тип компонент может быть любым, принятым в языке Pascal, кроме файлового типа. Тип компонент называется базовым типом. Вся совокупность компонент определяется одним идентификатором, посредством которого к нему осуществляется обращение, указывается тип и количество элементов массива. Для обозначения отдельных компонент используется конструкция, называемая переменной с индексом или с индексами:

      A[5] S[k+1] B[3,5].

      Пример описания массивов.

      Type

       Massiv = array [1..20] of Real;

      Var

       A, B:Massiv;

       C: array [10..30] of Integer;

      В данном примере описаны одномерные массивы с именами A, B, C, причём массивы A и B имеют элементы типа Real, порядковые индексы элементов изменяются от 1 до 20, а массив С - с элементами типа Integer, и индексами от 10 до 30. В квадратных скобках указывается тип индекса (в приведённых примерах - это тип диапазон).

      В качестве индекса может быть использовано выражение. В индексных типах, по одному для каждой размерности массива, указывается число элементов. Допустимыми индексными типами являются все порядковые типы, за исключением длинного целого и поддиапазонов длинного целого. Индексы интервального типа, для которого базовым является целый тип, могут принимать отрицательные, нулевое и положительные значения.

      Массив может быть проиндексирован по каждой размерности всеми значениями соответствующего индексного типа; число элементов, поэтому равно числу значений в каждом индексном типе. Число размерностей не ограничено.

      Массивы бывают одномерные и многомерные. Из многомерных наиболее часто приходится иметь дело с двумерными. Двумерные массивы хранятся в памяти ЭВМ по строкам. Двумерный массив можно представить как матрицу элементов. Описание такого массива выглядит так:

      Type

       Matrix = array [1..20, 1..10] of Real;

      Var

       X, Y: Matrix;

       Z: array [1..10, 1..10] of Integer;

      Массивы X и Y имеют двадцать строк и десять столбцов. Массив Z представляет собой квадратную матрицу размером 10X10.

      Для доступа к элементам массива необходимо указать идентификатор массива с одним или несколькими индексами в скобках (в зависимости от размерности массива). Конкретный элемент массива обозначается с помощью имени переменной массива, за которой указывается индекс, определяющий данный элемент.

      Индексные выражения обозначают компоненты в соответствующей размерности массива. Число выражений не должно превышать числа индексных типов в описании массива. Более того, тип каждого выражения должен быть совместимым по присваиванию с соответствующим индексным типом. В случае многомерного массива можно использовать несколько индексов или несколько выражений в индексе.

      Например:

      X[I][J] тождественно записи: X[I,J].

      Для одномерного массива обращение к элементу будет выглядеть так: Z[I]. В этом и предыдущем случае переменные I и J должна иметь значения, не превышающие диапазона индексов соответствующего массива.

      Если тип элемента в типе массив также является массивом, то результат можно рассматривать как массив массивов или как один многомерный массив.

      Например, array[boolean] of array[1..100] of array[Size] of Real интерпретируется компилятором точно так же, как массив: array[boolean,1..10,Size] of Real.

      Массив вида: array[0..X] of Char, где X - положительное целое число, называется массивом с нулевой базой. Массивы с нулевой базой используются для хранения строк с завершающим нулем, и, когда разрешен расширенный синтаксис (с помощью директивы компилятора {$X+}), символьный массив с нулевой базой совместим со значением типа PChar.

      Pascal допускает единственно возможное действие над массивом в целом: использование его в операторе присваивания.

      Например:

      Vect1:=Vect2

      причем типы обоих массивов в данном случае должны быть эквивалентны.

      Для работы со всем массивом используется идентификатор массива без указания индекса. К массивам приемлемы только операции отношения "=", "<>". Массивы, являющиеся операндами, должны соответствовать друг другу по структуре, т.е. быть одного типа (одинаковые количество и типы элементов). Таким образом, для двух однотипных массивов X, Y:array [1..30] of Integer; приемлемы следующие выражения:

      - X=Y (равно TRUE, если значения каждого элемента массива X равны соответствующим элементам массива Y);

      - X<>Y (TRUE, если хотя бы одно значение элемента массива X неравно значению соответствующего элемента массива Y).

Учебно-познавательный сайт по программированию в среде Turbo Pascal

Мирошниченко Марина, Краснодар, 2003

 

Соседние файлы в папке Pascal