Цикл з передумовою

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

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

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

While Do ;

Або

Поки Виконати ;

Виконання оператора циклу з передумовою починається з перевірки умови, записаної після слова While. Якщо вона виконується, то виконується тіло циклу, потім знову

перевіряється умова і т. д.

Якщо під час чергової перевірки з’ясується, що умова не виконується, то тіло циклу виконуватися не буде. Керування перейде до оператора, що після циклу.

Примітки

Якщо тіло циклу складається з кількох операторів, то вони об’ єднуються службовими словами Begin-End. У тілі циклу обов’язково має бути оператор, що впливає на істинність умови, інакше станеться зациклювання: оператори тіла циклу будуть повторюватися “вічно”.

Приклад №1

Підрахувати кількість цифр заданого натурального числа n.

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

Раніше ми виділяли цифри двоцифрових та трицифрових

чисел. У цьому ж випадку ми не знаємо скільки цифр має число.

Тому, поки число не стане рівне 0, будемо виконувати таку послідовність команд: збільшувати лічильник кількості цифр числа на одиницю, а число зменшувати в 10 разів (за допомогою цілочисельного ділення позбавлятимемося останньої цифри числа).

Program Example;

Var m, n, k: integer;

Begin

Write( ‘ Введіть натуральне число: ‘);

Readln (n);

M: = n; {копіюємо введене число}

K: = 0; {змінна-лічильник кількості цифр}

While m<>0 Do

Begin

K: = k + 1; {збільшуємо лічильник цифр}

M:=m div 10 {відкидаємо останню цифру} End;

Writeln (‘ У числі ‘, n,’ – ‘, k, ‘ цифр’)

End.

Роботу цієї програми цікаво спостерігати в покроковому режимі виконання, слідкуючи за зміною значень m і k.

Приклад №2

Підрахувати суму цифр заданого натурального числа n.

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

Щоб розв’язати цю задачу, досить зробити незначні зміни в попередній програмі. Потрібно, як і раніше, відділяти останню цифру числа, але перед цим її потрібно запам’ятовувати в додаткову змінну (наприклад, а) і додавати до суми S.

Фрагмент програми:

While m<>0 Do

Begin

A:=m mod 10;

S:=s+a; m:=m div 10

End;

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

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

Ck: = 0;

While a>=0 Do

Begin

Ck:=ck+1;

A:=a div 10 End;

Дано послідовність операторів:

A:=1; b:=1;

While a+b

Begin a:=a+1; b:=b+2 End;

S:=a+b;

Скільки разів буде повторюватись тіло циклу? Якими будуть значення змінних а, b і s після виконання цієї послідовності операторів?

Якими будуть значення змінних а і b після виконання послідовності операторів:

A:=1; b:=1;

While a<=3 do a:=a+1; b:=b+1;

Знайдіть значення змінної s після виконання таких операторів:

А) s:=0; i:=0;

While i

Б) s:=0; i:=0;

While i>1 Do

Begin s:=s+10 0 div і; i:=i-1 End;

Яким умовам повинно задовольняти значення змінної k, щоб такі цикли були нескінченними:

А) While c

Б) While k<>0 Do k:=k+1;

В) While k<>0 Do k:=k+2;

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)


Цикл з передумовою - Інформатика