Pred (a)- предыдущий элемент области значений порядкового типа.
Оператор выбора. Оператор безусловного перехода
Оператор выбора Если у вас не два возможных варианта выполнения программы, а больше, то может использоваться оператор выбора CASE. Полная форма оператора выбора: Case <ключ_выбора> of Знач 1: <оператор 1>; Знач 2: <оператор 2>; . . . Знач n: <оператор n>; Else <оператор 0>; End;
Неполная форма оператора выбора: Case <ключ_выбора> of Знач 1: <оператор 1>; Знач 2: <оператор 2>; . . . Знач n: <оператор n>; End; Здесь <ключ_выбора> - это имя переменной любого порядкового типа, кроме вещественного или строкового, или выражение (арифметическое с целым значением или логическое) в зависимости от значения которого принимается решение. Знач 1, Знач 2, ... , Знач n - значения, с которыми сравнивается значение <ключа>. Тип параметра Знач должен совпадать с типом ключа. При этом параметр Знач – константа (можно задавать или список, или диапазон констант). <Оператор 1>,..., <оператор n> - операторы (возможно составные), из которых выполняется тот, с константой которого происходит первое совпадение значения <ключа>. <Оператор 0> выполнится, если значение ключа не совпадает ни с одной из констант Знач 1, Знач 2, ... , Знач n. Ветвь Else не обязательна, и в отличие от оператора if, перед ней можно ставить точку с запятой. Если для нескольких значений <ключа> действия совпадают, то эти константы можно перечислить через запятую перед двоеточием или даже задать диапазон значений (нижняя граница, верхняя граница).
Оператор перехода Оператор перехода имеет вид GOTO <метка>. Он позволяет передать управление непосредственно на нужный оператор программы. Перед этим оператором должна располагаться метка отделенная от него двоеточием. В Турбо Паскале в качестве меток выступают либо целые числа от 0 до 9999, либо идентификаторы. Все метки должны быть описаны в разделе объявления меток следующим образом: label <список меток через запятую> ; Каждой меткой в программе может быть помечен только один оператор. Операторов перехода с одной и той же меткой можно писать любое количество. Необходимо, чтобы раздел описания метки, сама метка и оператор перехода с ее использованием располагались в пределах одного блока программы. Кроме того, нельзя передавать управление внутрь структурированных операторов (например, if, for, while, repeat и др.). Перечисляемый и интервальный типы данных Перечисляемый и ограниченный типы данных относятся к так называемым порядковым типам данных область значений которых является упорядоченное множество. Каждое значение является идентификатором и располагается в круглых скобках через запятую. Количество элементов в перечислении не более 65536. Вводить и выводить переменные перечисляемого типа запрещено. Перечислимый тип является порядковым, поэтому к переменным такого типа можно применять функции: Ord (a)- номер элемента в области значений порядкового типа. Pred (a)- предыдущий элемент области значений порядкового типа. Succ(а)-следующий элемент области значений порядкового типа Стандартные типы byte, word, char и boolean также можно считать вариантами перечислимого типа. Тип-диапазон Тип-диапазон называют ограниченным или интервальным типом. Он является подмножеством своего базового типа, в качестве которого может выступать любой порядковый тип кроме типа-диапазона. Тип-диапазон наследует все свойства своего базового типа. Имеются две стандартные функции, работающие с этим типом: High(x)- возвращает максимальное значение типа-диапазона, к которому принадлежит переменная x; Low(x) - возвращает минимальное значение. В тексте программы на Турбо Паскале могут встречаться директивы компилятору, которые также называют опциями. Опции {$R+} и {$R-} позволяют включать и отключать проверку соблюдения границ при работе с диапазонами. Когда проверка включена, при нарушении границ диапазонов происходит аварийное завершение работы программы.
Пример 1. Написать программу, которая бы по введенному номеру времени года (1 — зима, 2 — весна, 3 — лето, 4 — осень) выдавала соответствующие этому времени года месяцы. Решение.
Program chetnoechislo; Var n: integer; Begin Write ('Введите номер месяца n'); Readln(n); Case n of 1: Writeln(‘декабрь, январь. февраль'); 2: Writeln ('март, апрель, май'); 3: Writeln ('июнь, июль, август'); 4: Writeln('сентябрь, октябрь, ноябрь'); end; End.
Пример 2. Вводится целое число, если оно однозначное, то определить четное оно или нет, а если нет, то определить попадает ли оно в диапазон от 10 до 100, иначе выдать соответствующее сообщение. Program chislo; Var i: integer; Begin Write('Введите целое число: '); Readln(i); Case i of 0, 2, 4, 6, 8: Writeln('Четная цифра'); 1, 3, 5, 7, 9: Writeln('Нечетная цифра'); 10...100: Writeln('Число от 10 до 100'); else Writeln('Число либо отрицательное, либо > 100'); end; Readln end.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|