Оператор циклу з післяумовою призначений для організації багатократного виконання групи вказівок (тіло циклу) до тих пір, поки умова виконання циклу не стане істинною (логічний вираз дорівнює ш 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?