3. Типове данни
23
разрешено използването на кратката форма за многомерни масиви, но тя е напълно
еквивалентна на разширената. Например: Array1[i][b] или Array1[i, b].
Освен даването на стойност, над масивите е дефинирана и операцията сравнение
за равенство (=) и различие(<>). Операцията за сравнение за равенство дава като
резултат true само, ако елементите на двата масива съвпадат поелементно, и false в
противен случай. Операцията за сравнение за неравенство може да се определи като
отрицание на равенството.
В Pascal едномерните пакетирани масиви с базов тип char са привилегировани. При
тях може да се използва пълният набор от операции за сравнение, т.е. <, <=, >, >=.
В тези случаи сравнението се прави по наредбата на символите в символния набор
(кодовата таблица).
3.2.2. Стандартен тип STRING
В UniPascal има още една структура, много приличаща на едномерния масив.
Това е структурата символен низ (string). Неговия индексен тип е диапазон на типа
SHORTCARD, като долната граница е фиксирана на 1, а горната може да бъде зададена
от потребителя, но не трябва да превишава 255. При структурата string дължината се
изменя динамично, но в границите от 0 до зададената горна граница. Общия вид на
описанието е:
StringType =
'string' [ '[' Constant ']' ].
Ако не е зададена горна граница, се подразбира максималната възможна - 255,
т.е.
var t: string;
е еквивалентно на
var t: string[255];
3.2.3. Записи
Записите (Record) в Pascal са структури от данни, състоящи се от фиксирано число
именувани компоненти, наречени полета. Тези полета могат да бъдат от различен тип.
При определянето на запис за всяко поле се задава неговото име (идентификатор) и тип.
Областта на действие на този идентификатор на полето е в рамките на записа.
Най-общият вид на типа запис е:
RecordType =
'record' FieldList 'end'.
FieldList =
(FixedPart [';']) | (VariantPart [';']) |
(FixedPart ';' VariantPart [';']).
FixedPart =
IdentList ':' Type { ';'
IdentList ':' Type }.
VariantPart =
'case' TagField 'of'
  CnstList ':' '(' [FieldList] ')' { ';'
  CnstList ':' '(' [FieldList] ')' }.
TagField =
[Ident ':'] OrdinalTypeIdent.
OrdinalTypeIdent =
Ident.
При използването на полетата на записа в програмата, те се именуват като след
името на цялата структура се постави точка, последвана от името на съответното поле.
<<  <  GO  >  >>

Вернуться к началу сайта