Программирование на языке Паскаль. Оператор выбора

Слайд 2

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

Задача: Ввести номер месяца и вывести количество дней в этом месяце.

Оператор выбора Задача: Ввести номер месяца и вывести количество дней в этом

Решение: Число дней по месяцам:
28 дней – 2 (февраль)‏
30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь)‏
31 день – 1 (январь), 3 (март), 5 (май), 7 (июль), 8 (август), 10 (октябрь), 12 (декабрь)‏
Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от номера месяца.

Слайд 3

начало

Ввод М

М = 1 или
3 или 5 или
7 или

начало Ввод М М = 1 или 3 или 5 или 7
8 или
10 или 12

М = 4 или
6 или
9 или
11?

M = 2?

D := 31;

D := 28;

D := 30;

Ошибка

Вывод D

нет

нет

да

да

да

нет

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

ни один вариант не подошел

конец

Слайд 4

Программа

program qq;
var M, D: integer;
begin
writeln('Введите номер месяца:');
read ( M );

Программа program qq; var M, D: integer; begin writeln('Введите номер месяца:'); read
case M of
2: begin D := 28; end;
4,6,9,11: begin D := 30; end;
1,3,5,7,8,10,12: D := 31;
else D := -1;
end;
if D > 0 then
writeln('В этом месяце ', D, ' дней.')‏
else
writeln('Неверный номер месяца');
end.

ни один вариант
не подошел

Слайд 5

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

Особенности:
после case может быть имя переменной или арифметическое выражение целого типа

Оператор выбора Особенности: после case может быть имя переменной или арифметическое выражение
(integer)‏
или символьного типа (char)‏

case i+3 of
1: begin a := b; end;
2: begin a := c; end;
end;

var c: char;
...
case c of
'а': writeln('Антилопа');
'б': writeln('Барсук');
else writeln('Не знаю');
end;

Слайд 6

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

Особенности:
если нужно выполнить только один оператор, слова begin и end можно

Оператор выбора Особенности: если нужно выполнить только один оператор, слова begin и
не писать
нельзя ставить два одинаковых значения

case i+3 of
1: a := b;
1: a := c;
end;

case i+3 of
1: a := b;
2: a := c;
end;

Слайд 7

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

Особенности:
значения, при которых выполняются одинаковые действия, можно группировать

case i of

Оператор выбора Особенности: значения, при которых выполняются одинаковые действия, можно группировать case
1: a := b;
2,4,6: a := c;
10..15: a := d;
20,21,25..30: a := e;
else writeln('Ошибка');
end;

перечисление

диапазон

смесь

Слайд 8

Что неправильно?

case a of
2: begin a := b;
4: a

Что неправильно? case a of 2: begin a := b; 4: a
:= c;
end;

case a of
2: a := b
4: a := c
end;

;

case a of
2..5: a := b;
4: a := c;
end;

case a of
0..2: a := b;
6..3: a := c;
end;

3..6:

case a+c/2 of
2: a := b;
4: a := c;
end;

case a of
2: a := b; d := 0;
4: a := c;
end;

begin

end;