Основы алгоритмизации и программирования. Часть первая. Алгоритмический язык. Операторы. Асламова В.С - 20 стр.

UptoLike

Составители: 

39
Оператор варианта
Данный оператор является обобщением условного оператора.
Можно конкретно сопоставить различным значениям некоторого
выражения соответствующие им операторы.
Case
Селектор O
f
А
льтернатива
Else
End
Оператор
;
;
Рисунок 30 Оператор варианта
Константа
. .
Оператор
,
Константа
:
Рисунок 31 Альтернатива
case Switch of;
Red: X:=Y+2;
1 . . 5: Proc1;
3, 4, 10 . . 20: Multiply(X,Y);
else X:=Y;
end
При выполнении данного оператора вначале вычисляется значение
селектора. Затем выбирается тот список значений, которому принадлежит
полученное значение, и выполняется соответствующий оператор. Switch –
выражение (селектор) любого порядкового типа, значение которого
вычисляется. “Red”, “1 . . 5”, “3, 4, 10 . . 20“, – константы, с которыми
сравнивается значение выражения Switch. “X:=Y+2”, “Proc1”,
“Multiply(X,Y)” – операторы, из которых выполняется тот, с константой
которого совпадает значение выражения Switch. Селектор может
принадлежать целому, логическому, с
имвольному, перечисляемому и
ограниченному типам. Каждый оператор, идущий за двоеточием,
отделяется от следующего списка значений точкой с запятой. Ветвь
else
X:=Y
, отвечающая всем не перечисленным значениям селектора Switch,
необязательна.
Если для нескольких констант нужно выполнять один и тот же
оператор, их можно перечислять через запятую (или указать диапазон,
если это возможно), сопроводив их одним оператором.
40
В списках значений оператора
case допустимыми являются типы
переменных, называемые скалярными, включая целые и исключая
вещественные типы. Любое заданное значение селектора может входить в
список значений неоднократно, но выполняться будет лишь первая
подходящая ветвь. Если значение селектора отсутствует в списках
значений, ни одна из альтернатив выполняться не будет. В этом случае
выполняется ветвь
else оператора case или (если эта ветвь отсутствует)
следующий за
case оператор. Ветвь else допускает последовательность
операторов, разделенных символом ”;” (точка с запятой).
Обратите внимание, что синтаксис языка предполагает один
оператор для каждой альтернативы. При необходимости задания
нескольких операторов следует сгруппировать их в составной оператор.
Пример 8. Оператор варианта
Смотри условие примера 7. Реализуем данную программу с
помощью оператора варианта.
Программа 2
Var P:char; {Пол кандидата}
V,K:real; {Возраст человека. Возраст кандидата}
Begin write(‘Кто Вы мужчина или женщина? Ответьте M или D’);
Readln(P);
write(Ваш возраст’); readln(V);
if V<17 then begin
writeln(Вы еще молоды’);
exit {Процедура завершения программы}
end;
case P of
'd', 'D': K:=2*V-14;
'm', 'M': K:=V/2+7
else writeln('Неверно введен пол');
exit end;
writeln(‘Подходящий возраст кандидата ’,K,’ лет’);
End.
                                                                                    В списках значений оператора case допустимыми являются типы
Оператор варианта                                                             переменных, называемые скалярными, включая целые и исключая
                                                                              вещественные типы. Любое заданное значение селектора может входить в
     Данный оператор является обобщением условного оператора.                 список значений неоднократно, но выполняться будет лишь первая
Можно конкретно сопоставить различным значениям некоторого
                                                                              подходящая ветвь. Если значение селектора отсутствует в списках
выражения соответствующие им операторы.                                       значений, ни одна из альтернатив выполняться не будет. В этом случае
      Case      Селектор   Of   Альтернатива     Else   Оператор   End
                                                                              выполняется ветвь else оператора case или (если эта ветвь отсутствует)
                                     ;                     ;
                                                                              следующий за case оператор. Ветвь else допускает последовательность
                                                                              операторов, разделенных символом ”;” (точка с запятой).
Рисунок 30 Оператор варианта
                                                                                    Обратите внимание, что синтаксис языка предполагает один
                                                                              оператор для каждой альтернативы. При необходимости задания
  Константа       ..    Константа        :   Оператор                         нескольких операторов следует сгруппировать их в составной оператор.

                  ,                                                           Пример 8. Оператор варианта

Рисунок 31 Альтернатива                                                            Смотри условие примера №7. Реализуем данную программу с
                                                                              помощью оператора варианта.
case Switch of;
                                                                              Программа 2
  Red: X:=Y+2;
      1 . . 5: Proc1;                                                         Var      P:char;                {Пол кандидата}

  3, 4, 10 . . 20: Multiply(X,Y);                                                     V,K:real;               {Возраст человека. Возраст кандидата}

else X:=Y;                                                                    Begin write(‘Кто Вы мужчина или женщина? Ответьте M или D’);

end                                                                                       Readln(P);

      При выполнении данного оператора вначале вычисляется значение                   write(‘Ваш возраст’);        readln(V);
селектора. Затем выбирается тот список значений, которому принадлежит                              if V<17 then begin
полученное значение, и выполняется соответствующий оператор. Switch –
                                                                                                   writeln(‘Вы еще молоды’);
выражение (селектор) любого порядкового типа, значение которого
вычисляется. “Red”, “1 . . 5”, “3, 4, 10 . . 20“, – константы, с которыми                          exit           {Процедура завершения программы}
сравнивается значение выражения Switch. “X:=Y+2”, “Proc1”,                              end;
“Multiply(X,Y)” – операторы, из которых выполняется тот, с константой
которого совпадает значение выражения Switch. Селектор может                  case P of
принадлежать целому, логическому, символьному, перечисляемому и                     'd', 'D': K:=2*V-14;
ограниченному типам. Каждый оператор, идущий за двоеточием,
                                                                                        'm', 'M': K:=V/2+7
отделяется от следующего списка значений точкой с запятой. Ветвь else
X:=Y, отвечающая всем не перечисленным значениям селектора Switch,                               else     writeln('Неверно введен пол');
необязательна.                                                                          exit      end;
       Если для нескольких констант нужно выполнять один и тот же             writeln(‘Подходящий возраст кандидата ’,K,’ лет’);
оператор, их можно перечислять через запятую (или указать диапазон,
если это возможно), сопроводив их одним оператором.                           End.


                                                                         39   40