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

Repeat <оператор>
Untіl <умова>;
Тут <умова> — логічний вираз, що є умовою
виходу з циклу; <оператор> — оператор, який виконується при
кожній ітерації (тіло циклу).
Порядок виконання циклу Repeat:
1) виконується <оператор> — вказівки, які входять у тіло циклу;
2) перевіряється <умова>. Якщо умова хибна, то оператори тіла циклу повторюються, якщо ж умова істинна — цикл Repeat припиняє свою роботу і виконується наступний оператор програми.
Тіло циклу — блок операторів між Repeat і Untіl — обов’язково виконується хоча б один раз.
Типові задачи:
1. Вивести парні числа від 2 до 12
var k: Integer;begink := 0;
Repeat
k := k + 2;
Label1.Caption := IntToStr(k);
Until k >= 12;end;
Repeat
k := k + 2;
Label1.Caption := IntToStr(k);
Until k >= 12;end;
2. Визначити, скільки перших натуральних чисел потрібно додати, щоб одержати суму, більшу за 1000
Repeat
n := n + 1; S := S + n;
Until S > 1000;
n := n + 1; S := S + n;
Until S > 1000;
| Edit1.Text := IntToStr(n);end; |
3. Знайти суму цифр натурального числа n
var n, d, S: Integer;begin
n := StrToInt(Edit1.Text);
S := 0;
Repeat
d := n mod 10; { знайдено останню цифру числа}
S := S + d; // цифра d додається до сумиS := 0;
Repeat
d := n mod 10; { знайдено останню цифру числа}
n := n div 10; // відкидається остання цифра числа n
Until n=0; { Якщо n = 0, цикл припиняє роботу, оскільки всі цифри
числа розглянуто }
Edit2.Text := IntToStr(S);end;
4. Полічити кількість слів у введеному користувачем тексті Вважатимемо, що слова відокремлюються виключно одним пробілом, а перший і останній символи текста (рядка S) не є пробілами. Отже, кількість слів у рядку S на 1 більша за кількість пробілів.
Для введення текстового рядка використовується компонент Memo (вкладка Standard на Палітрі компонентів): він дозволяє вводити багаторядковий текст із клавіатури як значення властивості Text.
i, count: Integer;begin
S := Memo1.Text;
i := 0;
If length(S) > 0
i := 0;
If length(S) > 0
Then
begin // Якщо довжина рядка S не нульова,
count := 1; // є хоч одне слово
Repeat
i := i + 1; // Перевіряється кожен символ рядка S
If S[i] = ‘ ‘ // Якщо знайдено пропуск,
Then count := count + 1; // то збільшується лічильник слів на 1
Until i >= length(S); endElse count := 0;
Edit2.Text := IntToStr(count);end;
count := 1; // є хоч одне слово
Repeat
i := i + 1; // Перевіряється кожен символ рядка S
If S[i] = ‘ ‘ // Якщо знайдено пропуск,
Then count := count + 1; // то збільшується лічильник слів на 1
Until i >= length(S); endElse count := 0;
Edit2.Text := IntToStr(count);end;
Домашнє завдання:
1. Чахлик Невмирущій має А скринь із золотом, і кожного року додається ще В скринь. Василиса Премудрая пообіцяла, що вийде за нього заміж, якщо він матиме D скринь. Скільки років буде тоді нареченій, якщо ій зараз 18?
2. Виконайте тестове завдання 40 з автоматичною перевіркою на сайті
interactive.ranok.com.ua
interactive.ranok.com.ua


Комментариев нет:
Отправить комментарий