Первомайський ЦНТТУМ
Гурток «Сучасні технології програмування»
Керівник гуртка Семенова Олена Анатоліївна
Розробка заняття на тему:
Оператори циклу. Оператор циклу do while.
Тема: Оператори циклу, оператор циклу do while.
Мета: засвоїти поняття циклу в програмуванні, ознайомитись із оператором циклу do while, його структурою та застосуванням, відмінність від оператора while, закріплення умінь та навичок, виховання прагнення до вдосконалення, розвиток уваги, спостережливості, логічного мислення, творчих здібностей.
Обладнання: ПК, ПЗ — середовище програмування CodeBlocks, або онлайн компілятор С++.
Тип заняття: вивчення нового матеріалу.
Хід заняття
1. Вступ та розминка.
Для початку розімнемось. Називайте слова, що містять букви ф, і, в, а, п, р, о, л, д, ж, у, к, е, н, с, г, ш, т, м. Кількість букв у словах – не менше 4.
*** При дистанційній формі заняття заходимо на онлайн дошку ( як jamboard)і далі 2 варіанта складання і запису слів:
1. Учасники по черзі записують свій варіант слова (онлайн ручкою або в текстовому вікні набором).
2. Учасники по черзі називають свій варіант слова — запис робить керівник.
1. Кефір 7. Шашка
2. Кунжут 8. Тісто
3. Дорога 9. Дріжджі
4. Діжка 10. Мікрон
5. Кішка 11. Кріп
6. Ліжко 12. Лінь
Впевнена, більшості з нас останнє слово найприємніше, ви називаєте його вже не один раз. :)
Записуємо слова у рядок в блокноті, дивлячись тільки на дошку. Потім набираємо ще два рядки, дивлячись тільки у монітор. Загалом, все, як зазвичай. Перевіряємо, оцінюємо свій прогрес у сліпому наборі і переходимо в CodeBlocks.
*** При дистанційній формі заняття на дошці ресурсу Jamboard можна кожному учаснику обрати колір текстового вікна і провести набір «у прямому ефірі». (цей варіант, на жаль, має сенс лише при невеликій кількості учасників).
2. Основна частина. Розгляд нової теми.
*** При дистанційній формі заняття використовуємо подання у вигляді презентації або вмикаємо демонстрацію екрана і працюємо разом в «прямому ефірі».
Давайте продовжимо знайомитись із операторами циклу в С++. Як ви пам’ятаєте з минулого заняття (а ви ж пам’ятаєте? ;) ), операторів циклу в мові С++ три… Перший - while, ми розглянули і зрозуміли, чому він називається “оператором з передумовою”... Другий оператор do while, з яким ми маємо познайомитись та потоваришувати сьогодні, називається навпаки, оператором з післяумовою. За логікою назви спробуйте пояснити, як він працює….
Сподіваюсь, що ви це зробили правильно та зрозуміли, що даний оператор застосовується і зручний тоді, коли цикл має спрацювати принаймні один раз - до перевірки істинності умови.
В нашому випадку із калькулятором це буде виглядати так:
{ int a, b;
char s;
do
{ cout<<”Введіть перше число”<<endl;
cin >>a;
cout<<”Введіть друге число”<<endl;
cin >>b;
cout<<”Оберіть дію: натисніть “+” для додавання, “-” для віднімання, “*” для множення, “/” для ділення”<<endl;
cin >>s;
switch (s)
{
case ‘+’:
cout<<a<<”+”<<b<<”=”<<a+b<<endl;
break;
case ‘-’:
cout<<a<<”-”<<b<<”=”<<a-b<<endl;
break;
case ‘*’:
cout<<a<<”*”<<b<<”=”<<a*b<<endl;
break;
case ‘/’:
cout<<a<<”:”<<b<<”=”<<a/b<<endl;
break;
}
cout<<”Бажаєте продовжити обчислення? Натисніть “1”. Бажаєте завершити роботу? Натисніть “0””<<endl;
cin >>s;
while (s==’1’) // Перевіряємо умову для продовження роботи циклу
}
return 0;
Бачите різницю? В програмі із оператором do while спочатку виконуються дії, а потім перевіряється умова. Начебто все так само, як і в випадку з оператором while: поки користувач буде згодний продовжувати і для цього натискати одиницю, цикл буде повторюватись, але різниця все ж таки є.
Іноді при роботі програми зручніше спочатку виконати дії, а потім перевіряти умову. В будь-якому випадку, обидва оператори є операторами циклу, працюють схожим чином і доцільність або зручність їх використання залежить від точки зору програміста.
Давайте зараз спробуємо використати вже знайомі нам оператори циклу, щоб розв’язати нескладну чисто математичну задачу: знайти суму чисел від 1 до 100 (уточнення: включно).
Із застосуванням оператору з передумовою це виглядає приблизно так:
int n=1, s=0;
while (n<101)
{
s=s+n;
n=n+1;
}
cout<<s;
Якщо ми використовуємо оператор з післяумовою, то програма зміниться отак:
int n=1, s=0;
do
{
s=s+n;
n=n+1;
while (n<101)
}
cout<<s;
Тепер зверніть увагу на змінну n в циклі. Вона є одночасно і змінною, з якою виконуються математичні дії, і “умовою”, тобто, “лічильником” циклу і кожний крок циклу цей лічильник збільшується на одиницю. До речі, кожен крок циклу, тобто повторення всіх дій, ще називають “ітерація”: запам’ятайте, щоб це не було для вас “абракадаброю”, коли зустрінете такий термін у програмуванні.
Чому я звернула вашу увагу на змінну n в циклі? Тому що хочу вас ознайомити із практично невід’ємними від циклу в програмуванні поняттями інкремент та декремент.
Звичайно, походження обох слів англійське/латинське: increment - збільшення, decrement, відповідно…- зменшення.
Обидві ці операції називають унарними. Чому? Що означає “унарна”? Що операція виконується над однією змінною. Наприклад, зміна знака на протилежний: х... -х.
В нашому випадку в задачі на суму чисел від 1 до 100 застосування інкременту виглядає ось так:
int n=1, s=0;
while (n<101)
{
s=s+n;
n++;
}
cout<<s;
Відповідно, декремент (зменшення) позначають таким чином: n--;
Спробуйте розв’язати тепер нашу математичну задачу за допомогою використання в циклі декремента.
Бажаю успіхів і приємного коду! :)