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;
След това можете да напишете следния оператор:
Ако операциите за сравнение се прилагат към низове и опаковани символни вектори, тогава аргументите задължително трябва да съдържат същия брой знаци, т.е. видовете им са идентични. Операциите за сравнение се извършват символ по знак, отляво надясно.