Оператор выбора.ppt
- Количество слайдов: 13
Оператор выбора Case
Формат оператора: case K of A 1: оператор; . . . AN: оператор else оператор; end; K – выражение-селектор (простого порядкового типа: целочисленное, символьное, логическое) А 1, …, AN – константы того же типа, что и селектор, выполняющие роль меток ветвей
Оператор выбора Особенности: • после case может быть имя переменной или арифметическое выражение целого типа (integer) case i+3 of 1: begin a : = b; end; 2: begin a : = c; end; или символьного типа (char) var c: char; . . . case c of 'а': writeln('Антилопа'); 'б': writeln('Барсук'); else writeln('Не знаю'); end;
Оператор выбора Особенности: • если нужно выполнить только один оператор, слова begin и end можно не писать case i+3 of 1: a : = b; 2: a : = c; end; • нельзя ставить два одинаковых значения case i+3 of 1: a : = b; 1: a : = c; end; 4
Оператор выбора Особенности: • значения, при которых выполняются одинаковые действия, можно группировать перечисление диапазон смешанный case i of 1: a : = b; 2, 4, 6: a : = c; 10. . 15: a : = d; 20, 21, 25. . 30: a : = e; else writeln('Ошибка'); end;
Преобразование введенного целого числа из диапазона (0. . 4) в его словесное представление Var Num: integer; Begin write('Введите число: '); readln(Num); if Num = 0 then writeln('Нуль'); if Num = 1 then writeln('Один'); if Num = 2 then writeln('Два '); if Num = 3 then writeln( 'Три '); if Num = 4 then writeln('Четыре'); Еnd.
var Num: integer; begin write('Введите число: '); readln(Num); case Num of 0: writeln('Нуль'); 1: writeln('Один'); 2: writeln('Два' ); 3: writeln('Три '); 4: writeln('Четыре') else writeln('Введено другое число') end; End.
Оператор выбора Задача: Ввести номер месяца и вывести количество дней в этом месяце. Решение: Число дней по месяцам: 28 дней – 2 (февраль) 30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь) 31 день – 1 (январь), 3 (март), 5 (май), 7 (июль), 8 (август), 10 (октябрь), 12 (декабрь) Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от номера месяца.
Алгоритм начало ввод M M = 1? нет M = 2? да да выбор D : = 31; D : = 28; нет M = 12? ни один вариант не подошел нет ошибка конец да D : = 31; вывод D
Алгоритм начало ввод M выбор 1, 3, 5, 7, 8, 10, 11 D : = 31; 2 D : = 28; 4, 6, 9, 11 ни один вариант не подошел нет ошибка конец D : = 31; вывод D
Программа var M, D: integer; begin writeln('Введите номер месяца: '); read ( M ); case M of 2: begin D : = 28; end; 2: D : = 28; 4, 6, 9, 11: begin D : = 30; end; 4, 6, 9, 11: D : = 30; 1, 3, 5, 7, 8, 10, 12: D : = 31; ни один 1, 3, 5, 7, 8, 10, 12: D : = 31; else D : = -1; вариант не else D : = -1; end; подошел if D > 0 then writeln('В этом месяце ', D, ' дней. ') else writeln('Неверный номер месяца'); end.
Что неправильно? 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; 3. . 6: end; case a+c/2 of 2: a : = b; 4: a : = c; end; begin case a of 2: a : = b; d : = 0; end; 4: a : = c; end;
Составить программу, которая выдает сообщение о том, какой символ был введен: - цифра от 0 до 9; - латинская строчная буква; - латинская заглавная буква.
Оператор выбора.ppt