Перечислимый тип данных

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

Например,

Varmonth(january, february, march, april, may, june, july, august, september, october, november, december);

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

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

функция Pred(x) определяет значение, предшествующее х;

функция Ord(x) возвращает порядковый номер величины х;

функция Succ(x) определяет значение, следующее за х.

К переменным перечисляемого типа можно применять операции сравнения. Так, например, february<november.

Задача 3.Вычислить значения :

а) Ord(august);

б) Ord(succ(september));

в) Pred(Pred(december)).

 

Задача 4. Имеются описания :

var x,y : (winter, spring, summer, autumn);

t : (cold, warm);

а) Допустимы ли присваивания :x:=spring; t:=warm: t:=hot; y:=x; y:=t;

б) Вычислить значения выражений :

spring<summer;

autumn<winter;

Succ(spring);

Pred(autumn);

Ord(spring);

winter<=summer;

spring<>warm;

Pred(spring);

Pred(cold);

Pred(autumn) + Ord(cold);

в) Допустим ли оператор цикла с заголовком : For x:=spring To autumn Do

 

Задача 5.Даны описания следующих переменных :

VAR m, m1: (january, february, march, april, may, june, july, august,

september, october, november, december);

k: 1..maxint; n: 1..12;

Присвоить переменной m1:

а) название месяца, следующего за месяцем m;

б) название k-го месяца после месяца n.

Задача 6.Имеются описания :

VAR d: ‘0’..’9’; k: 0..9; n: integer;

а) Какие значения может принимать переменная d ? Каков ее базовый тип? Допустимы ли присваивания : d:=’7’; d:=’a’; d:=7 ?

б) Какие значения может принимать переменная k ? Каков ее базовый тип ? Допустимы ли присваивания : k:=5; k:=10; k:=-0: k:=’5’ ?

в) Есть ли ошибки в операторе :

if k+n>7*k then k:=abs(n) mod 10

else d:=chr(k+Ord(‘0’) ?








Дата добавления: 2015-01-15; просмотров: 1094;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.