2. Алгоритми з повторенням і розгалуженням
2.10. Цикл з післяумовою
Оператор циклу з післяумовою має такий вигляд:
Repeat
<тіло циклу>;
Until <умова зупинки циклу>;
Або
Повторювати
<тіло циклу>;
ДокиНе <умова зупинки циклу>;
Цей оператор відрізняється від циклу з передумовою тим, що перевірка умови проводиться після чергового виконання тіла циклу. Це забезпечує виконання тіла циклу хоча б один раз.
Зверніть увагу на те, що даний оператор циклу допускає наявність кількох операторів у тілі циклу, тому
Порядок виконання циклу з післяумовою такий: виконується послідовність операторів, що складають тіло циклу, після чого перевіряється умова, записана після службового слова Until. Якщо умова виконується, то цикл завершується.
У протилежному випадку оператори тіла циклу виконуються ще раз, після чого знову перевіряється виконання умови. Приклад
Скласти програму для планування купівлі в магазині товарів на суму, що не перевищує задану величину.
Розв’язування
Позначимо через x та k ціну та кількість товару, через p – задану
Початкове значення загальної вартості покупки s дорівнює нулю. Значення граничної суми вводиться з клавіатури.
Необхідно повторювати запит ціни й кількості вибраного товару, визначати його вартість, додавати її до загальної вартості та виводити результат на екран доти, поки вартість не перевищить граничну суму p.
Program Exemple;
Var x, k,p, s:integer;
Begin
Write(‘Гранична сума – -‘);
Readln(P);
S:=0;
Repeat
Write(‘Введіть ціну товару та його кількість :’);
Readln(x, k);
S:=s + k*x;
Writeln(‘ вартість покупки дорівнює ‘,s)
Until s>p;
Writeln(‘вартість покупки перевищила граничну суму!’);
End.
Питання для самоконтролю:
1. У яких випадках використовується цикл з післяумовою та які особливості його запису?
2. У чому подібність і відмінність циклів з умовами?
3. Виберіть правильну відповідь.
При виконанні оператора повторення Repeat
А) спочатку обчислюється логічний вираз і, в залежності від результату, виконуються або не виконуються оператори тіла циклу;
Б) спочатку виконуються оператори тіла циклу, потім обчислюється логічний вираз, результат якого впливає на повторне виконання операторів.
4. Визначити значення змінної s після виконання таких операторів:
S:=0; i:=1;
Repeat
S:=s+5 div і;
I:=i-1
Until i<=1;
5. Що буде надруковано в результаті виконання такої послідовності операторів:
I:=1;
Repeat
Write (i,’ ‘);
I : =i + 2
Until i>19;
6. Визначити значення змінних s та і після виконання таких операторів:
S:=0; i:=1;
Repeat
S : =S + i ;
I:=i+1
Until i>10;