5.3. Пакетирани масиви

По правило едно цяло число или един символ заема два байта в компютърната памет. В същото време един байт е достатъчен, за да представи знак. За да спести паметта на машината, езикът за програмиране Pascal въведе концепцията за опакован масив. Елементите на пакетирания масив се съхраняват два по два байта на компютъра. И въпреки че това спестява място в паметта, то увеличава времето за достъп до компонентите на масива.

Елементите на масив в кутия се използват в програмата по абсолютно същия начин като елементите на масив без кутия. Само паметта на машината автоматично се разпределя по-малко.

Например, масивите A и AP са описани като

VarAP: Пакетиран масив [1..3] от Boolean;

Обикновените пакетирани масиви са идентични по отношение на обема и характера на съхраняваната информация, но се различават по начина, по който са представени в паметта на компютъра.

Масивът в кутия може да бъде деклариран в раздела за променливи или чрез раздела за типове.

Описание в секцията за типове:

Име на тип тип = PackedArray[име на индекс] на тип елемент;

Име на променлива: име на тип;

Тук ключовата дума Packed показва, че масивът от данни е опакован.

Пакетираните символни масиви в езика за програмиране Pascal включват символни низове, които са посочени или в операторната секция, или в константната секция (символни низове, а не символни низове String, които ще бъдат обсъдени по-късно). Както знаете, типът на константата се определя еднозначно от нейния запис. Следователно, ако, например, константата S='end' е дефинирана в раздела за константи, тогава тя принадлежи към типа:PackedArray[1..3]ofChar.

Счита се, че символните константи са от тип пакетиран масив:

Пакетиран масив[1..n] от Char;

където n е дължината на низа.

Знаковите масиви и константите могатучастват в операции за присвояване и сравнение.

Нека,например, описанието на знаците в масива е:

Тип Mas= пакетиран масив [1..7] от Char;

След това можете да напишете следния оператор:

Ако операциите за сравнение се прилагат към низове и опаковани символни вектори, тогава аргументите задължително трябва да съдържат същия брой знаци, т.е. видовете им са идентични. Операциите за сравнение се извършват символ по знак, отляво надясно.