ТОП 10:

Команда циклу з передумовою (while)



В більшості задач цикли доводиться виконувати невідому кількість разів. Ця ситуація виникає, якщо обчислення значення функції закінчується у випадках, коли досягнуто заданої точності, або коли виконання оператора залежить від інформації, що вводиться користувачем, або коли у масиві необхідно знайти елемент з конкретним значенням тощо. У цих випадках певну послідовність дій необхідно виконувати декілька разів, причому необхідне число повторень під час розробки програми невідоме і може бути визначеним тільки під час роботи програми, тобто в процесі обчислення задач.

Оператор циклу з передумовою -while (поки)призначений для організації багатократного виконання групи вказівок (тіло циклу) до тих пір, доки залишається істинною умова виконання циклу.

Оператор циклу з передумовою має вигляд:

while<логічний вираз> do

Begin

<вказівка 1>;

<вказівка 2>;

……….;

<вказівка N>

end;

Тут while(поки), do(виконати) - зарезервовані слова; логічний вираз -умова, яка визначає виконання циклу.

Дія команди. Обчислюється значення логічного виразу (умови). Якщо умова істинна (приймає значення true), то виконується група вказівок (тіло циклу). Виконання програми знову повертається до перевірки умови циклу. Якщо умова хибна (приймає значення false), то виконується вказівка, яка знаходиться після оператору повторення з передумовою.

Блок-схема оператора циклу з передумовою має вигляд:

Примітка.

1. Якщо умова у вказівці повторення хибна при першій же перевірці, то тіло циклу не виконується жодного разу. Умова оператора є умовою входження в цикл.

2. Умову оператора повторення з передумовою необхідно підбирати таким чином, щоб в деякий момент вона змінила своє значення з true на false, інакше виникне ситуація “зациклювання” програми.

3. Програмісту необхідно самому потурбуватись про необхідність збільшення (зменшення) лічильника циклу на 1. Це можна зробити таким чином I:=I+1.

4. Входження в тіло оператора повторення можливе тільки через заголовок цього оператора.

Приклад. Нехай змінні , s мають значення = 4, s= 0. Після виконання команди

whilex<=8 do

Begin

s:=s+x; x:=x+1

end;

вони набудуть значень s=4+5+6+7+8=30, x=9.

Приклад. Вивести таблицю чисел від 20 до 30, їхні квадрати та куби за допомогою команди whileможна так: i:= 20;

whilei <= 30 do

Begin

writeln(i:4, sqr(i):6, exp(3*ln(i)):8); i:= i + 1

end;

Задача 3. Знайти суму всіх натуральних чисел від 1 до N.

programSUMA1;

varI,N,S: integer; begin

writeln(‘Введіть кількість натуральних чисел:’);

write(‘N=’);

readln(N);

I:=1;

S:=0;

whileI<=N do

Begin

S:=S+i; i:=i+1 end; writeln(‘S=’,S)

end.

 

Оператор циклу з післяумовою (repeat-until)

Оператор циклу з післяумовою призначений для організації багатократного виконання групи вказівок (тіло циклу) до тих пір, поки умова виконання циклу не стане істинною (логічний вираз дорівнює ш false, a trye).

Оператор циклу з післяумовою має вигляд: repeat

<вказівка 1>;

<вказівка 2>;

……….;

<вказівка N> until<логічний вираз>;

Тут repeat(повторювати), until(до тих пір поки) - зарезервовані слова; логічний вираз - умова, яка визначає завершення циклу.

Перевірка умови здійснюється не на початку циклу, а в кінці (що гарантує, як мінімум, одноразове виконання тіла циклу).

Дія команди. Спочатку виконуються вказівки, які входять до тіла циклу. Потім обчислюється значення умови-виразу. Якщо умова хибна (тобто має значення false), то знову виконуються вказівки тіла циклу. Якщо умова стає істинною (true), то виконання циклу припиняється і виконується наступна вказівка програми.

Примітка.

1. Тіло циклу, яке складається з групи вказівок, не потрібно брати в дужки (begin - end), оскільки службові слова repeat - untilвідіграють роль дужок.

2. Тіло циклу в операторі циклу з післяумовою виконується щонайменше один раз.

3. Умова оператору є умовою виходу з циклу.

4. Входження в тіло оператору циклу можливо тільки через заголовок цього оператору.

Блок-схема оператора циклу з післяумовою має вигляд:

Приклад. Нехай змінні , у мають значення =5, y=0. у результаті виконання команди repeat

у:=у+ ;

z:=2*x;

x:=x–2 untilx<=1; змінні y, z, x набудуть значень y=0+5+3=8, z=6, x=1.

Задача 5. Знайти суму всіх натуральних чисел від 1 до N.

programSUMA2;

vari,N,S: integer;

Begin

writeln(‘Введіть кількість натуральних чисел:’);

write(‘N=’);

readln(N);

i:=1;

S:=0;

Repeat

S:=S+i;

i:=i+1;

untili>N;

writeln(‘S=’,S);

end.

 

Для організації паузи в процесі виконання програми можна використовувати конструкцію Repeat Until KeyPressed(використовується до натискання будь-якої клавіші). В мові програмування Turbo Pascal логічна функція KeyPressedконтролює натискання клавіш. Якщо жодна з клавіш не натиснута, ця функція приймає значення False, інакше - True.

 

 

Хід роботи:

1. Вивчити теоретичний матеріал.

2. Виконати індивідуальне завдання.

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

Контрольні запитання:

1. У чому полягає відмінність між циклами з передумовою та циклами з постумовою?

2. Якому типу даних може належати лічильник у операторі for?

3. Яке значення має лічильник після завершення циклу for?

4. Що може спричинити зациклювання програми?

5. За яких умов цикли while і for не виконуються жодного разу?

6. Коли цикл виконується тільки один раз?

7. У чому полягає відмінність між операторами for ..to..do та for..downto..do?

8. Чи можна переривати роботу циклу, не використовуючи оператора break?

 







Последнее изменение этой страницы: 2016-04-18; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.226.243.36 (0.005 с.)