|
Новости |
Ограниченный, перечисляемый типы данных. Оператор вариантаПовторение
Ограниченный тип данныхОграниченный тип данных представляет собой интервал значений порядкового типа, называемого базовым типом. Описание типа задаёт наименьшее и наибольшее значения, входящие в этот интервал. Например,
Здесь переменные а и ch могут принимать значения только из указанного интервала; базовым типом для переменой а является целый тип, а для переменной ch - символьный. Переменная ограниченного типа сохраняет все свойства переменных базового типа. Для чего вводится ограниченный тип данных? Использование ограниченного типа делает программу наиболее понятной и наглядной. Например, если в программе переменная b может принимать только значения 3, 4, 5, 6, 7, 8, то лучше описать её следующим образом: Var b: 3..8;, чем Var b: Integer; так как в случае выхода значения b за диапазон 3..8 в первом случае будет выдано диагностическое сообщение, которое поможет найти ошибку. Во втором случае будет получен неправильный результат, что затруднит поиск ошибки. Таким образом, второй вариант описания переменной следует использовать в тех случаях, когда диапазон значений заранее неизвестен либо занимает весь допустимый интервал значений для рассматриваемого типа. Пример 1: Напишите программу, которая переменной t присваивает значения true, если первая дата предшествует (в рамках года) второй дате, и значение false в противном случае. Решение Так как в условии задачи оговаривается, что обе даты должны находится в рамках года, то дата должна задаваться днём и месяцем. Количество любого месяца года не может быть более 31, количество месяцев в году равно 12. Значение переменной t равно true, если номер первого месяца меньше второго, либо значение первого дня меньше второго при условии, что номера месяцев совпали.
Задание 1 Модифицировать программу так, чтобы осуществлялась проверка корректности введенных дат. Оператор вариантаВ программах очень часто используются операторы Case ... of. Эта конструкция предназначена для замены конструкции из вложенных операторов If...then и применяется для обработки ситуаций с несколькими исходами, т.е. когда условие может принимать более двух значений. Оператор выбора имеет следующий вид:
Выполнение оператора выбора начинается с вычисления выражения, которое должно принимать значение, принадлежащее порядковому типу. В случае, если результат вычисления равен одной из перечисленных констант, то выполняется соответствующий оператор. Затем управление передаётся за пределы оператора выбора. Если значение выражения не совпадает ни с одной константой, то выполняется оператор, стоящий после else, если он есть, либо управление передаётся на оператор end и выполнение программы продолжается. Примечание.
Пример 2: Составьте программу, которая определяет, является ли введенный символ гласной или согласной буквой английского алфавита. Решение По условию задачи все символы делятся на следующие группы: * гласные буквы английского алфавита; * согласные буквы английского алфавита; * символы, не являющиеся буквами английского алфавита. Рассмотрим следующую программу:
'A','E','I','O','U': Writeln('Это гласная буква английского алфавита'); 'A'..'Z': Writeln('Это буква английского алфавита'); Else Writeln('Этот символ не является буквой английского алфавита'); End.
Обратите внимание на то, что константы здесь в первом случае перечисляются через запятую, а во втором используется интервал значений. Задание 2: Напишите эту программу, используя условный оператор. Перечисляемый тип данныхЭтот тип данных получил название перечисляемого, потому что он задаётся в виде перечисления некоторых значений. Эти значения образуют упорядоченное множество и являются константами этого типа. Для объявления переменной список возможных значений, разделённых запятой, указывается в круглых скобках. Например,
Упорядоченность элементов перечисляемого типа определяется порядком их следования. Самый левый имеет минимальное значение (значение функции ord для него равно 0), а наиболее правый - максимальное. |
На главную страницу(с)Все права защищеныПо всем интересующим вопросам прошу писать на электронный адрес |