Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка (Информатика).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.12 Mб
Скачать

8.3.Многомерные массивы

Если количество типов индексов в описании массива равно N, то массив называется N-мерным. В Turbo Pascal не накладывается ограничений на число измерений массива, но на практике такое ограничение имеется и зависит от компилятора. Многомерные массивы представляют собой чистую абстракцию, поскольку память у ЭВМ одномерна. Компилятор, обрабатывая программу, ставит в соответствие абстрактному многомерному массиву конкретный одномерный массив.

Рассмотрим матрицу А, состоящую из 6 элементов:

.

Элементы матрицы могут быть размещены в памяти ЭВМ по строкам, формируемая при этом последовательность будет 2, 6, 4, 3, 8, 9 . Такой способ размещения элементов характерен для языка Паскаль. Другим способом расположения элементов является организация массива по столбцам, что привело бы к последовательности 2, 3, 6, 8, 4, 9. В языке Паскаль многомерный массив можно описать как одномерный, элементами которого в свою очередь являются массивы. Так для рассматриваемой матрицы имеем.

TYPE

STROKA=ARRAY [1..3] OF INTEGER;

MATR=ARRAY [1..2] OF STROKA;

VAR

V:stroka;

A:MATR;

Приведенное описание можно видоизменить, включив описание типа STROKA в определение типа MATR.

TYPE

MATR=ARRAY [1..2] OF ARRAY [1..3] OF INTEGER;

VAR

A :MATR;

Более краткое описание рассматриваемого массива можно получить в виде:

TYPE

MATR=ARRAY [1..2,1..3] OF INTEGER;

VAR

MAS:MATR;

Описание массива можно поместить непосредственно в разделе описания переменных:

VAR

MATR:ARRAY [1..2,1..3] OF INTEGER;

Конкретный элемент массива задается в виде A V[2] или A[2,1], где значение индексов определяют место элемента в организованной последовательности – массиве V или А.

8.4.Символьные массивы

Особое место в языке Паскаль занимают массивы символов. В стандартной версии языка массивы символов могут храниться в упакованном и неупакованном виде. В первом случае один символ занимает 1 байт в памяти ЭВМ, а во втором – 1 слово 4 байта. Упакованный массив символов займет меньше места в оперативной памяти, чем неупакованный. Для описания упакованного массива используется служебное слово PACKED. Ниже приводится описание упакованного массива символов SU и неупакованного массива SN:

VAR

SU:PACKED ARRAY [N..M] OF CHAR;

SN:ARRAY [N..M] OF CHAR;

В Turbo Pascal массивы символов хранятся только в упакованном виде, поэтому применять в описании служебное слово PACKED не требуется.

Упакованный массив символов образует символьную строку. Символьная строка может быть либо строковой константой, либо строковой переменной. Строковые константы описываются в разделе определения констант и представляют собой строку символов, заключенную в апострофы. Строковые переменные описываются в разделе описания переменных. К ним применимы операции отношения (=, <>, <, >, <=, >=), если эти переменные имеют одинаковую длину. Примером описания символьных строк может носить фрагмент из программы.

CONST

PRS=’*****’;

VAR

S1:ARRAY [1..5] OF CHAR;

S2:ARRAY [1..10] OF CHAR;

BEGIN

S1:=PR5; S2:=’PROGRAM ’;

IF S1=’*****’ THEN S2[10]:=’*’;

……………………………………..

Данные строкового типа можно задавать и с помощью оператора String. При объявлении строковой величины в квадратных скобках указываются максимальное число заключенных в интервалов в диапазоне от 1 до 255 (по умолчанию 255), например:

Var

Kor:String [40];

Const

Mol:String=' Error 21 ';

фактическую длину строки можно определить с помощью стандартной функции Length.