Цель работы:Ознакомление с перечисляемым и ограниченным типами данных.
Краткие сведения:
Перечисляемый тип – это тип, составленный из множества упорядоченных элементов. При определении перечисляемого типа перечисляются все значении, которые может принимать переменная этого типа.
Создаваемый перечисляемый тип определяется в разделе типов TYPE:
<имя типа>=(значение1, значение2, значениеn);
<имя типа>-имя типа, определяемого программистом;
(значение1, значение2, . . . значениеn) являются константами определенного.
Ограниченные типы данных могут принимать значения в заданном диапазоне значений. Ограничение диапазона задается указанием минимального и максимального диапазона
<мин. значение>. . .<макс. значение>;
Ограниченные типы определяются в разделе TYPE или VAR.
Задание:
1. Имеются следующие описания:
type месяц=(янв, фев, март, апр, май, июн, июл, авг, сен, окт, ноя, дек);
var m, ml :месяц ;
k:l..maxint;n:1..12;
Присвоить переменной ml:
а)название месяца, следующего за месяцем т (с учетом того, что за декабрем идет январь);
б) название k-гoмесяца после месяца m;
2. Имеются следующие описания:
type страна=(Австрия, Болгария, Греция, Италия, Норвегия, Франция, ФРГ);
столица=(Вена, София ,Афины, Рим , Осло, Париж, Бон);
var st: страна; cap: столица;
По значению переменной st (названию страны ) присвоить переменной cap название столицы этой страны.
3. Имеются следующие описания:
var Р:(ада, бейсик, модула2, лисп ,паскаль,пл1, фортран);
A:(ada, basic,modula2,lisp,paskal, pll,fortran);
По Р - русскому названию языка программирования присвоить переменной А английское название.
4. Имеются следующие описания:
type название = (ноль, один, два, три, четыре, пять);
var :d:'0'..'5';
n:название;
По литере -цифре d присвоить переменной п название этой цифры.
5. Имеются следующие описания: type нота = (до, ре, ми, фа, соль, ля, си);
Определить i-интервал, образованный нотами n1 и n2(n1 n2):секунда-это интервал из двух соседних (по кругу) нот (например, ре и ми, си и до),терция-интервал через ноту (например, фа и ля, си и ре) и т.д. 7.11. Имеются следующие описания: type сезон = (зима, весна, лето, осень);
месяц = (янв, фев, мар, апр, май, июн, июл, авг, сен, окт,ноя, дек);
var m: месяц; s: сезон; Определить s- сезон, на который приходится месяц т.
6. Имеются следующие описания:
type страна = (ГДР, Куба, Лаос, Монако, Непал, Польша);
континент = (Азия, Америка, Европа);
var s: страна; с: континент;
По s- названию страны определить с- название ее континента.
7. Имеются следующие описания:
type единица = (дециметр, километр, метр, миллиметр, сантиметр);
длина = real;
var s: страна;
р: единица;
Значение переменной х, означающее некоторую длину в единицах p, заменить на величину этой же длины в метрах.
8. Имеются следующие описания: type цвет = (черный, серый, белый); var с: цвет;
Напечатать значение переменной с.
9. Имеются следующие описания: type letter = (a, b, с, d);
var x: letter;
Ввести заданное во входном файле значение типа letter (т. е. а, b, с или d) и присвоить его переменной х.
10. Имеются следующие описания:
type падеж = (им , род, дат, вин, твор, предл);
слово = (степь, боль, тетрадь, дверь);
var w. слово;p: падеж;
Напечатать слово w в падеже р и единственном числе (например, при w=степь и р = твор надо напечатать слово степью).
11. Имеются следующие описания:
type курс = (С, В, Ю, 3,); { север, восток, юг, запад }
приказ = (вперед, вправо, назад, влево );
varKl,K2: курс; ПР: приказ;
Корабль сначала шел по курсу К1, а затем его курс был изменен согласно приказу ПР. Определить К2 - новый курс корабля.
12. Имеются следующие описания: var d:28..31;
m: месяц;
Переменной d присвоить количество дней в месяце т ( год считать невисокосным).
13. Имеются следующие описания: var у: 1901..2000;
m: месяц; d: 1..31;
t: boolean;
Переменной t присвоить значение true, если тройка у, т, d образует правильную дату, и значение false - иначе ( при 31 июня и т.п.).
14. Имеются следующие описания: var d,dl: 1 ..31; m, ml: месяц;
у: 1901..2000;
yl: 1901..2001;
По дате d, т, у определить d1, m1, y1 - дату следующего дня.
15. Имеются следующее описание:
var k: 1. .366; d: 1..31; m: месяц;
а) Определить k - порядковый номер того дня високосного года, который имеет дату d, т;
б) Определить d, т - дату k-гoпо счету дня високосного года.
Контрольные вопросы:
Дайте определение перечисляемому и ограниченному типу?
Где описываются эти типы?
Какие операции определены над перечисляемым типом?