Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
оптам.docx
Скачиваний:
3
Добавлен:
24.04.2019
Размер:
204.87 Кб
Скачать

Структура оператору циклу з параметром

Оператори циклу з параметром бувають двох типів:

  1. З параметром i, що збільшується від start до finish (з кроком 1)

For i:=start to finish do  Begin s1; s2; s3; … end;

  1. З параметром i, що зменшується від start до finish (з кроком -1)

For i:=start downto finish do Begin s1; s2; s3; … end;

Тут:   For, to, downto, do – зарезервовані слова.    i – змінна    start, finish – сталі, змінні або вирази   Begin, end – операторні дужки   s1; s2; s3 – будь-якіоператори

Термінологія

  1. Параметр циклу (у прикладі i) - будь-яка змінна цілого (byte, Integer, word, longint,…) або символьного типу (char).

  2. Початкове значення параметру (у прикладі start) – стала, змінна або вираз того ж типу, що й параметр.

  3. Кінцеве значення параметру (у прикладі finish) – стала, змінна або вираз того ж типу, що й параметр.

  4. Заголовок циклу вказує, скільки разів буде виконуватись тіло циклу.  Заголовок циклу:

    • For i:=start to finish do або

    • For i:= start downto finish do

  5. Тіло циклу – оператори, що повторюються. Тіло циклу – Begin s1; s2; s3; … end;

  6. Кількість витків циклу – кількість повторень тіла циклу.

Написаний вище оператор І типу на блок-схемі відображається так:

Написаний вище оператор ІI типу на блок-схемі відображається так:

В першому операторі крок дорівнює 1, а в другому –1.

Зауваження

  1. Параметр циклу автоматично по черзі приймає цілі значення від start до finish (для символьних параметрів приймає значення наступного символу з таблиціASCII).

  2. Скільки значень прийме параметр циклу від start до finish, стільки разів виконається тіло циклу.

  3. В операторі з параметром, що збільшується (For i:=start to finish do), щоб виконувалось тіло циклу потрібно, щоб start<=finish. Якщо start >finish, то помилки не буде? але тіло циклу виконуватись не буде.

    Фрагмент програми

    Результат роботи

    For i:=5 to 10 do  write(‘*’);

    ******

    For i:=10 to 5 do  write(‘*’);

    Такий фрагмент програми нічого не виведе на екран.

  4. В операторі з параметром, що зменшується (For i:=start downto finish do), щоб виконувалось тіло циклу потрібно, щоб start>=finish. Якщо start < finish, то помилки не буде, але тіло циклу виконуватись не буде.

    Фрагмент програми

    Результат роботи

    For i:=5 downto 1 do write(‘*’);

    *****

    For i:=1 downto 5 do write(‘*’);

    Такий фрагмент програми нічого не виведе на екран.

  5. Параметр циклу не можна змінювати у тілі циклу. Програма може зациклитись або деякі вітки циклу виконуватись не будуть.  Наприклад:

    Фрагмент програми

    Результат роботи

    For i:=1 to 3 do  Begin write(i,’  ‘);   i:=5; end;

    Програма зациклиться, вона надрукує 1, а потім буде завжди друкувати 6 1 6 6 6 6…..

    For i:=1 to 3 do Begin  write(i,’  ‘); i:=3; end;

    Ця програма надрукує тільки число 1, бо виконає один виток, замість трьох

  6. Якщо програма зациклилась, потрібно натиснути Ctrl+break або Ctrl+Alt+Delete (викликати Диспетчер задач та зняти задачу).

  7. Якщо start та finish – вирази, то їх значення обчислюються один раз, перед початком циклу і змінення їх у тілі циклу не впливає на кількість витків циклу.

Фрагмент програми

Результат роботи

F:=3;  For i:=1 to F do  Begin write(’*‘); F:=10; end;

*** Програма надрукує 3 зірочки, хоч у тілі циклу є оператор F:=10.