4.1.2. Действия над массивами
Паскаль допускает единственное возможное действие над массивом в целом: использование его в операциях отношения "равно", "не равно" и в операторе
присваивания. Например:
VECT1 := VECT2
причем массивы, участвующие в этих действиях, должны быть идентичны по структуре, т.е. иметь одинаковые типы индексов и одинаковые типы компонентов. Например, если массивы А и В описаны, как
VAR A,B : ARRAY[1..20] OF REAL;
то применение к ним допустимых операций даст следующий результат:
Выражение Результат
A = B TRUE, если значение каждого элемента
массива А равно соответствующему
значению элемента массива В.
А < > B TRUE, если хотя бы одно значение
элемента массива А не равно значению
соответствующего элемента массива В.
А := B Все значения элементов массива В
присваиваются соответствующим элемен-
там массива А. Значения элементов
массива В остаются неизменными.
4.1.3. Действия над элементами массива
Доступ к элементам массива строится традиционно: после идентификатора массива в квадратных скобках указывается индекс нужного элемента или список индексов, определяющий элемент многомерного массива. В качестве индексов могут выступать произвольные выражения, тип которых должен соответствовать типу индексов в описании массива.
Например, запись
MAS[2]
VECTORZ[10]
позволяет обратиться ко второму элементу массива MAS и к десятому элементу массива VECTORZ.
Доступ к элементам двумерного массива V2 осуществляется следующим образом:
V2[ 3 , 7 ]
V2[ I , J ]
4.1.4. Символьные массивы
Необходимо сказать несколько слов об одномерных массивах, состоящих из элементов символьного типа ( CHAR ). Если в качестве индекса символьного массива используется ограниченный целый тип, то такие массивы называются строками. Например:
VAR
S : ARRAY [1,13] OF CHAR ;
Язык Паскаль содержит некоторые дополнительные средства для работы с такими массивами. Имеется возможность записывать конкретные значения строковых массивов с помощью изображения строки и использовать их в присваиваниях и передаче параметров:
S := ‘ Пример строки’ ;
Изображение строки строится из цепочки символов, составляющих строковый массив, и заключается в одинарные кавычки (апострофы). Если необходимо задать апостроф внутри самой строки, то он удваивается.
Кроме того, для строковых массивов допускается операция конкатенации, обозначаемая символом ‘+’ (плюс), смысл которой заключается в формировании нового символьного массива, число элементов которого равно сумме размеров массивов-операндов, а значениями элементов - элементы массивов-операндов, расположенные последовательно друг за другом. Так, если в программе имеются описания:
VAR
S1 : ARRAY[1..9] OF CHAR ;
S2 : ARRAY[1..6] OF CHAR ;
то допустимы следующие операторы:
S1 := ‘ Строковый’ ;
S2 := ‘ массив’ ;
WRITELN ( S1 + ‘ ‘ + S2 ) ;
В результате выполнения последнего оператора на экран дисплея будет выведено сообщение:
Строковый массив
В операциях присваивания строк символьным массивам необходимо точное соответствие длин строк и размеров массивов. Следует иметь в виду, что операция конкатенации для символьных массивов не допускается в правых частях операторов присваивания. Например оператор
S := S1 + ‘ ‘ + S2 ;
вызовет ошибку компиляции независимо от размера символьного массива S. В подобных случаях необходимо использовать строки переменной длины.