1 of 16

Цикл з післяумовою

За новою програмою

Урок 44

8

2 of 16

Оператор циклу з післяумовою REPEAT

Оператор циклу Repeat використовують у тих випадках, коли потрібно спочатку виконати деяку послідовність дій, а потім визначити, чи є потреба повторювати ці дії ще раз. Синтаксис оператора Repeat:

Repeat <оператори тіла циклу>

Until <умова>;

Вираз логічного типу

оператори, які виконуються при кожній ітерації

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

3 of 16

Оператор циклу з післяумовою REPEAT

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

Хибна

Істинна

то оператори тіла циклу повторюються

цикл Repeat припиняє свою роботу і виконується наступний оператор програми

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

4 of 16

Оператор циклу з післяумовою REPEAT

Вивести парні числа від 2 до 12.

var k: Integer;

Begin

k := 0;

Repeat

k := k + 2;

Label1.Caption := IntToStr(k);

Until k > 10;

end;

Блок операторів між Repeat і Until обов'язково виконується хоча б один раз.

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

5 of 16

Оператор циклу з післяумовою REPEAT

Останнім надруковано число 12, оскільки при:

k = 10

умова ще була хибною, відбулась ще одна ітерація, і в тілі циклу k отримало значення 12.

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

6 of 16

Оператор циклу з післяумовою REPEAT

Знайти найменшу кількість перших натуральних чисел, потрібну для того, щоб одержати суму, більшу за 1000.

var N, S: Integer;

begin

N := 0; S := 0;

Repeat

N := N + 1; S := S + N;

Until S > 1000;

Edit1.Text := IntToStr(N);

end;

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

7 of 16

Оператор циклу з післяумовою REPEAT

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

var N, d, S: Integer;

begin

N := StrToInt(Edit1.Text);

S := 0;

Repeat

d := N mod 10; // виділено останню цифру числа

S := S+d; // значення d додається до суми цифр

N := N div 10; // відкидається остання цифра числа N

Until N=0; // Якщо N = 0, цикл припиняє роботу

Edit2.Text := IntToStr(S);

end;

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

8 of 16

Оператор циклу з післяумовою REPEAT

Полічити кількість слів у введеному користувачем тексті. Вважатимемо, що слова відокремлюються виключно одним пробілом, а перший і останній символи текста (рядка S) не є пробілами. Отже, кількість слів у рядку S на 1 більша за кількість пробілів. Для введення текстового рядка використовується компонент Memo (вкладка Standard на палітрі компонентів): він дозволяє вводити багаторядковий текст із клавіатури як значення властивості Text типу String.

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

9 of 16

Оператор циклу з післяумовою REPEAT

var S: String;

i, count: Integer;

begin

S := Memo1.Text; i := 0;

If length(S) > 0 Then begin // Якщо довжина рядка S ненульова,

Count := 1; // є хоч одне слово

Repeat

і := і + 1; // Перебираємо кожен символ рядка S

if S[i] = ' ' // Якщо знайдено пропуск

Then count := count + 1; // то збільшуємо лічильник слів на 1

Until і >= length(S);

end

Else count := 0;

Edit1.Text := IntToStr(count);

end;

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

10 of 16

Оператор циклу з післяумовою REPEAT

Проект запущений на виконання

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

11 of 16

Розгадайте ребус

«Ребуси українською» © rebus1.com

Післяумова

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

12 of 16

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

  1. Поясніть синтаксис і порядок виконання оператора циклу з післяумовою.
  1. Чи може виникнути ситуація, за якої тіло циклу Repeat не виконається жодного разу?
  1. Дано фрагмент програмного коду. Доповніть таблицю.

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

13 of 16

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

  1. Якого значення набуде змінна F після виконання циклу?

і := 1; F := 2;

Repeat

і := і + 1; F := F * і

Until і < 6;

  1. Поясніть призначення оператора циклу:

Repeat

х := StrToFloat(lnputBox(‘Введення X', Введіть додатне число', '0'));

Until х > 0;

  1. Складіть програму для знаходження найменшої кількості перших парних чисел, потрібної для того, щоб одержати суму, більшу від 100.

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

14 of 16

Домашнє завдання

Проаналізувати

§ 6.7, ст. 217-220

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

15 of 16

Працюємо за комп’ютером

Сторінка

219-220

Розділ 6 § 6.7

8

© Вивчаємо інформатику teach-inf.at.ua

16 of 16

Дякую за увагу!

За новою програмою

Урок 44

8