Тема уроку. Вказівка повторення та її опис мовою програмування. Мета уроку: дати поняття про вказівку повторення та її використання при розв'язуванні задач, про типи циклів та їх оформлення мовою програ¬мування Паскаль і мовою блок-схем. Тип уроку: вивчення нового матеріалу. І. Організаційний момент Вправа на активізацію учасників „Емоція по колу” ІІ. Мотивація вивчення нового матеріалу Циклічність – загальна властивість розвитку та існування будь-якої біологічної системи. Циклічність в природі, в розмноженні, в життєдіяльності клітини підтримує необхідний баланс для їх існування. Якщо подивитись глобально на винаходи людства, то помітно, що практично всі вони моделюють природні об’єкти. Не виключення і цикл як одна з базових логічних конструкцій. ІІІ. Вивчення нового матеріалу Формую проблемну ситуацію. Складіть програму для виведення на екран всіх цілих чисел від 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”.
|