TURBO PASCAL |
Новости
|
Оператор выбора
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора -выражение любого порядкового типа (любого из рассмотренных, кроме типов REAL и STRING, см. гл. 4). Структура оператора выбора такова: CASE <ключ_выбора> OF <список_выбора> [ELSE <операторы>] END Здесь CASE, OF, ELSE, END - зарезервированные слова (случай, из, иначе, конец); <ключ_выбора> - ключ выбора; <список_выбора> - одна или более конструкций вида: <константа_выбора> : <оператор>; <константа_выбора> - константа того же типа, что и выражение<ключ_выбopa> ; <операторы> - произвольные операторы Турбо Паскаля. Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности операторов <список_выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом ELSE. Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу. Составим программу (пример 2.8), имитирующую работу микрокалькулятора. Программа вводит две строки: первая содержит два произвольных числа, разделенных пробелом, вторая - символ арифметического действия, например: 2 2 * или 18.35 0.12 / Над введенными числами осуществляется соответствующее действие и результат выводится на экран. Признаком конца работы программы служит ввод любого символа, отличного от +,-,*, /. Пример 2.8 Program Calc; {Программа вводит два числа в первой строке и один из знаков +, -, *, / - во второй и выводит на экран результат соответствующего арифметического действия} var operation : Char; {Знак операции} х, у, z : Real; {Операнды и результат} stop : Boolean; {Признак ошибочной операции и останова} begin stop := false; repeat WriteLn; {Пустая строка-разделитель} Write('x,y= ' ) ; ReadLn(x,y); Write('операция: ') ; ReadLn(operation); case operation of
WriteLn('результат=',z) until stop end. Любому из операторов списка выбора может предшествовать не одна, а несколько констант выбора, разделенных запятыми. Например, следующая программа при вводе одного из символов: у или Y выведет на экран слово «Да», а при вводе n или N - слово «Нет»: var ch : Char ; begin ReadLn (ch) ; case ch of 'n','N' : WriteLn ('Нет' ); 'y','Y' : WriteLn ('Да') end end.
|
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |