Інформатика 7 клас - Пилипчук О.П. - Аспект 2015 рік

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

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

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

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

While <умова> Do <тіло циклу>;

або

Поки <умова> Виконати <тіло циклу>;

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

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

Примітки

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

Приклад №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;

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

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

ck: = 0;

While a>=0 Do

Begin

ck:=ck+1;

a:=a div 10 End;

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

a:=1; b:=1;

While a+b<8 Do

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

s:=a+b;

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

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

a:=1; b:=1;

while a<=3 Do a:=a+1; b:=b+1;

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

а) s:=0; i:=0;

While i<5 Do i:=i+1; s:=s+100 div i;

б) s:=0; i:=0;

While i>1 Do

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

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

а) While c<0 Do c:=c+k;

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

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






Відвідайте наш новий сайт - Матеріали для Нової української школи - планування, розробки уроків, дидактичні та методичні матеріали, підручники та зошити