B:=0;       B:= Pred(B);       { нет реакции на антипереполнение }

В таких случаях в Borland Pascal имеет силу директива проверки переполнения $Q+, которая соответствует флажку «Overflow Checking» в окне опций компилятора (рис. 74). Директивы $R+ и $Q+ можно применять совместно, например:

{ $R+, Q+ }

var B : byte;       { допустимые значения для байта от 0 до 255 }

      C : ’a’..’z’; { это ограниченный диапазон символов }

      ...

      C:=’z’; C:= Succ(C);       { сработает R+ }

      B:=255; B:= Succ(B);       { сработает Q+ }

Счетчики циклов

В операторе FOR-TO-DO для счетчика цикла мы применяли числовые переменные. Теперь разнообразим меню: ведь для этого годятся переменные любого порядкового типа, например:

var m : (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dcb);

      ...

      for m:= Jan to Dcb do...

А вот так вычисляется сумма кодов для символов от «a» до «z», здесь счетчиком цикла является символьная переменная:

var Sum : word; Chr : char;

      ...

      Sum:=0;

      for Chr:= ’a’ to ’z’ do Sum:= Sum + Ord(Chr);

Метки в операторе выбора

Вот ещё одно следствие числового кодирования: любой порядковый тип может служить меткой в операторе CASE-OF-ELSE-END:

var c : char;

      ...

      Case c of

      ’0’..’9’: Writeln(’Цифра’);

      ’a’..’z’: Writeln(’Латинская строчная’);

      ’A’..’Z’: Writeln(’Латинская заглавная’);

      end;

А вот ещё пример.

type TMonth = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dcb);

var m : TMonth; { здесь хранится один из месяцев }

      ...

      Case m of

      Jan, Feb, Dcb : Writeln(’Зима’);

      Mar..May       : Writeln(’Весна’);

      Jul..Aug       : Writeln(’Лето’);

      Sep..Nov       : Writeln(’Осень’);

      end;

Вы читаете Песни о Паскале
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату