Оператори повторення. Цикл із параметром

2. Алгоритми з повторенням і розгалуженням

2.7. Оператори повторення. Цикл із параметром

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

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

Оператор циклу з параметром застосовують тоді, коли заздалегідь відоме число повторень певної послідовності операторів.

Для підрахунку кількості повторень вводиться змінна-параметр одного з порядкових типів (integer, boolean, char тощо).

Є дві форми запису циклу з параметром:

Оператори повторення. Цикл із параметром

1. For <параметр>:=А to B do <тіло циклу>;

Для <параметр>:=А до B виконати <тіло циклу>;

2. For <параметр>:=А downto B do <тіло циклу>;

Для <параметр>:=А назадДо B виконати <тіло циклу>;

Де А – початкове значення параметра, В – кінцеве значення параметра, тіло циклу – оператор (простий або складений). Початкове й кінцеве значення параметра циклу можуть бути подані константами, змінними або виразами відповідного типу.

Розглянемо виконання оператору циклу з параметром виду For <параметр>:=А to B do <тіло циклу>;

Спочатку обчислюються значення виразів А і В.

Якщо А<В, то змінна-параметр послідовно набуває значень рівних А, А+1,…,В-1, В (тобто з кроком 1) і для кожного з цих значень виконується тіло циклу. Якщо на початку А>В, то тіло циклу не буде виконане жодного разу.

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

Якщо потрібно повторити кілька операторів, то вони об’єднуються службовими словами Begin-End.

Приклад №1

З чисел від 10 до 99 вивести ті, сума цифр яких дорівнює N (0<N<18).

Розв’язування

Позначимо через k чергове...

число, р1 – старшу цифру числа k, р2 – меншу цифру числа k, S – суму.

Число k будемо друкувати лише в тому випадку, коли сума р1 і р2 дорівнюватиме S.

Program Example;

Var k, N, p1, p2, S: integer;

Begin

Write ( ‘N=’ ) ;

Readln (N);

For k:=10 to 99 do Begin

P1:=k div 10;{виділяємо старшу цифру}

P2:=k mod 10;{виділяємо молодшу цифру}

S:=p1+p2; {знаходимо суму цифр}

If S=N then writeln(k)

End

End.

У цій програмі цикл можна було записати коротше:

For k:=10 to 99 do

If k div 10+k mod 10=N then writeln(k);

Проаналізуйте його роботу самостійно.

Приклад №2

Знайти всі двоцифрові числа, що діляться на N або містять цифру N.

Розв’язування

Якщо двоцифрове число задовольняє умову задачі, то для нього виконується хоча б одна з трьох умов: перша цифра дорівнює N (p1=n) або друга цифра дорівнює N (p2=n), або саме число ділиться на N (k mod n = 0).

Яку логічну операцію необхідно використати для об’єднання цих простих умов у складену?

Питання для самоконтролю:

1. У яких випадках використовуються оператори повторення?

2. Які особливості запису циклу з параметром?

3. До якого типу даних належить змінна параметру циклу?

4. В яких випадках при складанні циклу використовуються службові слова Begin-End?

5. Скільки разів буде виконано тіло циклу у фрагменті програми::

For k:=-1 to 1 do…

6. Скільки разів буде виконано тіло циклу у фрагменті програми::

K:=5; r:=15;

For i:=k+1 to r-1 do

7. Скільки разів буде виконано тіло циклу у фрагменті програми::

K:=5; r:=15;

Fori:=0 to k*r do…

8. Скільки разів буде виконано тіло циклу у фрагменті програми::

K:=r;

For i:=k to r do…

9. Визначити значення змінної S після виконання таких операторів: S:=0; N:=10;

For i:=2 to N do S:=S+100 div i;

10. Перевірте роботу даної програми на комп’ютері. Проаналізуйте використання оператору циклу з параметром:

Program Demo;

Var c: boolean;

Begin

For c: = false to true do

Writeln(c);

End.


1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (No Ratings Yet)
Loading...
Ви зараз читаєте: Оператори повторення. Цикл із параметром