Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка_модуль 2.doc
Скачиваний:
5
Добавлен:
01.12.2018
Размер:
5.84 Mб
Скачать

Використання циклу з передумовою для розв’язування задач

Мета: Навчитися застосовувати оператор повторення WHILE…DO… для розв’язування задач з повтореннями деяких наборів операцій.

Засвоїти поняття:

  • цикл програми;

  • оператор повторення;

  • оператор повторення while;

  • нескінченний цикл;

  • функція випадкових чисел.

Вміти:

  • описувати циклічні процеси за допомогою оператора повторення while;

  • будувати таблицю покрокового виконання циклу:

  • використовувати властивості оператора повторення while;

  • одержувати випадкові числа з потрібного діапазону.

Обладнання: комп’ютери з встановленою операційною системою Microsoft Windows XP, мова програмування Turbo Pascal 7.0.

Теоретичні відомості

Оператор повторення while використовують для програмування циклічних процесів. Він призначений для організації повторення одного довільного оператора.

Загальну схему оператора повторення while можна подати одним із двох способів:

Оператори, виконання яких повторюється, утворюють тіло циклу. В разі повторення виконання групи операторів, використовується оператор об’єднання begin … end.

Схема виконання оператора while

  1. Обчислюється Логічний Вираз;

  2. якщо результат FALSE, то виконання оператора while припиняється;

  3. якщо результат TRUE, то виконується Оператор (або група операторів) і здійснюється перехід до п.1.

Проаналізуємо дію оператора while на прикладі:

вивести в рядок N натуральних чисел a1, a2, …, aN,

де ai (1 ≤ i N) є сумою i перших натуральних чисел.

Розглянемо, як буде виконуватися програма при N = 3. Ліворуч тексту програми проставлено нумерацію рядків.

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

Рядок 1: змінній N надається значення, введене з клавіатури (число 3).

Рядок 2: початкове значення суми – 0, лічильник кількості доданків – 0.

З третього рядка по сьомий розміщено оператор while.

Рядок 3: обчислюється логічний вираз i<N. За схемою виконання це п.1. Підставимо значення змінних (i=0, N=3) і отримаємо 0<3 – результат TRUE. Отже п.2 пропускається й виконується п.3 – виконується Оператор, який є оператором об’єднання, тому що потрібно повторювати послідовне виконання трьох операторів: i:=i+1; S:=S+i; Write(S, ' ').

Рядок 4: значення змінної i збільшується на одиницю – перший доданок (i=1).

Рядок 5: значення суми збільшується на значення змінної i (S = 1) – перший член шуканого набору чисел a1=1.

Рядок 6: виводиться на екран a1.

Управління передається в рядок 3 (п.1): логічний вираз i<N (1<3) має значення TRUE. Отже (п.3) виконуються оператори: i:=i+1 (i=2); S:=S+i (S=3); Write(S, ‘ ‘); (на кран виводиться a2=3).

Управління передається на рядок 3 (п.1): логічний вираз i<N (2<3) має значення TRUE. Отже (п.3) виконуються оператори: i:=i+1 (i=3); S:=S+i (S=6); Write(S, ' '); (на екран виводиться a3=6).

Управління передається на рядок 3 (п.1): логічний вираз i<N (3<3) має значення FALSE. Отже (п.2) виконання оператора повторення припиняється й управління передається оператору, що слідує за оператором while, тобто на рядок 8, що є ознакою закінчення виконання програми.

Кроки виконання оператора while зручно оформити у вигляді таблиці:

Якщо N=0, то не виконається повторення операторів i:=i+1; S:=S+i ;Write(S, ' '); жодного разу. Якщо значення логічного виразу постійно не відповідає умові завершення роботи оператора повторення або на значення логічного виразу не впливає жоден оператор тіла циклу, то завершення виконання оператора повторення не відбудеться. В таких випадках кажуть, що має місце “зациклювання” або нескінченний цикл.