четверг, 26 декабря 2019 г.

Оператор выбора

Как и обещала, для дополнительного изучения публикую материал об операторе Case.

Картинки по запросу развилка много дорог

Оператор выбора (оператор CASE) позволяет программировать ветвление по многим направлениям. Этот оператор организует переход на одну из нескольких ветвей в зависимости от значения заданного выражения.

Формат:

Case K of
  A1: оператор_1;
  A2: оператор_2;
  …
  An: оператор_n
  Else оператор_n+1
End

К – выражение простого типа (Integer, Char, Boolean);
A1, …, An – значение, несколько значений или диапазон значений того же типа;
все операторы могут быть простыми или составными;
Else может отсутствовать;
«;» перед Else не ставится

Оператор Case выполняется следующим образом:
1. вычисляется значение выражения K;
2. полученное значение сравнивается со значениями A1, …, An;
3. если значение выражения K совпало с одним из значений (или попало в один из диапазонов) A1, …, An, то выполняется соответствующий оператор;
      иначе выполняется оператор, следующий за Else (или ничего не происходит, если Else отсутствует)

Примеры программ
1. программа по номеру дня недели выводит его название

Program days;
Var x:integer;
Begin
  Write(’Введите № дня недели:’);
  Readln(x);
  Case x of
    1: write(’Понедельник’);
    2: write(’Вторник’);
    3: write(’Среда’);
    4: write(’Четверг’);
    5: write(’Пятница’);
    6: write(’Суббота’);
    7: write(’Воскресенье’)
    Else write(’такого нет’)
  End 
End.

2. программа по номеру месяца выводит количество дней в этом месяце (если для разных значений следует выполнить одни и те же действия, то значения можно перечислять через запятую)

Program month;
Var m:integer;
Begin
  Write(’Введите № месяца: ’);
  Readln(m);
  Case m of
    1,3,5,7,8,10,12: write(’31’);
    4,6,9,11: write(’30’);
    2: write(’28 или 29’)
  End
End.
(Else можно не использовать, при вводе числа не от 1 до 12 ничего не происходит) 


3. программа вычисляет для целых значений X значение функции  







Подсказка: Если значения идут подряд, их можно записывать как диапазон, указывая верхнюю и нижнюю границу, например, 
o в диапазон 3..7 входят 3,4,5,6,7;
o в диапазон  -2..1 входят -2,-1,0,1;
o в диапазон ’b’..’e’ входят ’b’,’c’,’d’,’e’ и т. д.

Program func;
Var x,y:integer;
Begin
  Write(’Введите x’);
  Readln(x);
  Case x of
    -3..0: begin
             y:=x+1;
             Writeln(’Y=’, y)
           end;
     1..5: begin
             y:=x+1;
             Writeln(’Y=’, y)
           End
     Else Writeln(’функция не задана’)
  End;  
End.

Комментариев нет:

Отправить комментарий