![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Выбирающий оператор
В Паскале два вида выбирающего оператора: условный оператор и оператор переключатель. 1. Условный оператор используется при кодировании развилок, то есть для организации бинарного ветвления.
При отсутствии ветви еlse условный оператор будем называть неполным. После ключевых слов then и еlse синтаксис требует наличия только одного оператора. Если же по какой-либо ветви нужно выполнить несколько операторов, то следует использовать составной оператор. Перед еlse точка с запятой недопустима, так как в этом случае между then и else будут два оператора, один из которых пустой. Если оператор, выполняемый по ветви then или еlse, является условным, то говорят о вложенных условных операторах. В случае вложенных условных операторов каждое еlse относится к ближайшему предшествующему then.
Примеры вложенных условных операторов (каждое else рекомендуется располагать под соответствующим then): a) Оператор присваивает переменной max maximum{a, b, c}: if a> b then if a> c then max: =a else max: =c else if b> c then max: =b else max: =c;
б) Оператор, эквивалентный приведенной слева развилке, имеет вид
if a> b then begin if a> c then a: =0 end else a: =1;
В приведенном примере вложенный условный оператор - неполный, поэтому он заключен в операторные скобки. При отсутствии операторных скобок неполным будет внешний оператор. 2. Оператор переключатель предназначен для организации множественного ветвления.
Синтаксическая диаграмма переключателя:
Выражение после ключевого слова case называется селектором. Селектор должен иметь упорядоченный тип, кроме типа longint. Константы называются метками случаев. они должны относиться к тому же типу, что и переключатель. Работа оператора сase заключается в следующем. Вычисляется значение селектора. Если это значение совпадает с одной из меток случаев, то выполняется оператор, записанный после нее. Если значение селектора не совпало ни с одной из меток случаев, то выполняется оператор, следующий за еlse. Если ветвь еlse отсутствует, то управление передается оператору, следующему за переключателем. Диапазоны и метки случаев не должны пересекаться. В качестве примера рассмотрим программу для определения экзаменационной оценки по количеству набранных абитуриентом баллов. Оценка выставляется по правилам, приведенным в таблице:
Program ball_to_ mark; Var b: real; m: 2..5; begin write (‘Введите количество баллов ‘); read(b); case round (b*4) of {селектор должен иметь упорядоченный тип} 0..16: m: =2; {границы диапазонов из таблицы умножены на 4} 17..28: m: =3; 29..37: m: =4 else m: =5 end; writeln(b, ‘ баллов - оценка ‘, m) end.
|