- •Программирование на языке Pascal введение
- •Этапы разработки программ
- •Ядро Турбо Паскаль
- •Среда программирования Турбо паскаль
- •Функциональные клавиши
- •2.3. Текстовый редактор
- •Запуск и отладка программы
- •Элементы языка
- •3.1. Алфавит
- •3.2. Зарезервированные слова и идентификаторы
- •3.3. Общая структура программ в Турбо Паскаль
- •3.4. Основные типы данных. Простые типы
- •Основные операторы языка программирования Турбо Паскаль
- •4. 1. Ввод – вывод информации в Турбо Паскаль
- •4.2. Математические операции, встроенные математические функции Турбо Паскаль
- •4.3. Пустой оператор и составной оператор
- •4.4. Условный оператор
- •4.5. Оператор выбора
- •4.6. Операторы повторений
- •5. Символьные типы данных
- •6. Строковые типы данных
- •Стандартные процедуры и функции для строк
- •7. Структурированные типы данных. Массивы
- •7. 1. Одномерные массивы
- •Доступ к элементам массива
- •7.2. Сортировка массивов
- •7.2.1. Сортировка вставкой
- •7.2.2. Сортировка выбором
- •7.2.3. Сортировка обменом (пузырьковая сортировка)
- •7.3. Многомерные массивы
- •8. Записи
- •9. Множества
- •10. Типизированные константы
- •10.1. Константы простых типов и типа string
- •10.2. Константы-массивы
- •10.3. Константы-записи
- •10.4. Константы-множества
- •Литература
10. Типизированные константы
В Турбо Паскаль допускается использование типизированных констант. Они задаются в разделе объявления констант следующим образом:
<идентификатор>: <тип> = <значение>
Здесь<идентификатор> – идентификатор константы,
<тип> – тип константы,
<значение> – значение константы.
Типизированным константам можно присваивать другие значения в ходе выполнения программы, поэтому фактически они представляют собой переменные с начальными значениями. Типизированная константа приобретает указанное в ее объявлении значение, то есть инициируется только один раз – к моменту начала программы. При повторном входе в блок (процедуру или функцию), в котором она объявлена, инициализации типизированной константы не производится и она сохраняет то значение, которое имела к моменту выхода из блока.
Типизированные константы могут быть любого типа, кроме файлов. Нельзя также объявить типизированную константу-запись, если хотя бы одно из ее полей является полем файлового типа.
Поскольку типизированная константа фактически не отличается от переменной, ее нельзя использовать в качестве значения при объявлении других констант или границ диапазона.
10.1. Константы простых типов и типа string
Например:
type
colors =(white, red, black);
const
CurrCol: colors =red;
name: string = ’Вася’;
year: word= 1998;
x: real = 0100036;
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
Name F: string [22]= 'prog.pas'- нельзя объявлять типизированную константу в разделе переменных.
10.2. Константы-массивы
В качестве начального значения типизированной константы-массива используется список констант, отделяемых друг от друга запятыми; список заключается в круглые скобки, например:
type
colors =(white, red, black);
const
ColSTR: array [colors] of string [5] = ('white', 'red', 'black');
Vector: array [1…5] of byte =(0,0,0,0,0);
При объявлении массива символов можно использовать то обстоятельство, что все символьные массивы и строки в Турбо Паскаль хранятся в упакованном формате, поэтому в качестве значения массива – константы типа CHAR допускается задание символьной строки соответствующей длины. Два следующих объявления идентичны:
const
digit, : array [0 .. 9]of char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
digchr : array [0 .. 9] of char = ('0123456789');
При объявлении многомерных констант-массивов множество констант, соответствующих каждому измерению, заключается в дополнительные круглые скобки и отделяется от соседнего множества запятыми. В результате образуются вложенные структуры множеств, причем глубина вложения должна соответствовать количеству измерений (размерности) массива. Самые внутренние множества констант связываются с изменением самого правого индекса массива.
Следующая программа выведет на экран три строки с монотонно увеличивающимися целыми числами:
var
i, j, k, l : byte;
const
matr : array [1 .. 3, 1 .. 5] of byte=
((0, 1, 2, 3, 4),
(5, 6, 7, 8, 9),
(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 l:= 0 to 1 do
write(mas 4[ i, j, k, l]:3);
writeln;
end.
Количество переменных в списке констант должно строго соответствовать объявленной длине массива по каждому измерению.
