Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab6(30).doc
Скачиваний:
2
Добавлен:
17.11.2019
Размер:
104.45 Кб
Скачать

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. В подобных случаях необходимо использовать строки переменной длины.