Це логіка розрахунку факторіала. Давайте перенесемо її на мову программірова-ня Delphi. Цикл в Delphi оформляється наступним чином:
Після слова for потрібно присвоїти якийсь змінної початкове значе-ня. Ця змінна буде використовуватися в якості лічильника виконання циклу.
Після кожного виконання дії цей лічильник буде збільшуватися на одиницю, поки змінна не перевищить кінцевого значення. В якості лічильника я звик використовувати змінну з ім'ям index або i, але деякі фахівці вва-тануть, що і лічильників потрібно давати більше виразні імена. На мій погляд, більш виразного імені далеко не завжди можна придумати. У загальному вигляді цикл виглядає так:
У цьому прикладі оголошуються дві змінні index і sum типу "ціле число". Спочатку змінної sum присвоюється значення 0. Після цього запускається цикл, в якому змінна index буде змінюватися від 0 до 5. Тепер подивимося поетапно, що тут відбувається.
- На першому етапі змінна index дорівнює 0. sum теж дорівнює нулю, значить, ви-повниться операція sum: = o + o. Результат sum = о;
- На другому етапі index збільшена на 1, значить, виконається дія sum: = про + 1. Результат sum = 1.
- Тут index збільшена на 1 і вже дорівнює 2, a sum = 1. Значить, виконається дію-віє Sum: = 1 + 2. Результат Sum = 3.
- Тут index збільшена на 1 і вже дорівнює 3, a sum = 3. Отже, виконається дію-віє sum: = 3 + 3. Результат sum = б.
- Тут index збільшена на 1 і вже дорівнює 4, a sum = 6. Отже, виконається дію-віє Sum: = 4 + 6. Результат Sum = 10.
- Тут index збільшена на 1 і вже дорівнює 5, a sum = 10. Значить, виконається дей-ствие Sum: = 5 + 10. Результат sum = 15.
Зауважте, що ми не збільшуємо значення змінної index, використовуючи для цього певні команди. Значення збільшується автоматично, тому що ця змінна оголошена лічильником в циклі for.
Давайте перенесемо розглянутий вище програмний код безпосередньо в програм-му, щоб ми могли переконатися в цьому на реаль-ном прикладі. Створіть новий додаток. Як і місце на формі два компоненти TLabel, два компонента TEdit і одну кнопку.
Компонент Edit1 перейменований в EndEdit, a Edit2 перейменований в ResuitEdit. Тепер після натиснення кнопки (обробник події # 111; nclick для кнопки, яка генерується, коли користувач натиснув на кнопку) пишемо код, представлений в лістингу:
В принципі, текст той же самий. Єдина різниця полягає в тому, що цикл запускається, починаючи від 0 до числа, введеного в компонент EndEdit. EndEdit містить текст, а нам потрібно перетворити його в число, тому ми використовуємо функцію strToint для перетворення рядка в число. Ця функція працює так само, як і intTostr, яка навпаки перетворювала число в рядок.
Результат перетворення зберігається в змінної EndCount:
Після цього запускається цикл, в якому змінна index буде змінюватися від 0 ДО значення EndCount (в якому знаходиться ЧИСЛО, введене В EndEdit).
Запустіть програму і введіть в рядок Кінцеве значення число 5. Після цього натисніть на кнопку, і в рядку результату повинно з'явитися число 15.
Тут необхідно ще зазначити те, що після циклу for буде виконуватися тільки одну дію. Наприклад, якщо ви захочете виконати дві дії поспіль, то ви повинні укласти їх в дужки begin і end, як це показано в наступному прикладі.
Тут на кожному кроці циклу sum збільшується ще на одиницю. Якщо ви по-пробуєте написати так:
то виконуватися в циклі буде тільки рядок sum: = sum + index. Другий рядок Sum: = sum + i виконається тільки після закінчення циклу.
ПОРАДА. Якщо ви щось не зрозуміли в попередньому прикладі, поверніться до глави, де описувалися блок-схеми. Там було розглянуто приклад, який працює як цикл for. to. do. Спробуйте точно так же самостійно намалювати блок-схему для даного прикладу і подумки пройдіть її по кроках.