Новые книги

Это захватывающая и практически полная история крупнейшей IT-компании России, основанная на десятках авторских интервью с теми, кто строил главный поисковик Рунета начиная с 90-х и заканчивая сегодняшним днем.
Copyright 2002-2005, Peter Siebel

23. Массивы

23. Массивы

   Массивы представляют собой ограниченную упорядоченную совокупность

однотипных величин.  Каждая отдельная величина называется компонентой

массива. Тип   компонент может быть любым,  принятым в языке ПАСКАЛЬ,

кроме файлового типа. Тип компонент называется базовым типом.

   Вся совокупность компонент определяется одним именем.  Для обозна-

чения отдельных компонент используется конструкция,  называемая пере-

менной с индексом или с индексами:

 

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

 

   В качестве индекса может быть использовано выражение. Тип индексов

может быть только интервальным или перечисляемым.   Действительный  и

целый типы недопустимы.  Индексы интервального типа, для которого ба-

зовым является целый тип,  могут принимать отрицательные,  нулевое  и

положительные значения.{}

  В операторной части

программы один массив может быть присвоен другому, если их типы иден-

тичны, например:

 

         R1:=Z.

 

   Для ввода  или вывода массива в список ввода или вывода помещается

переменная с индексом,  а операторы ввода или  вывода  выполняются  в

цикле.

{}

   Первый индекс  определяет  номер  строки,  второй - номер столбца.

Двумерные массивы хранятся в памяти ЭВМ по строкам.

   Инициализация массивов (присвоение начальных значений всем  компо-

нентам массивов) осуществляется двумя способами.

   Первый способ - с использованием типизированных констант,   напри-

мер:

 

   type Dim10= Array[1..10] of Real;

 

   const

    raM10: Dim10 = ( 0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3 );

 

   При инициализации двумерных массивов значения компонент каждого из

входящих в него одномерных массивов записывается в скобках:

 

   type Dim3x2= Array[1..3,1..2] of Integer;

 

   const

    iaM3x2: Dim3x2= ( (1, 2)

                      (3, 4)

                      (5, 6) );

 

   Второй способ инициализации - использование разновидности процеду-

ры FillChar:

 

   FillChar( var V; NBytes: Word; B: Byte );

 

Эта процедура заполняет участок памяти однобайтовым значением. Напри-

мер, для обнуления массива A[1..10] of Real можно записать:

 

   FillChar(A, 40, 0);

 

или

 

   FillChar(A, SizeOf(A), 0);