Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие Pascal.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
666.62 Кб
Скачать

10. Типизированные константы

В Турбо Паскаль допускается использование типизированных констант. Они задаются в разделе объявления констант следующим образом:

<идентификатор>: <тип> = <значение>

Здесь<идентификатор> – идентификатор константы,

<тип> – тип константы,

<значение> – значение константы.

Типизированным константам можно присваивать другие значения в ходе выполнения программы, поэтому фактически они представляют собой переменные с начальными значениями. Типизированная константа приобретает указанное в ее объявлении значение, то есть инициируется только один раз – к моменту начала программы. При повторном входе в блок (процедуру или функцию), в котором она объявлена, инициализации типизированной константы не производится и она сохраняет то значение, которое имела к моменту выхода из блока.

Типизированные константы могут быть любого типа, кроме файлов. Нельзя также объявить типизированную константу-запись, если хотя бы одно из ее полей является полем файлового типа.

Поскольку типизированная константа фактически не отличается от переменной, ее нельзя использовать в качестве значения при объявлении других констант или границ диапазона.

10.1. Константы простых типов и типа string

Например:

type

colors =(white, red, black);

const

CurrCol: colors =red;

name: string = ’Вася’;

year: word= 1998;

x: real = 0100036;

min: integer = 0;

max: integer = 10;

days: 1…31 = 1;

answer: char = ’Y’;

Нельзя использовать такие записи:

Mass : array [min .. max] of real;

Поскольку нельзя использовать типизированные константы в качестве границ диапазона.

a, b, c : byte =0; - недопустимо использовать список идентификаторов.

var

Name F: string [22]= 'prog.pas'- нельзя объявлять типизированную константу в разделе переменных.

10.2. Константы-массивы

В качестве начального значения типизированной константы-массива используется список констант, отделяемых друг от друга запятыми; список заключается в круглые скобки, например:

type

colors =(white, red, black);

const

ColSTR: array [colors] of string [5] = ('white', 'red', 'black');

Vector: array [1…5] of byte =(0,0,0,0,0);

При объявлении массива символов можно использовать то обстоятельство, что все символьные массивы и строки в Турбо Паскаль хранятся в упакованном формате, поэтому в качестве значения массива – константы типа CHAR допускается задание символьной строки соответствующей длины. Два следующих объявления идентичны:

const

digit, : array [0 .. 9]of char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

digchr : array [0 .. 9] of char = ('0123456789');

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

Следующая программа выведет на экран три строки с монотонно увеличивающимися целыми числами:

var

i, j, k, l : byte;

const

matr : array [1 .. 3, 1 .. 5] of byte=

((0, 1, 2, 3, 4),

(5, 6, 7, 8, 9),

(10, 11, 12, 13, 14));

cube: array [0 .. 1, 0 .. 1, 0 .. 2] of integer=

(((0, 1, 2), (3, 4, 5)),

((6, 7, 8), (9, 10, 11)));

mas4: array [0 .. 1, 0 .. 1, 0 .. 1, 0 .. 1] of word =

((((0, 1), (2,3)),

((4, 5), (6,7))),

(((8, 9), (10, 11)),

((12, 13), (14, 15))));

begin

for i:= 1 to 3 do

for j:= 1 to 5 do

Write(matr[i,j]:3);

writeln;

for i:= 0 to 1 do

for j:= 0 to 1 do

for k:= 0 to 2 do

Write (cube[i,j,k]:3);

writeln;

for i:= 0 to 1 do

for j:= 0 to 1 do

for k:= 0 to 1 do

for l:= 0 to 1 do

write(mas 4[ i, j, k, l]:3);

writeln;

end.

Количество переменных в списке констант должно строго соответствовать объявленной длине массива по каждому измерению.