Константы

Константа — это объект, значение которого известно ещё до начала работы программы.

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

В языке 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)));

Leave a Comment

36 + = 37