trains_hr.gif
 


В ПОМОЩЬ СТУДЕНТУ И ШКОЛЬНИКУ

 


Горбачев Л.И. Основы программирования в среде Turbo Pascal.

[НАЗАД]    [ДАЛЕЕ]

1. Описание массивов.

   Имена массивов образуются так же, как и имена простых переменных.

   Возможны два способа описания массивов:
1. type имя_типа = array[t1, t2, ..., tn] of <тип_элем>;
var имя_массива : имя_типа;
2. var имя_массива : array[t1, t2, ..., tn] of <тип_элем>;

Здесь t1, t2, t3,..., tn - типы индексов массива. Количество индексов n определяет размерность массива; <тип_элем> - базовый тип элементов массива. Размерность n массива в Турбо Паскале ограничена размером сегмента данных - 64 Кбайт.

   В качестве индекса массива могут использоваться константы и переменные любого скалярного типа, кроме real.

   Тип индекса (t1, t2,..., tn) может быть любым скалярным типом, кроме real и integer, т.к. в последнем случае неизвестно число элементов массива.

Пример:
type Klass = (K1, K2, K3, K4);
Znak = array[1..256] of char;
{ Тип Znak предварительно описан в разделе типов }
var M1: Znak;
{ Прямое описание массивов M2 и Мas }
M2: array[1..60] of integer;
Mas: array[1..4] of integer;
M3: array[1..4] of Klass;

   Если в описании массива задан один индекс, массив называется одномерным, если два индекса - двумерным, если n индексов - n-мерным. Размерность ограничена только объемом памяти конкретной ПЭВМ. Одномерные массивы обычно используются для представления векторов, а двумерные - для представления матриц.

Примеры описания массивов:
var Vector : array[1..40] of real;
{ Одномерный массив - набор из 40 вещественных чисел }r
Matr : arrayr[1..8, 1..5] ofr byte;
{ Двумерный массив представляет матрицу из 8 строк и 5 столбцов с элементами байтового типа }r
ThreeDim : arrayr[1..4, 1..5, 1..8] ofr integer;
{ Трехмерный массив с элементами целого типа }

   Для описания массива можно использовать предварительно определенные константы.
Пример: Const G1 = 4; G2 = 6;
var MasY : array[1..G1, 1..G2] of real;

   Элементы массива располагаются в памяти последовательно. Элементы с меньшими значениями индекса хранятся в более низких адресах памяти. Многомерные массивы располагаются в памяти таким образом, что самый правый индекс возрастает самым первым. Например, если имеется массив A : array[1..5, 1..5] of integer; то в памяти элементы массива будут размещены по возрастанию адресов: A[1, 1], A[1, 2],..., A[1, 5], A[2, 1], A[2, 2],..., A[5, 5].

   Контроль правильности значений индексов массива может проводиться с помощью директивы компилятора R. По умолчанию директива R находится в пассивном состоянии {$R-}. Перевод в активное состояние вызывает проверку всех индексных выражений на соответствие их значений диапазону типа индекса.

Пример: Опишем двумерный массив (матрицу) Mas, состоящий из 2-х строк и 3-х столбцов:
1 2 5
6 7 2

- описание 1-м способом:
type Massiv = array[1..2, 1..3] of integer;
var Mas: Massiv;

- описание 2-м способом:
var Mas: array[1..2, 1..3] of integer;

   В самой программе, задав конкретные значения индексов, можно выбрать определенный элемент массива: N := Mas[2, 2]; (т.е. в данном примере N будет равно 7).

   В качестве индексов массива могут использоваться и выражения, частным случаем которых являются константы и переменные:
P1 := Mas[2 * I + 1, 3];
Sum := Sum - C[k];
B[5] := B[3] + 10;

Пример: Описание трехмерного массива:
var Arr: array[char, 1..5, boolean] of real;

   Тогда при использовании в программе элемента Arr[I,J,K] индексы I, J, K должны быть следующих типов: I - символьного, J - ограниченного, K - логического. Сами же элементы массива Arr - вещественного типа.

   Для ввода и вывода числовых значений массива используются циклы.

   Например, применив цикл for I := 1 to 9 do Read(A[I]), мы организуем ввод девяти значений элементов массива A, а цикл for I := 1 to 9 do Write(A[I]); - вывод этих элементов.

[НАЗАД]    [ДАЛЕЕ]


Главная
Новости
TurboPascal
Учебное пособие
Лекции
Исходники
Математика
Книги
Лекции
Шпоры
ЦТ и ЕГЭ
Физика

Книги

Шпоры
ЦТ и ЕГЭ

Литература

Сочинения

Краткие содержания

Другое
Мой родной край
Фотогалерея
Форум
Ссылки

Гостевая






 

                                        © Copyright(c) 2004 Amro Group. All rights reserved

 

Hosted by uCoz