Лекция: Схема виконання оператора 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 зручно оформити у вигляді таблиці:

i<N Коментар і S Результат
початкові значення до виконання циклу, N=3
0<3 TRUE i:=i+1; S:=S+i ;Write(S, ' ');
1<3 TRUE 1 3
2<3 TRUE 1 3 6
3<3 FALSE виконання оператора while зупинено      

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

еще рефераты
Еще работы по информатике