- •Конспект лекций по информатике
- •Организация данных в эвм и основы программирования
- •1. Основные понятия языка программирования паскаль
- •1.1. Структурное программирование
- •1.2. Основные символы языка
- •1.3. Элементы языка
- •1.4. Интегрированная среда turbo pascal
- •1.5. Структура программы в turbo pascal
- •1.6. Определение типов
- •1.7. Операторы в программе
- •1.7.1. Операторные скобки
- •1.7.2. Операторы ввода
- •1.7.3. Оператор присваивания
- •1.7.4. Условный оператор
- •1.7.5. Пример простой программы
- •1.7.6. Оперетор безусловного перехода
- •1.8. Организация циклов
- •1.8.1. Использование операторов условного и безусловного перехода
- •1.8.2. Цикл с параметром
- •1.8.3. Цикл с предусловием - цикл while
- •1.8.4. Цикл с постусловием - цикл repeat
- •1.9. Оператор выбора варианта
- •1.10. Расположение операторов в программе
- •1.11. Концепция типов данных
- •2. Стандартные простые типы
- •2.1 Целый тип
- •2.1.1. Операции над данными целого типа:
- •2.2. Действительный тип
- •2.2.1. Операции над данными действительного типа:
- •2.3. Логический тип
- •Var p, q, r : Boolean;
- •2.3.1. Алгебра логики в Паскале
- •2.3.2. Законы алгебры логики в Паскале
- •2.4. Символьный тип
- •2.4.1. Символьные строковые константы
- •3. Нестандартные простые типы (определяемые пользователем)
- •3.1. Перечисляемый тип
- •3.2. Ограниченный тип (диапазон, интервал)
- •4. Процедуры и функции
- •4.1. Описание процедур
- •4.2. Стандартные процедуры
- •4.3. Описание функций
- •4.4. Стандартные функции
- •4.5. Итерация и рекурсия
- •4.6. Побочный эффект рекурсии
- •4.7. Предварительное описание (ссылки вперед)
- •5. Регулярные типы
- •5.1. Одномерный массив, или переменные с индексами
- •Алгоритмы сортировки массивов
- •1. Метод пузырька (метод обменной сортировки с выбором)
- •2. Сортировка выбором
- •3. Метод Шелла
- •4. Метод Хoopа
- •5.2. Многомерные массивы
- •5.3. Упакованные массивы
- •5.4. Строки
- •6. Множественные типы
- •6.1. Свойства множеств
- •6.2. Операции над множествами
- •7. Комбинированные типы
- •7.1. Описание записей и действия с ними
- •7.2. Оператор присоединения.
- •7.3. Записи с вариантами
- •8. Типизированная константа
- •8.1. Простая типизированная константа
- •8.2. Структурированная (сложная) типизированная константа
- •8.2.1. Типизированная константа массива
- •8.2.2. Типизированная константа записи
- •8.2.3. Типизированная константа множества.
- •9. Преобразование типов
- •9.1. Неявные преобразования типов
- •9.2. Использование стандартных функций для преобразования
- •9.3. Явные преобразования типов
- •9.5. Совместимость типов
- •10. Файловые типы
- •10.1. Определение файлового типа
- •10.2. Структура файла
- •10.3. Имя файла
- •10.4. Описание файлового типа
- •10.5. Файловая переменная
- •10.6. Операции над файлами
- •10.7. Типизированные файлы
- •10.8. Текстовые файлы
- •10.9. Нетипизированные файлы
- •10.10. Стандартные файлы inpuTиOutput
8. Типизированная константа
Типизированную константу можно использовать как переменную. Её следует рассматривать как инициализированную переменную, значение которой задано с самого начала. Применение типизированных констант экономит машинное время, т.к. начальное присвоение значений уже выполняется компилятором.
Типизированные константы задаются, как обычные, но дополнительно они получают и свой тип. Заданные значения имеются в распоряжении программы только при новом ее пуске, а затем могут изменять свое значение. Повторный пуск программы не с самого начала может дать уже другие значения.
Преимущество применения типизированных констант заключается в простоте присвоения начальных значений для переменных.
Синтаксис (вид описания):
Constимя: тип = значение;
8.1. Простая типизированная константа
Задается как простая переменная.
Пример: Const A:Integer=1267;
Kol:Real=12,32;
Sim:Char =’Z’
B:Char=Ord(65);
Типизированные константы разрешается использовать вместо переменной в виде параметров в подпрограммах.
Типизированная константа представляет собой переменную с заданным значением. Её нельзя использовать в описании других констант или типов.
Пример: Const X:Integer=0;
Y:Integer=50;
Type Mas: Array [X..Y] of Integer; это недопустимо.
8.2. Структурированная (сложная) типизированная константа
8.2.1. Типизированная константа массива
Пример:
Type Sost = (cold, warm, hot);
Massiv = Array [Sost] of string[5];
Const S: Mas = (‘cold’, ‘warm’, ‘hot’);
В примере описывается константа Sost, которую можно использовать для преобразования значений типа перечисления в их соответствующие строковые представления:
Sost[cold]=’cold’
Sost[warm]=’warm’
Sost[hot]=’hot’
Каждый тип, кроме типа массива и указателя, представляет собой допустимый тип компонентов константы массива. При типах массива Characterразрешены отдельные символы и символьные цепочки.
При описании типизированной много размерной константы массива каждый размер каждый размер заключается в отдельную пару скобок, а пары отделяются друг от друга запятыми, причем средняя константа соответствует размеру, наиболее далеко отстоящему с правой стороны.
Пример:
Type Massiv = Array [0..1,0..1,0..1] of Integer;
Const chislo: Massiv = (((0,1),(2,3)),((4,5),(6,7)));
Begin
Writeln(chislo[0,0,0],’=0’);
Writeln(chislo[0,0,1],’=1’);
Writeln(chislo[0,1,0],’=2’);
Writeln(chislo[0,1,1],’=3’);
Writeln(chislo[1,0,0],’=4’);
Writeln(chislo[1,0,1],’=5’);
Writeln(chislo[1,1,0],’=6’);
Writeln(chislo[1,1,1],’=7’);
End.
8.2.2. Типизированная константа записи
Пример:
Typechislo=Record
a,b,c: Integer
end;
Zvet = (Krasn, Gelt, Zelen, sin);
Tkan = (Sherst, Shelk, Hlopok);
Platye = Record
Dizain : Array [1..4] of Zvet;
Material : Tcan
end;
Const Nomer : chislo = (a:0, b:0, c:0);
Model:Platye=(dizain: (krasn, gelt, zelen, sin); Material: Hlopok);
Matrica: Array[1..3] of
chislo = ((a:1, b:4,c:5), (a:13,b:8,c:55), (a:200,b:16,c:-65));
Константы массива должны задаваться в той же последовательности, в какой они появляются в описании записи. В том случае, если блок данных содержит массивы типа файла или указателя, типизированными. Константы для этого типа записи задавать невозможно.
Если константа записи содержит варианты, то программист сам отвечает за то, чтобы специфицировались лишь блоки данных достоверной переменной.
Если переменная содержит массив метки, то нужно специфицировать и значение переменной.