[AdSense-B]
Константа — это объект, значение которого известно ещё до начала работы программы.
Константы необходимы для оформления наглядных программ, незаменимы при использовании в тексте программы многократно повторяемых значений, удобны в случае необходимости изменения этих значений сразу во всей программе.
В языке Pascal существует три вида констант:
- неименованные константы (цифры и числа, символы и строки, множества);
- именованные нетипизированные константы;
- именованные типизированные константы.
Неименованные константы
Неименованные константы не имеют имён, и потому их не нужно описывать.
Тип неименованной константы определяется автоматически, по умолчанию:
- любая последовательность цифр (возможно, предваряемая знаком «—» или «+» или разбиваемая одной точкой) воспринимается компилятором как неименованная константа–число (целое или вещественное);
- любая последовательность символов, заключённая в апострофы, воспринимается как неименованная константа — строка;
- любая последовательность целых чисел, либо символов через запятую, обрамлённая квадратными скобками, воспринимается как неименованная константа — множество.
Кроме того, существуют две специальные константы true и false, относящиеся к логическому типу данных.
Примерами использования неименованных констант могут послужить следующие операторы:
int1 := -10; real2 := 12.075 + x; char3 := 'z'; string4 := 'abc' + string44; set5 := [1, 3, 5] * set55; boolean6 := True;
Нетипизированные константы
Именованные константы, как следует из их названия, должны иметь имя. Таким образом, эти имена необходимо сообщить компилятору, то есть описать в специальном разделе const.
Если не указывать тип константы, то по её внешнему виду компилятор сам определит, к какому (базовому) типу её отнести. Любую уже описанную константу можно использовать при объявлении других констант, переменных и типов данных. Вот несколько примеров описания нетипизированных именованных констант:
const n = -10;
const n=-10; m = 1000000000; mmm = n * 100; x = 2.5; c = 'z'; s = 'string'; b = true;
Типизированные константы
Типизированные именованные константы представляют собой переменные с начальным значением, которое к моменту старта программы уже известно. Следовательно, во–первых, типизированные константы нельзя использовать для определения других констант, типов данных и переменных, а во–вторых, их значения можно изменять в процессе работы программы.
Описание типизированных констант производится по следующему шаблону:
const <имя_константы> : <тип_константы> = <начальное_значение>;
Из приведённых ниже примеров видно, как это сделать:
const //Целое число n: Integer = -10; //Вещественное число x : Real = 2.5; //Символ c : Char = 'z'; //Логический тип данных b : Boolean = True; //Массив строк a:array[1..3,1..4] of string=(('11','22','33','44'), ('1','12','3','55'), ('10','23','35','4')); //Массив целочисленных значений b:array[1..5] of integer = (1,5,3,2,4); //Массив вещественных значений h:array[1..5] of real = (1.4,5.33,3,2.33,4); //Массив символов ch:array[1..5] of char = ('r','t','e','w','q');
Константы типа массивов Array
Описание
Объявление константы типа массива определяет значения компонентов массива.
Тип компонентов массива может быть любым, кроме файлового.
Type Status = (Active, Passive, Waiting); StatusMap = Array [Status] Of String[7]; Const StatStr : StatusMap = ('Active', 'Passive', 'Waiting'); {компоненты StatStr: StatStr[Active] = 'Active' StatStr[Passive] = 'Passive' StatStr[Waiting] = 'Waiting'}
Символьные массивы:
Упакованные константы со строковым типом (символьные массивы) могут быть определены и как одиночные символы, и как строки. Например, такое определение:
Const Digits : Array [0..9] Of Char = ('0', '1', '2', '3', '4', '5','6', '7', '8', '9');
может быть выражено более коротко:
Const Digits : Array [0..9] Of Char = '0123456789';
Нуль-основанные символьные массивы:
Нуль-основанный символьный массив — это такой массив, в котором индекс первого элемента равен нулю, а последнего — положительному ненулевому целому числу.
Array [0..X] Of Char;
Если вы включаете расширенный синтаксис (с помощью директивы компилятора {$X+}), то нуль-основанный символьный массив может быть инициализирован строкой, длина которой меньше, чем объявленная длина массива.
Const FileName = Array [0..79] Of Char = 'TEST.PAS';
Если строка короче, чем длина массива, то оставшиеся символы устанавливаются равными NULL (0), и массив будет содержать строку с нулевым окончанием.
Константы — многомерные массивы:
Такие константы определяются, заключением констант каждой размерности в отдельные наборы круглых скобок, разделенные запятыми.
Type Cube = Array[0..1, 0..1, 0..1] Of Integer; Const Array_Maze : Cube = (((0, 1), (2, 3)), ((4, 5), (6, 7)));