Первомайський ЦНТТУМ
Гурток «Сучасні технології програмування»
Керівник гуртка Семенова Олена Анатоліївна
Розробка заняття на тему:
Оператор множинного вибору switch.
Тема: «Оператор множинного вибору switch. Алгоритм. Синтаксис. Практичне застосування»
Мета: ознайомитись з оператором множинного вибору, особливостями його застосування, виховувати вміння побудови аналогій, розвивати увагу, грамотність та логічне мислення.
Обладнання: ПК, ПЗ — текстовий редактор, середовище програмування CodeBlocks, або онлайн компілятор С++.
Хід заняття
1. Організаційний момент та розминка.
Продовжуємо оволодіння технікою сліпого десятипальцевого набору на клавіатурі.
Сьогодні робимо наступний крок: додаємо ще по парі букв для роботи вказівних працьовитих пальчиків :): И, М для лівого та Т, Ь для правого.
Пропоную сьогодні зробити «тематичну» розминку: називаємо 12 слів із нашими буквами, які відносяться до програмування. :)
Отже, маємо букви: А, В, І, Ф, К, Е, П, И, М, Т, Ь, Р, Г, Н. О, Л, Д, Ж.
*** При дистанційній формі заняття заходимо на дошку на ресурсі Jamboard і далі 2 варіанта складання і запису слів:
1. Учасники по черзі записують свій варіант слова (онлайн ручкою або в текстовому вікні набором).
2. Учасники по черзі називають свій варіант слова — запис робить керівник.
1. Код 7. Помилка
2. Кава 8. Кіт
3. Програма 9. Крапка
4. Програміст 10. Тире
5. Оператор 11. Кома
6. Вікно 12. Орел :)
Тепер у текстовому редакторі (блокнот, word...) записуємо, як звичайно, 3 рядка цих слів.
*** При дистанційній формі заняття на дошці ресурсу Jamboard можна кожному учаснику обрати колір текстового вікна і провести набір «у прямому ефірі». (цей варіант, на жаль, має сенс лише при невеликій кількості учасників).
2. Основна частина. Розгляд нової теми.
*** При дистанційній формі заняття використовуємо подання у вигляді презентації або вмикаємо демонстрацію екрана і працюємо разом в «прямому ефірі».
Ми з вами вже ознайомились із конструкцією розгалудження if-else . Вона дозволяє відпрацьовувати якусь певну умову, що виникла. Наприклад, ви її використовували, коли описували вибір «або-або»в вашій програмі «Орел та Решка».
Якщо вибір одиночний, то ця конструкція зручна. Але якщо вам потрібно відпрацювати одразу кілька умов?
Наприклад, якщо ви пишете гру, вам потрібно перевірити, на яку кнопку натиснув ігрок: вправо-вліво-вгору-вниз-пробіл.. або інші… В такому випадку вам доведеться писати декілька довгих умов if-else, перевіряючи кожен варіант. Це не дуже зручно і іноді утруднює написання та читання програми. Щоб уникнути цих складнощів, в випадках отакого множинного вибору користуються спеціальною конструкцією.. що має аналогічну назву: оператор множинного вибору switch :).
Запам“ятати неважко. Ми вже з вами неодноразово бачили, що в мовах програмування немає незрозумілих або зайвих слів. Пригадуємо (або швиденько питаємо в гугл-перекладача :) ), що означає в перекладі з англійської слово «switch»? «Ввімкнути» або «перемикнути». Так і є. Ми використовуємо конструкцію switch-case («case» - «коробка», або ще одне значення «процес»)
Ця конструкція дозволяє «перемикатись» між діями в залежності від певної умови.
Давайте розглянемо на прикладі вибору кнопки у грі…
Алгоритм виглядає приблизно так:
Рухаємось вліво Рухаємось вгору Рухаємось вниз Рухаємось вправо
В програмі це буде схематично виглядати так:
char A; // «Ігрок натиснув кнопку»
char L, U, D, R; // Вліво, вгору, вниз, вправо :)
switch ( A )//В дужках змінна, значення якої перевіряється
{
case `L`: //Якщо ігрок натиснув «Кнопка «Вліво»
cout <<«Рухаємось вліво»<<endl; //Виконується «Рухаємось вліво», якщо А = L
break; //використовується, щоб завершити процес виконання дії
case `U`: // «Кнопка «Вгору»
cout <<«Рухаємось вгору»<<endl; //Виконується «Рухаємось вгору», якщо А = U
break;
...
default:
cout <<«Чекаємо»<<endl;//Виконується, якщо жоден варіант не підійшов, тобто ігрок натиснув якусь іншу кнопку, відмінну від вказаних
break;}
Зробіть завершення програми для варіантів, що залишились.
Отже, давайте зробимо підсумок, як виглядає схематично наш оператор множинного вибору..
На прикладі дзвінка оператору мобільних телефонів.. Пам“ятаєте.. там пропонують: «Натисніть 1.. якщо… натисніть 2.. якщо.. і т.д.
Отже, наша умова — це цілочисельна змінна n… а кейсів в нас буде… ну, скажімо, як цифр від 1 до 9.
int n;
switch(n)// перемикач працює по значенням змінної n!
{
case 1://Пишемо не в лапках, як в попередньому прикладі, оскільки в `лапки` береться тільки значення змінної типу char — символи.
...дії
break; //Не забувайте використовувати оператор break наприкінці кожного кейсу. Його відсутність – одна з найпоширеніших помилок новачків!
case 2://Значення «номера кейса» використовується для одного оператора один раз — тобто, не можна використовувати два різних за діями кейса із однаковим номером.
...дії
break;
case 3:
...дії
break;
……
case 9:
...дії
break;
default://Кейс використовується один раз для одного оператора, якщо в інших кейсах немає значення n для switch, але він необов“язковий...
break;
}
А в якості практики та тренування пропоную написати програму для калькулятора, використовуючи конструкцію множинного вибору switch-case.
Приємного часу із С++! :)