Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Praktikum_po_Turbo_Paskaliu.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать

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

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

Var month: (january, february, marth, april, may, june, jule, august, september, october, november, december);

Упорядоченность элементов перечисляемого типа определяется порядком их следования. Самый левый имеет минимальное значение (значение функции ord для него равно 0), а наиболее правый - максимальное.

Решение задач

  1. Имеются описания

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?

  1. Напишите программу, которая по заданной дате определяет время года. Программа должна проверять корректность введённой даты.

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

Var m, m1: (january, february, marth, april, may, june, jule, august, september, october, november, december); k : 1..maxint; n : 1..12;

  1. Внутри каждого подцикла годы носили название животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. Напишите программу, которая по номеру года определяет его название по старояпонскому календарю (1984-год зелёной крысы).

  2. Дано неотрицательное число k, не превышающее десяти тысяч. Напечатать фразу "k ворон" русскими словами. (Пример: если k = 23, то должно быть напечатано "двадцать три вороны"; если k = 3651, то "три тысячи шестьсот пятьдесят одна ворона").

  3. Имеются описания

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'))?

  1. Имеются описания переменных:

Var k1, k2 : (north, east, south, west); pr : (forward, right, back, left);

Корабль сначала шёл по курсу k1, а затем его курс был изменён согласно приказу pr. Определить k2 - новый курс корабля.