Автор: Александрова З.В., учитель физики и информатики
МБОУ СОШ №5 пгт Печенга, Мурманская область
Алгоритмы ветвления. Оператор множественного выбора CASE
9 класс
Повторение
- Что такое алгоритм? Какие типы алгоритмов вы знаете? Что такое линейное программирование? Как записывается оператор присваивания? Каким образом осуществляется ввод и вывод информации? Какие математические операции вы уже знаете? Какой алгоритм называется разветвляющимся? Приведите примеры. Какие типы данных мы с вами изучили? Какие операторы изучены?
- Что такое алгоритм?
- Какие типы алгоритмов вы знаете?
- Что такое линейное программирование?
- Как записывается оператор присваивания?
- Каким образом осуществляется ввод и вывод информации?
- Какие математические операции вы уже знаете?
- Какой алгоритм называется разветвляющимся?
- Приведите примеры.
- Какие типы данных мы с вами изучили?
- Какие операторы изучены?
Оператор выбора
1. Оператор case в Паскале используется в тех случаях, когда в зависимости от значения какой-либо переменной нужно выполнить те или иные действия (простые или составные операторы).
2. Если вариантов всего два, то можно обойтись и условным оператором IF , с которым мы уже знакомы. Но если их, к примеру, десять, то использовать конструкцию if then else в pascal становится совсем нецелесообразно. В этом случае оптимален оператор case варианта.
Оператор выбора
начало
Case of
:;
:;
…
:;
Else
End ;
Ввод S
S
зн1
Группа операторов 1
зн2
Группа операторов 2
…………… ..
знN
Группа операторов N
else
Группа операторов
End.
Оператор выбора
начало
Ввод N
Задача 1.
Составить блок-схему и написать программу, которая по номеру дня недели (1,2,…,7) выведет название этого дня недели (понедельник, вторник,…, воскресенье) иначе вывести сообщение «В неделе только 7 дней!»
N
1
Понедельник
2
Вторник
…………… ..
7
Воскресенье
else
В неделе 7 дней
End.
Оператор выбора
Задача 1.
Var n : integer;
Begin
writeln(‘Введите число – номер дня недели: ’);
readln(n);
Сase n of
1: writeln(‘понедельник’);
2: writeln(‘вторник’);
3: writeln(‘среда’);
4: writeln(‘четверг’);
5: writeln(‘пятница’);
6: writeln(‘суббота’);
7: writeln(‘воскресенье’);
Else writeln(‘В неделе только 7 дней!’)
End;
End.
Оператор выбора
Особенности:
- если нужно выполнить только один оператор, слова begin и 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;
5
Оператор выбора
Особенности:
- значения, при которых выполняются одинаковые действия, можно группировать
- значения, при которых выполняются одинаковые действия, можно группировать
case i of
1: a := b;
2,4,6: a := c;
10..15: a := d;
20,21,25..30: a := e;
else writeln('Ошибка');
end;
перечисление
диапазон
смесь
5
Оператор выбора
Найдите ошибки:
case a of
case a of
2: a := b
2: begin a := b;
4: a := c
4: a := c;
end;
end;
;
case a of
0..2: a := b;
6..3: a := c;
end;
case a of
2..5: a := b;
4: a := c;
end;
3..6:
begin
case a of
2: a := b; d := 0;
4: a := c;
end;
case a+c/2 of
2: a := b;
4: a := c;
end;
end;
5
Оператор выбора
Var
operation:Char;
x,y,z:real;
stop:Boolean;
begin
Writeln('Введите первое число');
readln(x);
Writeln('Введите число');
readln(y);
Writeln('Введите арифметическую операцию +, -, * или /');
readln(operation);
Case operation of
'+': z:=x+y;
'-': z:=x-y;
'*': z:=x*y;
'/': z:=x/y;
Else
Stop:=true;
End;
writeln('Z=',Z:5:2);
end.
Задача 2.
Требуется ввести два числа и затем выбрать арифметическую операцию (+,-,*,/). По выбору операции, программа должна произвести вычисления и вывести результат.
Program Number3;
Var a : integer;
Begin
writeln('Введите цифру '); readln(a);
if (a9) then writeln ('Это число не является цифрой') else
case a of
0 : writeln ('ноль');
1 : writeln ('один');
2 : writeln ('два');
3 : writeln ('три');
4 : writeln ('четыре');
5 : writeln ('пять');
6 : writeln ('шесть');
7 : writeln ('семь');
8 : writeln ('восемь');
9 : writeln ('девять');
end;
readln;
End.
Задача 3.
Приведите введенное пользователем число от 0 до 9 к его словесному представлению.
Вывести символьное описание введенной цифры
Оператор выбора
Program Number2; Var a : integer; Begin writeln('Введите цифру '); readln(a); case a of 0 : writeln ('ноль'); 1 : writeln ('один'); 2 : writeln ('два'); 3 : writeln ('три'); 4 : writeln ('четыре'); 5 : writeln ('пять'); 6 : writeln ('шесть'); 7 : writeln ('семь'); 8 : writeln ('восемь'); 9 : writeln ('девять') else writeln ('Это число не является цифрой'); end; readln; End.
Оператор выбора
Сравните программы:
Оператор if
Оператор case
program chislo; var n : shortint; begin write (‘input number: '); readln(n); if n=0 then write (‘zero') else if n=1 then write (‘one') else if n=2 then write (‘two') else if n=3 then write (‘three') else if n=4 then write (‘four') else if n=5 then write (‘five') else if n=6 then write (‘six') else if n=7 then write (‘seven') else if n=8 then write (‘eight') else if n=9 then write (‘nine') else write ('This is not a number'); end .
program chislo; var n:shortint; Begin write (‘Input number: '); readln(n); case n of 0: write ('zero'); 1: write ('one'); 2: write (‘two'); 3: write (‘three'); 4: write (‘four'); 5: write (‘five'); 6: write (‘six'); 7: write (‘seven'); 8: write (‘eight'); 9: write (‘nine'); else write ('This is not a number'); end ; end .
Оператор выбора
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит так называемый ключ выбора (или селектор) - выражение любого типа (кроме типов REAL и STRING)
Перебор из возможных значений выражения
case выражение of значение1 : оператор (группа операторов); значение2 : оператор (группа операторов); . . . . . . . . . . . . . . . . . . . . значениеN : оператор (группа операторов) else оператор (группа операторов); end ;
Перебор из возможных значений выражения
Оператор выбора
- Если переменная не принимает ни одно из перечисленных значений, то работает ветка «else»;
- В роли переменной может выступать только переменная порядкового типа (можно указывать диапазон);
- Если в операторе должно быть несколько действий, то их заключают в операторные скобки;
Оператор выбора
Самостоятельна работа
Задача 1.
По введенному номеру месяца выведите на экран квартал к которому он относится. (Первый квартал – январь, февраль, март, второй квартал – апрель, май, июнь, третий квартал – июль, август, сентябрь, четвертый квартал – октябрь, ноябрь, декабрь)
Задача 2.
Определить ваши действия в зависимости от дня недели. Например, суббота - еду в баню, воскресенье - еду в гости и т. д. Программа запрашивает ввод дня недели и выводит на экран ваши действия в зависимости от составленного расписания.
Задача 3.
Определить вид функции в зависимости от значения аргумента: y=7 при х5. Программа запрашивает ввод значения "х" и выводит на экран вид функции "у".
Задача 4.
Составьте программу, имитирующую своеобразный калькулятор, где
1 – сумма двух чисел,
2 – разность двух чисел,
3 – произведение двух чисел,
4 – целая часть от деления,
5 – остаток от деления,
6 – квадратный корень числа,
иначе введен неизвестный номер операции.
Оператор выбора
Задача 5.
Вводится число от 1 до 10. Вывести данное число, записанное римскими цифрами (I, II, III, IV, V, VI, …., X).
https://kopilkaurokov.ru/informatika/presentacii/opierator-mnozhiestviennogho-vybora-case
https://en.ppt-online.org/167286
https://infourok.ru/operator-mnozhestvennogo-vibora-case-669907.html