Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВТИП / Голова / Лекции_Голова.doc
Скачиваний:
28
Добавлен:
16.04.2013
Размер:
178.18 Кб
Скачать

Ограниченные (интервальные) типы

Ограниченные (интервальные) типы используются тогда, когда нужно использовать не весь базовый порядковый тип, а только его обрезок, например

type

index=1...10;

bukwy=’A’..’Z’;

week=(sunday, monday, tuesday, wednesday, thirsday, friday, saturday);

workweek=monday...friday;

Ограниченный (интервальный) тип

отрезок типа - это диапазон значений из любого порядкового типа, называемого базовым типом.

Ограниченный тип задается следующим образом:

<имя типа>=<начальное значение>..<конечное значение>;

Здесь имя типа задается пользователем по правилам задания идентификаторов.

Например,

index

bukwy

workweek

<начальное значение> и <конечное значение> - должны принадлежать рассматриваемому базовому типу, кроме того начальное значение должно предшествовать конечному.

Например, для ограниченного типа index начальное значение - 1;конечное значение - 10;

для типа bukwy - начальное значение ‘А’, конечное значение - ‘Z’;

для типа workweek - начальное значение - monday, конечное значение - friday.

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

Однако не все компиляторы проверяют принадлежность значения заданному интервалу. И кроме того, выражение для вычисления значения может быть настолько сложным, что компилятор не в состоянии будет проверить, вышло указанное значение за диапазон или нет. И в этом случае прерывание работы программы не произойдет и сообщение об ошибке выведено не будет.

Например, в программе

Program Prim1;

Type

Index=1...10;

Var

X:index;

begin

X:= round(100*cos(0));

writeln(‘X=’,X);

end.

задан ограниченный тип index, как отрезок типа Integer- диапазон от 1 до 10; Переменная Х имеет тип index и должен принимать значения только от1 до 10.

Значения выражений

round(100*cos(0))=round(100*1.0)=round(100.0)=100

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

Результатом выполнения программы будет вывод результата вычисления

Х=100.

Следовательно, при использовании ограниченного типа нужно быть очень осторожным, и не рассчитывать на то, что компилятор автоматически начнет все проверять.

Поэтому удобнее пользоваться переменными базового порядкового типа, а проверку выхода за границу диапазона осуществлять в программе.

Структура программы

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

В языке Турбо Паскаль программа имеет следующею структуру:

Заголовок программы

Раздел описаний

Begin

Раздел операторов

End.

Заголовок программы

Заголовок программы имеет следующую структуру:

Program<имя программы>;

Здесь Program – ключевое (зарезервированное) слово.

<имя программы> - имя, задаваемое программистом по правилам определения идентификатором

Между ключевым словом Program и именем программы должен быть по крайней мере один пробел (а может быть и больше). Например, PROGRAM ZADANIE1;

В Тубо Паскале оператор заголовка программы может быть опущен. Имя программы в ней фактически никогда не используется, и оно совершенно не связано с именем внешнего файла, содержащего текст программы.