Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Константы простых типов и типа 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'; {Нельзя объявлять

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

КОНСТАНТЫ-МАССИВЫ

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

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.  

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

КОНСТАНТЫ-ЗАПИСИ

Определение константы-записи имеет следующий вид:

<идентификатор>: <тип> = (<сп.знач.полей>)

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

<тип> - тип записи;

<сп.знач.полей> - список значений полей.

Список значений полей представляет собой список из последовательностей вида: имя поля, двоеточие и константа. Элементы списка отделяются друг от друга двоеточиями, например:

type

point = record

х, у: Real

end;

vect = array [0..1] of point;

month = (Jan, Feb, Mar, Apr, May, Jun,

Jly, Aug, Sep, Oct, Nov, Dec);

date = record

d: 1..31;

m: month;

у: 1900..1999

end;

const

origon:point = (x:0; у: -1);

line:vector = ((x:-3.1; у: 1.5), (x: 5.9; у: 3.0));

SomeDay: date = (d: 16; m: Mar; у: 1989);

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

type

forma = record

case Boolean of

true: (Birthplace: String [40]);

false: (Country: String [20]; EntryPort: String [20];

EntryDate: array [1..3] of Word; count: Word)

end;

const

Perconl: forma = (Country: 'Норвегия'; EntryPort:

'Мурманск'; EntryDate: (16, 3, 89); count: 12);

Percon2: forma = (Birthplace: 'Москва');

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...