
- •Билет 20 Объявление типов и использование имен типов для описания данных.
- •Процедуры вывода write и writeln. Управление форматом вывода числовых и текстовых величин.
- •Билет 21
- •Особенности использования массивов в качестве параметров процедур и функций.
- •Билет 22 Открытые и динамические массивы. Запрос и освобождение памяти во время работы программы.
- •Цикл repeat.
- •Билет 23 Раздел констант.
- •Типизированные "константы" в Паскале.
- •Присвоение переменным начальных значений.
- •Специфика Object Pascal.
- •Процедуры ввода read, readln
- •Билет 25 Управление форматом выводимых данных с помощью. Процедуры Format
- •Операторы цикла. Назначение операторов break и continue.
- •Билет 26 Управление файлами в стиле Windows. Управление файлами в стиле Windows
- •В чем разница между выборкой данных из текстового файла по операторам read и readln.
Билет 20 Объявление типов и использование имен типов для описания данных.
Язык ПАСКАЛЬ предлагает пользователю предопределенные типы данных: integer, real, boolean, char и др. В случае необходимости пользователь может создавать собственные типы данных, например перечисляемые или интервальные.
Имя типа данных и множество его значений объявляются с помощью следующих грамматических единиц:
<Раздел описания типов> ::= type <Описание типа>; { <Описание типа>;}
<Описание типа> ::= <Идентификатор> = <Тип>
<Тип> ::= <Идентификатор> | <Перечисляемый mun> | <Интервальный тип> | <Тип-массив> | <Тип-записъ> | <Тип-множество> | <Файловый тип> | <Ссылочный тип>
<Перечисляемый тип> ::= (<Идентификатор> {, <Идентификатор>})
<Интервальный тип> ::= <Константа>. .<Константа>
Примеры:
1) type Т1 = (А, В, С, D, Е, F, G, Н);
Т2 = В..F;
ТЗ = С..Н;
2) type Pozitiv = 1..MaxInt;
Natural = 0..MaxInt;
Negativ = -Maxlnt..-1;
3) type Abatere = -10...+10;
Litera = 'A'.. 'Z';
Cifra = '0'.. '9';
Классификация типов данных языка ПАСКАЛЬ представлена на рис. 2.И Изученные ранее типы данных указаны на темном фоне. В некоторых конструкциях языка ПАСКАЛЬ необходимо, чтобы переменные и константы принадлежали к идентичным или совместимым типам.
Два типа являются идентичными, если они задаются одним и, тем же именем.
Например, type Т4 = integer;
Т5 = integer;
Здесь типы integer, Т4, Т5 являются идентичными. Два типа могут быть идентичными и тогда, когда они задаются различными именами, при условии, что эти имена эквивалентны по свойству транзитивности
Например,
type Т6 = real;
Т7 = Т6;
Т8 = Т7;
Здесь типы real, Тб, Т7 и Т8 являются идентичными.
Два типа называются совместимыми тогда, когда верно хотя бы одно из следующих утверждений:
1) рассматриваемые типы идентичны;
2) один тип является интервальным типом второго;
3) оба типа являются интервальными, с одним и тем же базовым типом.
Например, при следующем объявлении:
type Zi = (L, Ma, Mi, J, V, S, D);
ZiDeLucru = (L, Ma, Mi, J, V);
ZiDeOdihna - (S, D);
Culoare = (Galben, Verde, Albastru, Violet);
типы Zi, ZiDeLucru, ZiDeOdihna являются совместимыми. Типы Zi и Culoare не совместимы. Отсюда следует, что допустимы следующие операции отношения:
L < D Mi <> D Verde <> Violet
и т.д., а операции типа
L < Violet Verde = V S <> Albastru
запрещены.
Кроме типов данных, определяемых пользователем явно с помощью ключевого слова type, в программе могут быть описаны анонимные типы (типы без имени).
Анонимный тип определяется неявно при описании переменных.
Пример:
var i : 1..20;
s : (Alfa, Beta, Gama, Delta);
t : Alfa..Gama;
Отметим, что интервальный тип 1..20, перечисляемый тип (Alfa, Beta, Gama, Delta) и интервальный тип Alfa. .Gama не имеют собственных имен.
Как правило, анонимные типы используются в программах с небольшим количеством переменных.