120 likes | 299 Views
Тема: «Перечисляемый тип данных». 10 класс Turbo Pascal 7.0.
E N D
Тема: «Перечисляемый тип данных» 10 класс Turbo Pascal 7.0
Этот тип данных получил название перечисляемого, потому что он задается в виде перечисления некоторых значений. Эти значения образуют упорядоченное множество и являются константами. Для объявления переменной список возможных значений, разделенных запятой, указывается в круглых скобках. Криворотова Л. Н. МОУ"Гимназия" г.Тырныауз КБР
Например: • Var month: (January, February, March, April, May, June, July, August, September, October, November, December); К переменным перечисляемого типа можно применять операции сравнения. Так, например, february < november. Криворотова Л. Н. МОУ"Гимназия" г.Тырныауз КБР
Порядок элементов перечисляемого типа определяется порядком их следования в описании. Левый имеет минимальное значение (значение функции Ord для него равно 0), а правый — максимальное. Криворотова Л. Н. МОУ"Гимназия" г.Тырныауз КБР
Задание • Вычислить значения: • a) Ord(august); • b) Ord(succ(September)); • c) Pred(Pred(december)). 7 9 october Криворотова Л. Н. МОУ"Гимназия" г.Тырныауз КБР
Использование перечисляемого типа данных повышает читабельность программы. Однако в языке Паскаль нельзя вводить и выводить элементы перечисляемого типа. Этот недостаток легко преодолевается, так как всегда можно ввести число, являющееся порядковым номером элемента перечисляемого типа, и вывести на экран значение переменной перечисляемого типа, используя, например, оператор выбора Case. Криворотова Л. Н. МОУ"Гимназия" г.Тырныауз КБР
Решение задач • 1. Имеютсяописания: Var x, y:(winter, spring, summer, autumn); t:(cold, warm) ; • a) Допустимы ли присваивания: x: = spring; t:=warm; t:=hot; у:=х; у:=t; Криворотова Л. Н. МОУ"Гимназия" г.Тырныауз КБР
b) Вычислить, значения выражений: • spring < summer; - true • autumn < winter ; - false • Succ(spring); • Pred(autumn); • Ord(spring); • Winter <= summer ; • Spring <> warm; • Pred(spring); • Pred(cold); • Pred(autumn) + Ord(cold) ; Криворотова Л. Н. МОУ"Гимназия" г.Тырныауз КБР
Домашнее задание: • 2. Даныописанияследующихпеременных:Var m, ml: (January, February, march, April, may, June, July, august, September, October, November, December); k: 1..maxint; n: 1..12; • Присвоитьпеременной m1: • А) название месяца, следующего за месяцем m; • В) название к-го месяца после месяца n. Криворотова Л. Н. МОУ"Гимназия" г.Тырныауз КБР
Ответить на вопросы • 3. Имеются описания: Var d:'0'..'9'; k:0..9; n: Integer; • a) Какие значения может принимать переменная d? Каков ее базовый тип? Допустимы ли присваивания: d: = 7; d: = 'a'; d:= 7? • b) Какие значения может принимать переменная k? Каков ее базовый тип? Допустимы ли присваивания: k:=5; k:=10; k:=-0; k:='5'? • c) Есть ли ошибки в операторе: If k+n>7*k Then k:=abs(n) mod 10 Else d:=chr(k+Ord('0')? Криворотова Л. Н. МОУ"Гимназия" г.Тырныауз КБР
Дополнительное задание • 4. Дано неотрицательное число k, не превышающее десяти тысяч. Напечатать фразу "k ворон", подставив вместо k соответствующее числительное. (Пример: при k=23 должно быть напечатано "двадцать три вороны"; при k=3651 — "три тысячи шестьсот пятьдесят одна ворона".) Криворотова Л. Н. МОУ"Гимназия" г.Тырныауз КБР