Оператор выбора Паскаля
Организация ветвлений. В языке Паскаль используется два оператора для реализации условных переходов - IF и CASE. Они позволяют нарушить последовательный порядок выполнения инструкций программы.
Оператор условного перехода в Турбо Паскаль имеет вид: if <условие> then <оператор 1> else <оператор 2>;
условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполеннию команды, стоящей непосредственно после оператора if. Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится! else - часть в операторе if может отсутствовать: if условие then оператор 1; Тогда в случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.
Следует помнить, что синтаксис языка допускает запись только одного оператора после ключевых слов then и else, поэтому группу инструкций обязательно надо объединять в составной оператор (окаймлять операторными скобками begin ... end). В противном случае возникает чаще всего логическая ошибка программы, когда компилятор языка ошибок не выдает, но программа тем не менее работает неправильно. Примеры: if x > 0 then modul := x else modul := -x; if k > 0 then WriteLn('k - число положительное'); if min > max then begin t := min; min := max; max := t; end; Блок схема: Оператор выбора Паскаля Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора – выражение любого порядкового типа. Структура оператора выбора в Паскале: Case <ключ_выбора> of <список_выбора> [else <оператор_иначе>] end
Оператор выбора Паскаля работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности <список_выбора> отыскивается константа, равная вычисленному значению. Выполняется оператор, который следует за найденной константой, после чего оператор выбора завершает работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом else. Часть else <оператор_иначе> можно опустить, тогда при отсутствии в списке выбора нужной константы не будет выполнено никаких действий, и оператор выбора просто завершит свою работу.
Например, составим программу, которая по номеру дня недели выводит на экран его название: Пример программы с использованием Case of Program dni_nedeli; Var n: byte; Begin Readln(n); Case n of 1: writeln(‘понедельник ’); 2: writeln(‘вторник ’); 3: writeln(‘среда ’); 4: writeln(‘четверг ’); 5: writeln(‘пятница ’); 6: writeln(‘суббота ’); 7: writeln(‘воскресенье’); else writeln(‘дня недели с номером’, n,’нет’); end; end.
Следует помнить, что все константы из списка выбора должны быть различны. Любому из операторов списка выбора может предшествовать не одна, а несколько констант выбора, разделенных запятыми. Например, следующая программа при вводе одного из символов ‘ y’ или ‘ Y’ выведет на экран «Да», а при вводе ‘ n’ или ‘ N’ – слово «Нет». Пример программы с использованием Case of с несколькими переменными Var ch: char; Begin Readln(ch); Case ch of N, n: writeln(‘Да ’); Y, y: writeln(‘Нет ’); End; End.
Очевидно, что рассмотренные выше программы можно записать с помощью вложенных или последовательно расположенных условных операторов, но в подобных задачах использование оператора выбора является более простым. Основное отличие условного оператора от оператора выбора состоит в том, что в условном операторе условия проверяются одно за другим, а в операторе выбора значение ключа выбора непосредственно определяет одну из возможностей. Блок схема:
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|