| Тема уроку. Вказівка повторення та її опис мовою програмування. Мета уроку: дати поняття про вказівку повторення та її використання при розв'язуванні задач, про типи циклів та їх оформлення мовою програ¬мування Паскаль і мовою блок-схем.
 Тип уроку: вивчення нового матеріалу.
  І. Організаційний момент Вправа на активізацію учасників „Емоція по колу”
 ІІ. Мотивація вивчення нового матеріалу
 Циклічність – загальна властивість розвитку та існування будь-якої біологічної системи. Циклічність в природі, в розмноженні, в життєдіяльності клітини підтримує необхідний баланс для їх існування. Якщо подивитись глобально на винаходи людства, то помітно, що практично всі вони моделюють природні об’єкти. Не виключення і цикл як одна з базових логічних конструкцій.
 ІІІ. Вивчення нового матеріалу
 Формую проблемну ситуацію.
 Складіть програму для виведення на екран всіх цілих чисел від 1 до 5; від 1 до 10; від 1 до 1000.
 (Очікується використання великої кількості вказівок виведення.)
 А чи можна знайти більш раціональний спосіб виконання цього завдання? Яку закономірність слід реалізувати?
 Відповідь на це запитання допоможе знайти сьогоднішній урок.
 Повідомляю тему та мету уроку…
 3.1 Інформаційне занурення (пояснення і демонстрацією за допомогою мультимедійної дошки)
 Цикл — це послідовність операторів, що може виконуватися більше одного разу.
 Цикли використовуються при розв'язуванні таких задач, де необхідно повторити деяку по¬слідовність команд більше одного разу.
 Відомо два типи команди повторення, що сут¬тєво різняться:
 — цикл із відомою заздалегідь кількістю по¬вторів;
 — цикл із невідомою кількістю повторів.
 Щоб це пояснити, розглянемо приклад. Вчи¬телька в першому класі дає дітям завдання: «Діти, напишіть, будь ласка, десять літер «А» та рядочок літер «Б». Чим відрізняються ці два зав¬дання? В першому випадку зразу ж відомо, скільки разів необхідно повторювати виконан¬ня команди «напишіть літеру А», а в другому — кількість літер «Б» буде залежати від різних факторів: почерку дитини, розміру літер, відстані між літерами тощо. Ясно, що в першо¬му випадку ми можемо чітко обумовити кількість повторів, а в другому — необхідно знайти таку умову, перевіряючи яку, дитина зможе закінчити свою роботу.
 Примітка: Даю дітям можливість знайти цю умову та придумати свої подібні варіанти циклів.
 У мові програмування Паскаль існує три типи циклів: for, repeat та while. Якщо кількість повто¬рень відома заздалегідь, використовується оператор for, якщо кількість повторень невідома, застосовуються оператори repeat або while.
 Оператор повторення for.
 Цей оператор повторення інакше називається циклом з параметром (або лічильником). Він скла¬дається із заголовку та тіла циклу і може бути по¬даний у двох форматах:
 1. for <параметр циклу> :=  to  do
 begin <серія>; end;
 2. for <параметр циклу> :=  downto  do
 begin <серія>; end;
 де S1 і S2 — вирази, що визначають початкове і кінцеве значення параметру циклу;
 for.. do — заголовок циклу; <серія> — тіло циклу. Тіло циклу може бути простим або складеним.
 Цей оператор забезпечує виконання тіла цик¬лу доти, доки не будуть перебрані всі значення параметра циклу від початкового до кінцевого.
 Параметр циклу, його початкове і кінцеве зна¬чення повинні належати до одного типу даних. При цьому можливе використання будь-якого скаляр¬ного типу: цілого (integer, byte, word, longint); булівського (boolean); символьного (char). Дійсний тип даних тут не використовується. Значення параметру циклу послідовно збільшується при for... to або зменшується при for... downto на одиницю при кож¬ному повторі.
 Кількість повторів тіла циклу в операторі for можна визначити за таблицею:
 Таблиця
 Оператор S1S2
 for...to S2-S1+1 разів 1 раз Не виконується
 for...downto Не виконується 1 раз Sl-S2+1 разів
  В операторі for після do може знаходитися скла¬дений оператор, у тілі якого заборонені оператори, що змінюють значення параметру циклу. Після нор¬мального завершення циклу значення параметру циклу дорівнює кінцевому значенню. Цикл може не виконатися зовсім (див. табл.), але ніколи не може «зациклитися», на відміну від наступних двох операторів повторення.
 Приклад програми з оператором For
 Умова задачі. Вивести на екран своє прізвище 300 разів.
 (Учні дають відповідь на проблемне запитання)
 Оператор повторення repeat
 Наступний оператор циклу складається із за¬головку (repeat), тіла та умови закінчення (until). Формат опису:
 repeat
 <серія> until < умова >;
 Умова — вираз булівського типу. Про умови ми з вами вже говорили в темі «Команда розгалу¬ження», і всі особливості їх застосування та оформ¬лення в цій команді нічим не відрізняються від попереднього випадку.
 В цьому циклі спочатку виконується серія (тіло циклу), а потім перевіряється умова виходу з цик¬лу. Саме тому ця команда повторення інакше на¬зивається циклом із післяумовою. Якщо умова ви¬ходу з циклу хибна tfake), цикл активізується ще раз, якщо результат істинний (true), відбувається вихід із циклу.
 Мовою блок-схем цей цикл описується таким чином:
 
 Такий оператор повторення має наступні характерні риси:
 • використовується у випадках, коли користувачу не відома заздалегідь кількість повторень;
 • тіло циклу виконується хоча б один раз;
 • тіло циклу виконується, поки умова хибна False;
 • у тілі може знаходитися будь-яка кількість операторів без операторних дужок (begin... end);
 • принаймні один оператор у тілі циклу пови¬нен змінювати значення умови, інакше цикл буде виконуватися нескінченно.
 Для передчасного виходу з циклу можна при¬своїти параметру циклу значення, що виходить за діапазон дозволених значень.
 Приклад програми з оператором Repeat
 Умова задачі. Перевірка коректності введення. Дано три числа, що задають величини кутів три¬кутника. Визначити, чи можна побудувати трикутник, що має задані кути. Якщо ні, користувач по¬винен ввести інші дані.
 Розв'язання:
 Program Example_2;
 Uses crt;
 Var a,b,c: real;
 Begin
 Clrscr;
 Repeat
 Write('Введіть довжини сторін трикут¬ника: ');
 Readln(a,b,c);
 Until
 (a>0)and(b>0)and(c>0)and(а+b+с)=180;
 End.
 Оператор повторення while
 Оператор while аналогічний оператору repeat, але перевірка умови виконання тіла циклу виконуєть¬ся на самому початку оператора, тому цикл інак¬ше називається циклом із передумовою.
 Формат опису:
 while < умова > do begin <серія>; end;
 Умова — булівський вираз, а серія — простий або складений оператор. Перед кожним виконан¬ням тіла циклу обчислюється значення виразу умо¬ви. Якщо результат є істинним (true), тіло циклу виконується, а інакше відбувається вихід із циклу і перехід до першого після while оператору. Якщо перед першим виконанням циклу значення вира¬зу було хибним false, то тіло циклу взагалі не виконується і відбувається перехід на наступний оператор.
 Мовою блок-схем цей цикл описується таким чином:
 Як і в попередньому випадку, програміст сам повинен подбати про переприсвоєння значення змінної, що визначає умову виходу з циклу, інак¬ше він буде нескінченним.
 Приклад програми з оператором While
 Умова задачі. Дано натуральне число N. Визна¬чити кількість цифр у числі.
 Розв'язок:
 Program Example_3;
 Uses crt;
 Var N: longxnt; Counter: integer;
 Begin
 Clrscr;
 Write('Введіть число: ');
 Readln(N);
 Counter:= 0;
 While N > 0 do Begin
 Counter:=Counter+l; {Підрахунок кількості цифр}
 N:=N div 10; {Відкидання останньої цифри}
 End;
 Writeln(' Кількість цифр у заданому числі дорівнює ', N);
 Readkey;
 End.
 IV. Практичний тренінг
 – учні формулюють основні відмінності між циклами
 Задача. Знайти суму всіх натуральних чисел від 1 до 100.
 Розв'язання:
 Program Example_l;
 Uses crt;
 Var Sum, і: integer;
 Begin
 Clrscr; Sum:= 0;
 For i:= 1 to 10 do Sum:= Sum + і;
 Writeln('Sum= V, Sum); Readkey;
 End.
 Резервна задача: знайти добуток всіх натуральних чисел з проміжку [a;b], які є точними квадратами цілих чисел.
 V. Підсумки уроку.
 Як, на вашу думку, можна використати циклічні конструкції при створенні програми-тесту? (підводжу до підсумку про застосування циклу для повторення тесту спочатку, або для встановлення пароля)
 V. Домашнє завдання:
 • опрацювати конспект
 • складіть програму, яка запитуватиме, скільки Вам років, доки ви не введете „100”.
 |