Реферат: Паскаль. Отладка программ
Часть оператора case, состоящая из слова else и последнего альтернативного варианта, является необязательной, она выполняется в том случае, если вычисленный в программе селектор не соответствует ни одной из перечисленных выше альтернатив. Если эта часть оператора case отсутствует, а селектор не подходит ни под одну из альтернатив, то оператор case не выполнит никаких действий. Завершается оператор case обязательным словом end;
Пример. С использованием оператора case наша программа приобретает следующий вид
Program Dialog;
const
Question =' What is your name?';
Replyl =
'Паскаль — прост, но первый компилятор Паскаля был написан на Паскале';
Reply21 = 'Вас ждет удивительное путешествие';
Reply22 = 'сквозь джунгли особенностей и возможностей языка';
ReplyS =
'Паскаль — разумный компромисс между желательным и эффективным';
Reply4 = 'Паскаль академически элегантен';
var
Name: string;
Age: byte;
begin
WriteLn(Question); ReadLn(Name);
WriteLn('Hello,', Name,'!');
WriteLn('Howold are you?'); ReadLn(Age);
case Age of
0..11 :WriteLn(Reply1);
12..19 : begin WriteLn (Reply21); WriteLn (Reply22) end;
20..39: WriteLn(Reply3);
40..150:WriteLn(Reply4)
else WriteLn('Bbi ошиблись при вводе')
end
end.
Переменная Age играет роль селектора. В зависимости от значения данной переменной происходит дальнейшее ветвление программы. В нашем примере в качестве альтернатив применяются диапазоны значений, поскольку нельзя использовать результаты сравнения чисел, как в предыдущей программе. Исходные неравенства заменены диапазонами. Например, проверка логического условия Age < 12 заменена проверкой принадлежности диапазону 0..11.
В заключение подчеркнем, что оператор case имеет существенные отличия от оператора if. Используемые для выбора альтернатив метки должны быть количественно определены до начала вычислений, поэтому в них могут применяться только константы, приведенные непосредственно или описанные в разделе описаний. Кроме того, оператор ограничен порядковыми типами данных, используемых для выбора альтернатив.