Вказівка повторення та її опис мовою програмування.

Матеріал з Фізмат Вікіпедії
Перейти до: навігація, пошук


Тема уроку. Вказівка повторення та її опис мовою програмування.

Мета уроку: дати поняття про вказівку повторення та її використання при розв'язуванні задач, про типи циклів та їх оформлення мовою програмування Паскаль і мовою блок-схем, розвивати інформаційну культуру, виховувати любов до інформатики.

Тип уроку: вивчення нового матеріалу.

Обладнання: комп’ютерний клас, презентація, плакати.

Хід уроку

І. Організаційний момент

ІІ. Мотивація вивчення нового матеріалу

ІІІ. Вивчення нового матеріалу

IV.Повідомлення теми та мети уроку…

V. Підсумки уроку.

І. Організаційний момент

Вправа на активізацію учасників „Емоція по колу”

ІІ. Мотивація вивчення нового матеріалу

Циклічність – загальна властивість розвитку та існування будь-якої біологічної системи. Циклічність в природі, в розмноженні, в життєдіяльності клітини підтримує необхідний баланс для їх існування. Якщо подивитись глобально на винаходи людства, то помітно, що практично всі вони моделюють природні об’єкти. Не виключення і цикл як одна з базових логічних конструкцій.

ІІІ. Вивчення нового матеріалу

Формую проблемну ситуацію. Складіть програму для виведення на екран всіх цілих чисел від 1 до 5; від 1 до 10; від 1 до 1000. (Очікується використання великої кількості вказівок виведення.)

А чи можна знайти більш раціональний спосіб виконання цього завдання? Яку закономірність слід реалізувати?

Відповідь на це запитання допоможе знайти сьогоднішній урок.

Повідомляю тему та мету уроку…

3.1 Інформаційне занурення (пояснення і демонстрацією за допомогою мультимедійної дошки)

Цикл — це послідовність операторів, що може виконуватися більше одного разу.

Цикли використовуються при розв'язуванні таких задач, де необхідно повторити деяку послідовність команд більше одного разу.

Відомо два типи команди повторення, що суттєво різняться:

— цикл із відомою заздалегідь кількістю повторів;

— цикл із невідомою кількістю повторів.

Щоб це пояснити, розглянемо приклад. Вчителька в першому класі дає дітям завдання: «Діти, напишіть, будь ласка, десять літер «А»

та рядочок літер «Б». Чим відрізняються ці два зав¬дання? В першому випадку зразу ж відомо, скільки разів необхідно повторювати

виконання команди «напишіть літеру А», а в другому — кількість літер «Б» буде залежати від різних факторів: почерку дитини,

розміру літер, відстані між літерами тощо. Ясно, що в першому випадку ми можемо чітко обумовити кількість повторів, а в другому —

необхідно знайти таку умову, перевіряючи яку, дитина зможе закінчити свою роботу.

Примітка: Даю дітям можливість знайти цю умову та придумати свої подібні варіанти циклів.

У мові програмування Паскаль існує три типи циклів: for, repeat та while. Якщо кількість повторень відома заздалегідь,

використовується оператор for, якщо кількість повторень невідома, застосовуються оператори repeat або while.

Оператор повторення for.

Цей оператор повторення інакше називається циклом з параметром (або лічильником). Він складається із заголовку та тіла циклу і

може бути поданий у двох форматах:

1. for <параметр циклу> := <S1> to <S2> do

begin <серія>; end;

2. for <параметр циклу> := <S1> downto <S2> do

begin <серія>; end;

де S1 і S2 — вирази, що визначають початкове і кінцеве значення параметру циклу;

for.. do — заголовок циклу; <серія> — тіло циклу. Тіло циклу може бути простим або складеним.

Цей оператор забезпечує виконання тіла циклу доти, доки не будуть перебрані всі значення параметра циклу від початкового до кінцевого.

Параметр циклу, його початкове і кінцеве значення повинні належати до одного типу даних. При цьому можливе використання будь-

якого скалярного типу: цілого (integer, byte, word, longint); булівського (boolean); символьного (char). Дійсний тип даних тут не

використовується. Значення параметру циклу послідовно збільшується при for... to або зменшується при for... downto на одиницю при

кожному повторі.

Кількість повторів тіла циклу в операторі for можна визначити за таблицею:

Таблиця

Оператор S1<S2 S1=S2 S1>S2

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.Підсумки уроку.

Як, на вашу думку, можна використати циклічні конструкції при створенні програми-тесту? (підводжу до підсумку про застосування

циклу для повторення тесту спочатку, або для встановлення пароля)

VI.Домашнє завдання:

• опрацювати конспект

• складіть програму, яка запитуватиме, скільки Вам років, доки ви не введете „100”.