next up previous

Next: 5.1.4 Типы, заданные перечислением
Up: 5.1 Простые типы данных, определяемые программистом
Previous: 5.1.2 Введение синонимических типов

5.1.3 Задание отрезков типов

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

Для любого простого типа (за исключением вещественного) в Паскале можно создать новый тип (см. рис. 5.2), значения которого составляют интервал значений исходного типа, называемого базовым. Этот новый тип, называемый отрезком базового типа, сохраняет все свойства базового типа с учетом ограничения диапазона его значений.

Пусть имеются определения:

type ГОД = 1900..2000; БУКВА = 'A'..'Z'; ЦИФРА = '0'..'9';
var Х : ГОД; Y : БУКВА; Z : ЦИФРА;

тогда не разрешены присваивания

Х:=1812; Z:='A';

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

Рассмотрим небольшой пример использования отрезков типов. Пусть требуется подсчитать средний рост (в сантиметрах) студента в заданной учебной группе. Эту задачу решает следующая программа

program СреднийРост;
const МинРост = 100; МаксРост = 300; N = 40;
type РОСТ = МинРост .. МаксРост; НОМЕР = 1..N;
var СТУД, ОТВЕТ : РОСТ; К : НОМЕР; S : Integer;
begin
K= 0; S := 0;
repeat Read( СТУД ); К := К+1; S := S + СТУД
{S - сумма элементов из Input1$K = \mid Input1 \mid \}$
until Eof {Ограничивающее выражение: $\mid Input2 \mid \}$;
ОТВЕТ := S div K;
Write( ' Средний рост студента равен ', ОТВЕТ )
end.

Next: 5.1.4 Типы, заданные перечислением
Up: 5.1 Простые типы данных, определяемые программистом
Previous: 5.1.2 Введение синонимических типов


© В.Н. Касьянов, 2001