Константами называются параметры программы, значения которых не меняются в процессе ее выполнения. В языке Turbo Pascal возможно двоякое использование констант:
• непосредственное использование значения константы; использование идентификатора константы.
Объявление константы с помощью идентификатора осуществляется в разделе объявления констант Const. При этом имеется две разновидности констант, задаваемых идентификаторами:
• обычные константы, тип которых определяется их значением; типизированные константы, для которых в явном виде указывается их тип.
Обычные константы могут быть целого, вещественного, символьного, строкового, логического типов, типизированные константы – любого типа, кроме файлового. Форматы объявления простой и типизированных констант соответственно:
Const
<имя константы>=<значение>;
<имя константы>:<тип константы>=<значение>;
Значения констант могут задаваться как конкретными величинами, так и константными выражениями.
Целые константы могут быть десятичные и шестнадцатеричные. Перед шестнадцатеричной константой должен стоять знак $. В языке Turbo Pascal заданы две предопределенные константы, определяющие максимальные положительные значения данных типа Integer и LongInt:
MaxInt=32767;
MaxLongInt=2147483647.
Вещественные константы могут изображаться в форме с фиксированной точкой и плавающей точкой. В первом случае целая и дробная части числа обязательно присутствуют и отделяются друг от друга точкой. Во втором случае число записывается в экспоненциальном виде: <мантисса>E<порядок>.
Мантисса представляется в виде целого числа или как вещественное число с фиксированной точкой; порядок обозначается положительным или отрицательным целым числом.
Пример. Простые целые и вещественные константы.
Const
I=1;
Y=1.0;
Z=-1E-5;
HEX=$B800;
J=-10;
X=-0.5;
W=7.5e+15;
Cir=2*3.1415926;
Строка символов – это последовательность любого количества символов, расположенных на одной строке и заключенных в апострофы. Максимальная длина строки – 126 символов. Строка, состоящая из одного символа, называется символьной константой. Нулевая строка не содержит между апострофами ни одного символа. При необходимости поместить в строку символ апострофа его следует удвоить. Для включения в строку символов, не имеющих физического изображения или отсутствующих на клавиатуре ПЭВМ, используется их код с символом # перед ним.
Пример. Символьные константы.
Const
Symbols='TURBO-PASCAL';
Return=#13#10;{Коды управляющих символов CR и LF}
Типизированные константы фактически представляют собой переменные, которым присвоены начальные значения. Они могут использоваться наравне с обычными переменными, в том числе и в левой части операции присваивания. Пример. Типизированные константы.
Const
Maximum: Integer=9999;
Re: Real=–0.5;
Bell: Char=#7; {Символ звукового сигнала}
В языке Turbo Pascal существует ряд заранее разработанных функций, которые используются как готовые объекты. Все они объединены в стандартные модули. В данном разделе рассматриваются только наиболее часто используемые стандартные функции.
Арифметические функции можно использовать только с аргументами целого и вещественного типов. Если арифметическая функция используется с ключом трансляции {$N+}, то вместо результата типа Real она вычисляет величину типа Extended. Перечень арифметических функций приведен в табл. 6.4.
Таблица 6.4 Арифметические функции
Функция | Назначение | Тип результата |
Abs(x) Arctan(x) Cos(x) Exp(x) Frac(x) Int(x) Ln(x) Pi Sin(x) Sqr(x) Sqrt(x) Random Random(i) Randomize Inc(x,n) Dec(x,n) | Абсолютное значение аргумента Арктангенс аргумента Косинус аргумента ex Дробная часть аргумента Целая часть аргумента Натуральный логарифм аргумента Число "пи" Синус аргумента Квадрат аргумента Квадратный корень аргумента Случайное число в интервале 0..1 Случайное число в интервале 0..i Инициализация генератора случайных чисел Увеличение/уменьшение значения целой переменной x на n. При отсутствии n инкремент/декремент равен 1 | Совпадает с типом x Вещественный Вещественный Вещественный Вещественный Вещественный Вещественный Вещественный Вещественный Совпадает с типом x Вещественный Вещественный Целый Целый Целый |
Функции преобразования типа предназначены для преобразования типов величин. К их числу относятся следующие:
Chr(x) – преобразование кода в символ. Аргумент типа Byte, результат типа Char;
Ord(x) – преобразование любого порядкового типа в целый тип. Аргумент – величина любого порядкового типа, результат – типа Longint.
Round(x) – округление вещественного числа до ближайшего целого. Аргумент – величина вещественного типа, результат – типа Longint.
Trunc(x) – получение целой части вещественного числа. Аргумент – величина вещественного тип, результат – типа Longint.
Следующие функции позволяют выполнить ряд действий над данными порядкового типа. К ним относятся:
Odd(x) – проверка аргумента на нечетность. Аргумент – типа Longint. Результат – типа Boolean равен True, если аргумент нечетный, и False, – если четный.
Pred(x) – определение предыдущего значения величины x. Аргумент может быть любого порядкового типа. Результат – предшествующее значение того же типа, например, Pred(2)=1.
Succ(x) – определение последующего значения величины x. Аргумент может быть любого порядкового типа. Результат – последующее значение того же типа, например, Succ(2)=3.
Арифметические операции применимы только к величинам целых и вещественных типов. Они могут быть унарные и бинарные.
Унарный знак минус (–), поставленный перед величиной целого либо вещественного типа, приводит к изменению знака этой величины. Унарный знак плюс (+) не оказывает никакого влияния на величину. Бинарные арифметические операции приведены в табл. 6.5.
Таблица 6.5 Арифметические операции
Знак | Операция | Типы операндов | Тип результата |
+ – * / div mod | Сложение Вычитание Умножение Деление Деление целых чисел Остаток от деления | Целые Хотя бы один вещественный Целые Хотя бы один вещественный Целые Хотя бы один вещественный Целые или вещественные Целые Целые | Целый Вещественный Целый Вещественный Целый Вещественный Вещественный Целый Целый |
Вещественный результат будет типа Extended, если используется директива трансляции {$N+}, и типа Real – в противном случае. Знаки операций +, –, * могут использоваться и с другими типами операндов, но тогда они имеют другой смысл. Знаки операций div и mod должны отделяться от операндов пробелами.
Логические операции применяются к величинам логического типа, результат операции – логического типа. Имеется одна унарная логическая операция not (отрицание) и три бинарные операции: and (И), or (ИЛИ), xor (исключающее ИЛИ). Знаки логических операций отделяются от операндов пробелами. Результаты логических операций определяются таблицами истинности (табл. 6.6 и 6.7).
Таблица 6.6
Таблица истинности операции not
x | not x |
False True | True False |
Таблица 6.7 Таблица истинности операций and, or, xor
X | Y | x and y | x or y | x xor y |
False False True True | False True False True | False False False True | False True True True | False True True False |
Операции not, and, or, xor можно использовать для операций над отдельными битами целого числа. К битовым операциям относятся также операции сдвига shl и shr.
Операции отношения предназначены для сравнения двух величин, которые могут быть любого типа, кроме файлового. Результат сравнения имеет логический тип. К операциям отношения относятся следующие: = (равно); <= (меньше или равно); <> (не равно); >= (больше или равно); < (меньше); > (больше).
Операции отношения используются также для указателей, строк, множеств.
Вычисление значений выражений выполняется в определенном порядке. Вычисление начинается с определения переменных и констант, входящих в выражение. Дальнейшие действия выполняются в соответствии с их приоритетами. Для изменения последовательности вычислений служат круглые скобки. Количество парных круглых скобок в выражении может быть любым. Приоритеты всех действий, выполняемых при вычислении выражений, приведены в табл. 6.8.