Turbo Pascal
ГЛАВНАЯ | ЗАКАЗАТЬ РАБОТУ НА TURBO PASCAL | КАК ОПЛАТИТЬ? | О САЙТЕ | КОНТАКТЫ

Иллюстрированный самоучитель по
Turbo Pascal

Вторник
25 апреля 2017 года

 

Массивы

Массивы в Турбо Паскале во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты суть данные одного типа (возможно, структурированного). Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера, например:

type

digit =array[0..9] of Char ;

matrix =array[Byte] of Single; 

var

m : matrix;

d : digit;

i : Integer; 

begin

.......

m[17] := ord(d[i-l])/10;

.......

end. 

Описание типа массива задается следующим образом:

<имя типа> = ARRAY [ <сп.инд.типов> ] OF <тип>

Здесь <имя типа> - правильный идентификатор;

ARRAY, OF - зарезервированные слова (массив, из);

<сп.тд.типов> - список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки, обрамляющие список, - требование синтаксиса;

<тип> - любой тип Турбо Паскаля.

В качестве индексных типов в Турбо Паскале можно использовать любые порядковые типы, кроме LONGINT и типов-диапазонов с базовым типом LONGINT.

Определить переменную как массив можно и непосредственно при описании этой переменной, без предварительного описания типа массива, например:

var

а,b : array [1..10] of Real;

Обычно в качестве индексного типа используется тип-диапазон, в котором задаются границы изменения индексов. Так как тип <тип>, идущий за словом OF, - любой тип Турбо Паскаля, то он может быть, в частности, и другим массивом, например:

type

mat = array [0..5] of array [-2..2] of array [Char] of Byte;

Такую запись можно заменить более компактной:

type

mat = array [0..5,-2..2,Char] of Byte;

Глубина вложенности структурированных типов вообще, а следовательно, и массивов - произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничено, однако суммарная длина внутреннего представления любого массива, как уже говорилось, не может быть больше 65520 байт. В памяти ПК элементы массива следуют друг за другом так, что при переходе от младших адресов к старшим наиболее быстро меняется самый правый индекс массива. Если, например,

var

а : array[1. .2,1. .2] of Byte;

begin

a [1,1]:=1; 

a [2,1]:=2; 

a [l, 2]:=3; 

a [2,2]:=4; 

end.

то в памяти последовательно друг за другом будут расположены байты со значениями 1,3,2, 4 . Это обстоятельство может оказаться важным при использовании стандартной процедуры копирования памяти MOVE.

В Турбо Паскале можно одним оператором присваивания передать все элементы одного массива другому массиву того же типа, например:

var

а,b:array [1..5] of Single;

begin

.....

a := b;

.....

end.

После этого присваивания все пять элементов массива А получат те же значения, что и в массиве В. Однако над массивами не определены операции отношения. Нельзя, например, записать

if a = b then ... 

Сравнить два массива можно поэлементно, например:

var

a,b:array [1..5] of Single;

eq:Boolean;

i:Byte;

begin

.....

eq := True; for i := 1 to 5 do 

if a[i] <> b[i] then

eq := False; 

if eq then

.....

end.

 


Последние новости

Сервис инновация
заправка картриджей Предлагаю Вам оценить сайт наших партнеров - Сервисный центр по заправке картриджей "Сервис инновация". Они профессионально занимаются заправкой картриджей в Красноярске с 2007 года. Очень быстро и качественно оказывают заправку картриджей. Рекомендую!

Скупка новых картриджей

Если у на работе остались неипользованные новые картриджи, а принтер уже вышел из строя, мы купим у вас такие картриджи по высокой цене. Мы занимаемся скупкой новых картриджей в Красноярске.

скупка картриджей

Скупка новых картриджей уже многим принесла неплохой дополнительный заработок. Скупка осуществляется круглосуточно, без выходных. Осуществляется выезд к клиенту!


Счетчики






Реклама

Полезная информация



 
 
 
email
:tanucik2004@ya.ru Copyright © TP7.INFO, 2007-2013
icq
: 308-364-613
тел.
: +7 953 580 83 78