Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТУРБО ПАСКАЛЬ.doc
Скачиваний:
7
Добавлен:
14.04.2019
Размер:
2.29 Mб
Скачать
  • Глава 7. Типизированные константы

    • 7.1. Константы простых типов и типа STRING

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

    • 7.3. Константы-записи

    • 7.4. Константы-множества

    • 7.5. Константы-указатели

Глава7 

ТИПИЗИРОВАННЫЕ КОНСТАНТЫ

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

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

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

          <тип> - тип константы; 

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

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

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

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

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

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

type

colors = (white, red, black); { ------- Правильные объявления: ----- } 

const

CurrCol colors = red;

name String = 'Вирт Н.';

year Word =1989;

x Real = 0.1;

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

NameF: String [22] = 'prog.pas'; {Нельзя объявлять

типизированную константу в разделе переменных}

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

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

type

colors '= (white, red, black); 

const

ColStr : array [colors] of String [5] =('white', 'red', 'blaсk'); 

vector : array [1..5] of Byte = (0,0,0,0,0); .

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

const

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

('0', Ч','2','3','4','5','6', ' 7 ' , ' 8 ' , ' 9 ') ;

digchr: array [0..9] of Char =0123456789';

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

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

var

i, j, k, 1 : Byte; 

const

matr : array [1..3, 1..5] of Byte = ((0, 1, 2, 3,4),

(5, 6, 7, 8, 2) , (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 :=

0 to 1 do Write (mas4 [i,j ,k,l] :3) ;

WriteLn

 

end.

 

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]