![Автор: Александрова З.В., учитель физики и информатики МБОУ СОШ №5 пгт Печенга, Мурманская область Алгоритмы ветвления. Оператор множественного выбора CASE 9 класс](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_0.jpg)
Автор: Александрова З.В., учитель физики и информатики
МБОУ СОШ №5 пгт Печенга, Мурманская область
Алгоритмы ветвления. Оператор множественного выбора CASE
9 класс
![Повторение](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_1.jpg)
Повторение
- Что такое алгоритм? Какие типы алгоритмов вы знаете? Что такое линейное программирование? Как записывается оператор присваивания? Каким образом осуществляется ввод и вывод информации? Какие математические операции вы уже знаете? Какой алгоритм называется разветвляющимся? Приведите примеры. Какие типы данных мы с вами изучили? Какие операторы изучены?
- Что такое алгоритм?
- Какие типы алгоритмов вы знаете?
- Что такое линейное программирование?
- Как записывается оператор присваивания?
- Каким образом осуществляется ввод и вывод информации?
- Какие математические операции вы уже знаете?
- Какой алгоритм называется разветвляющимся?
- Приведите примеры.
- Какие типы данных мы с вами изучили?
- Какие операторы изучены?
![Оператор выбора 1. Оператор case в Паскале используется в тех случаях, когда в зависимости от значения какой-либо переменной нужно выполнить те или иные действия (простые или составные операторы). 2. Если вариантов всего два, то можно обойтись и условным оператором IF , с которым мы уже знакомы. Но если их, к примеру, десять, то использовать конструкцию if then else в pascal становится совсем нецелесообразно. В этом случае оптимален оператор case варианта.](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_2.jpg)
Оператор выбора
1. Оператор case в Паскале используется в тех случаях, когда в зависимости от значения какой-либо переменной нужно выполнить те или иные действия (простые или составные операторы).
2. Если вариантов всего два, то можно обойтись и условным оператором IF , с которым мы уже знакомы. Но если их, к примеру, десять, то использовать конструкцию if then else в pascal становится совсем нецелесообразно. В этом случае оптимален оператор case варианта.
![Оператор выбора начало Case of :; :; … :; Else End ; Ввод S S зн1 Группа операторов 1 зн2 Группа операторов 2 …………… .. знN Группа операторов N else Группа операторов End.](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_3.jpg)
Оператор выбора
начало
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.](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_4.jpg)
Оператор выбора
начало
Ввод 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.](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_5.jpg)
Оператор выбора
Задача 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](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_6.jpg)
Оператор выбора
Особенности:
- если нужно выполнить только один оператор, слова 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](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_7.jpg)
Оператор выбора
Особенности:
- значения, при которых выполняются одинаковые действия, можно группировать
- значения, при которых выполняются одинаковые действия, можно группировать
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](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_8.jpg)
Оператор выбора
Найдите ошибки:
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. Требуется ввести два числа и затем выбрать арифметическую операцию (+,-,*,/). По выбору операции, программа должна произвести вычисления и вывести результат.](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_9.jpg)
Оператор выбора
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 к его словесному представлению. Вывести символьное описание введенной цифры](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_10.jpg)
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.](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_11.jpg)
Оператор выбора
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 .](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_12.jpg)
Оператор выбора
Сравните программы:
Оператор 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 ; Перебор из возможных значений выражения](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_13.jpg)
Оператор выбора
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит так называемый ключ выбора (или селектор) - выражение любого типа (кроме типов REAL и STRING)
Перебор из возможных значений выражения
case выражение of значение1 : оператор (группа операторов); значение2 : оператор (группа операторов); . . . . . . . . . . . . . . . . . . . . значениеN : оператор (группа операторов) else оператор (группа операторов); end ;
Перебор из возможных значений выражения
![Оператор выбора](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_14.jpg)
Оператор выбора
- Если переменная не принимает ни одно из перечисленных значений, то работает ветка «else»;
- В роли переменной может выступать только переменная порядкового типа (можно указывать диапазон);
- Если в операторе должно быть несколько действий, то их заключают в операторные скобки;
![Оператор выбора Самостоятельна работа Задача 1. По введенному номеру месяца выведите на экран квартал к которому он относится. (Первый квартал – январь, февраль, март, второй квартал – апрель, май, июнь, третий квартал – июль, август, сентябрь, четвертый квартал – октябрь, ноябрь, декабрь) Задача 2. Определить ваши действия в зависимости от дня недели. Например, суббота - еду в баню, воскресенье - еду в гости и т. д. Программа запрашивает ввод дня недели и выводит на экран ваши действия в зависимости от составленного расписания. Задача 3. Определить вид функции в зависимости от значения аргумента: y=7 при х5. Программа запрашивает ввод значения](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_15.jpg)
Оператор выбора
Самостоятельна работа
Задача 1.
По введенному номеру месяца выведите на экран квартал к которому он относится. (Первый квартал – январь, февраль, март, второй квартал – апрель, май, июнь, третий квартал – июль, август, сентябрь, четвертый квартал – октябрь, ноябрь, декабрь)
Задача 2.
Определить ваши действия в зависимости от дня недели. Например, суббота - еду в баню, воскресенье - еду в гости и т. д. Программа запрашивает ввод дня недели и выводит на экран ваши действия в зависимости от составленного расписания.
Задача 3.
Определить вид функции в зависимости от значения аргумента: y=7 при х5. Программа запрашивает ввод значения "х" и выводит на экран вид функции "у".
Задача 4.
Составьте программу, имитирующую своеобразный калькулятор, где
1 – сумма двух чисел,
2 – разность двух чисел,
3 – произведение двух чисел,
4 – целая часть от деления,
5 – остаток от деления,
6 – квадратный корень числа,
иначе введен неизвестный номер операции.
![Оператор выбора Задача 5. Вводится число от 1 до 10. Вывести данное число, записанное римскими цифрами (I, II, III, IV, V, VI, …., X).](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_16.jpg)
Оператор выбора
Задача 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](http://fsd.compedu.ru/html/2019/03/20/i_5c91b0998c34e/img_phpHgv2Mm_Operator-vybora-Case-Aleksandrova-Z.V_17.jpg)
https://kopilkaurokov.ru/informatika/presentacii/opierator-mnozhiestviennogho-vybora-case
https://en.ppt-online.org/167286
https://infourok.ru/operator-mnozhestvennogo-vibora-case-669907.html