Оператор повтору Repeat

Оператор повторуrepeatмає дві особливості:

1. Умову перевіряють після чергового виконання операторів тіла циклу (чергової ітерації) і таким чином гарантується хоча б одноразове виконання циклу.

2. Критерієм припинення циклу є рівність вираження константіTrue.

За цей циклrepeatчасто називаютьциклом з постумовою, абоциклом "ДО",так як він припиняє виконуватися, як тільки значення висловлювання умови, записаного після словаuntil,іTrue (істина).

Оператор повторуrepeatскладається ззаголовка repeat,тіла та умови закінчення until.

Оператори, укладені між словамиrepeat та until,є тілом циклу. Спочатку виконується тіло циклу, потім перевіряється умова виходу із циклу. Саме тому цикл, організований за допомогою оператораrepeat, у будь-якому випадкувиконається хоча б один раз. Якщо результат булевського виразу дорівнюєFalse,то тіло циклу активізується ще раз; якщо результатTrue, відбувається вихід із циклу.

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

Приклад програми з використанням оператора repeat

Прикладом дії оператораrepeatможе бути програмаDemoRepeat, яка вводить і підсумовує будь-яку кількість цілочисельних значень. Якщо введено значення 999, на екран виводиться результат підсумовування.

Readln(X); ітати чергове значення Х з клавіатури>

Writeln('Сума введених чисел=', Sum);

У даному прикладі в розділі опису змінних описано зміннуХцілочисленного типуintegerтаSumречовинного типуreal.

На початку виконання програми обнулюється значення суми чисел. Потім зарезервованим словомrepeatоголошується цикл, після чого слідують оператори тіла циклу, які виводять на екран запит'Значення Х=',зчитують введене з клавіатури значенняX. Операторifперевіряє його на нерівність числу999і, якщо вона не дорівнює999, збільшує значення сумиSumна значення числаX. Наприкінці циклу операторuntil X = 999перевіряє умову закінчення циклу. Якщо значення виразуХ = 999істинно, то цикл завершиться, а керування у програмі буде передано на оператор, що знаходиться за словомuntil, тобто перший оператор за кордоном циклуrepeat. Це виклик процедуриWriteln, яка виведе повідомлення'Сума введених чисел дорівнює'і надрукує значення змінноїSum.

Приклад програми з використанням операторів присвоєння, повтору та вибору

Operation, Ans: char;

case Operation of

Readln (Ans); Зчитування відповіді на запитання>

Until (Ans = 'N') або (Ans = 'n');

У розділі опису змінних описані змінні - операндиX, Yта результат арифметичних операційRezultречовинного типу, а також зміннаOperationсимвольного типу, в якій зберігається значення арифметичного знака операції, таAns-змінна символьного типу, якій присвоюється значення"Y"або"N".

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

У тілі циклу спочатку запитуються і зчитуються зклавіатури значення операндів X і Y, потім запитується та зчитується знак арифметичної операції. Оператор виборуcaseза значенням змінноїOperation (селектор)вибирає знак операції та в залежності від його значення виконує арифметичну операцію. Наприклад, якщо значення змінноїOperationдорівнює значенню константи вибору'-', то виконується оператор присвоєнняRezult := Х-Yі т. д. Якщо значення змінноїOperationне дорівнює жодному значенню константи вибору, то керування передається на оператор, що стоїть за словомelse, і на екран виводиться повідомлення'Помилка введення'. Після цього на екран виводиться запит'Продовжити (Y/N)'і з клавіатури зчитується значення змінної символьного типуAns. Якщо значення виразу(Ans='N') or (Ans='n')будеFalse, цикл повториться знову, інакше цикл буде завершено і управління в програмі буде передано на операторend.