Условный оператор позволяет осуществить ветвление программы только по двум направлениям, одно из которых соответствует выполнению проверяемого условия, а другое — невыполнению этого же условия. Если для переменной необходимо осуществить ряд действий, зависящих от других условий, то надо записывать либо вложенные условные операторы, либо несколько таких операторов подряд. Для такой ситуации удобно использовать оператор варианта. Он соответствует структуре, изображенной на рисунке 6.
Данная структура называется также переключателем и выполняется следующим образом. Вход в структуру содержит вычисление или ранее полученное значение переменной (индекса варианта). Это значение может совпасть с меткой, стоящей перед оператором на одной из ветвей переключателя. В таком случае выполняется оператор, помеченный этой меткой, и происходит выход из структуры. Оператор бывает простым или составным, ограниченным операторными скобкамиbegin ... end;. Если значение индекса варианта не совпало ни с одной из меток, то выполняется оператор с номером п + 1 из строкиelse. Если оператор варианта содержит строкуelse, то это — полная форма оператора, если такой строки нет, то используется сокращенная форма оператора варианта.
Метки оператора варианта могут быть константами любого типа. Их тип должен совпадать с переменной индекса варианта. Возможно, чтобы индекс варианта был как именем переменной, так и выражением соответствующего типа.
Рис. 6. Структура оператора варианта
На языке Паскаль оператор варианта имеет вид:
case индекс варианта of
метка1:оператор 1;
метка2:оператор 2;
. . .
метка n:оператор n;
else оператор n + 1
end;
Пример программы, содержащей оператор варианта. Одной из распространенных задач раздела физики «Молекулярно-кинетическая теория» является задача, связанная с расчетом числа молекул в единице объема в теле заданной массы и в теле известного объема. Для такой задачи можно построить программу-решатель.
Дано: молярная масса вещества М, плотность данного вещества Р, масса R или объем данного тела V. Требуется найти число молекул К: 1) в единице массы вещества; 2) в теле с заданной массой; 3) в единице объема вещества; 4) в теле с заданным объемом. Для решения задачи воспользуемся формулой:
К= (NA/M)R,
где NA = 6,022 * 10 23 г/моль — число Авогадро.
На основании этой формулы получаем расчетные формулы для программы:
1) К = N A/ М; 2) К= N AR/M; 3) К= NA Р V/ М; 4) К= NA Р/ М.
Программа имеет вид:
program Р20;
const NA = 6.022 E20;
var N:integer; М, R, Р, V, К:real;
Begin
writeln (‘зная постоянную Авогадро, плотность Р данного вещества’);
writeln (‘и его молярную массу М, можно найти число молекул в’);