Как и обещала, для дополнительного изучения публикую материал об операторе Case.
Формат:
Case K of
A1: оператор_1;
A2: оператор_2;
…
An: оператор_n
Else оператор_n+1
End
Подсказка: Если значения идут подряд, их можно записывать как диапазон, указывая верхнюю и нижнюю границу, например,
Оператор выбора (оператор 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.