Цикл з післяумовою
За новою програмою
Урок 44
8
Оператор циклу з післяумовою REPEAT
Оператор циклу Repeat використовують у тих випадках, коли потрібно спочатку виконати деяку послідовність дій, а потім визначити, чи є потреба повторювати ці дії ще раз. Синтаксис оператора Repeat:
Repeat <оператори тіла циклу>
Until <умова>;
Вираз логічного типу
оператори, які виконуються при кожній ітерації
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Оператор циклу з післяумовою REPEAT
Виконання оператора циклу Repeat починається з виконання вказівок, які входять у тіло циклу, після чого обчислюється вираз умова. Якщо умова:
Хибна
Істинна
то оператори тіла циклу повторюються
цикл Repeat припиняє свою роботу і виконується наступний оператор програми
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Оператор циклу з післяумовою 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
Оператор циклу з післяумовою REPEAT
Останнім надруковано число 12, оскільки при:
k = 10
умова ще була хибною, відбулась ще одна ітерація, і в тілі циклу k отримало значення 12.
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Оператор циклу з післяумовою 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
Оператор циклу з післяумовою 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
Оператор циклу з післяумовою REPEAT
Полічити кількість слів у введеному користувачем тексті. Вважатимемо, що слова відокремлюються виключно одним пробілом, а перший і останній символи текста (рядка S) не є пробілами. Отже, кількість слів у рядку S на 1 більша за кількість пробілів. Для введення текстового рядка використовується компонент Memo (вкладка Standard на палітрі компонентів): він дозволяє вводити багаторядковий текст із клавіатури як значення властивості Text типу String.
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Оператор циклу з післяумовою 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
Оператор циклу з післяумовою REPEAT
Проект запущений на виконання
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Розгадайте ребус
«Ребуси українською» © rebus1.com
Післяумова
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Питання для самоперевірки
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Питання для самоперевірки
і := 1; F := 2;
Repeat
і := і + 1; F := F * і
Until і < 6;
Repeat
х := StrToFloat(lnputBox(‘Введення X', Введіть додатне число', '0'));
Until х > 0;
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Домашнє завдання
Проаналізувати
§ 6.7, ст. 217-220
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Працюємо за комп’ютером
Сторінка
219-220
Розділ 6 § 6.7
8
© Вивчаємо інформатику teach-inf.at.ua
Дякую за увагу!
За новою програмою
Урок 44
8