Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самоучитель PascalABC.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
1.76 Mб
Скачать

«Структура типа Цикл»

  • Начало

  • Взять из коробки карандаш и наточить

  • В коробке остались карандаши?

    • Да – Вернуться на предыдущий пункт

    • Нет – Завершить программу

  • Конец

Данный тип алгоритма сложен тем, что он делится на несколько видов, а именно:

  1. Цикл с предусловием

  2. Цикл с постусловием

  3. Цикл с счётчиком

Вы узнаете о них в обратном порядке.

«Цикл со счётчиком»

Цикл со счётчиком – цикл FOR. Синтаксис цикла:

FOR <переменная>: = <начальное значение> TO <конечное значение> DO <команда>

Дословно: для переменной, имеющей начальное значение до конечного значения выполнять команду.

Пример:

FOR i≔1 to 10 do

Writeln(i);

Данная программа будет выводить каждый раз на экран номер «прогона» цикла. Дословно:

  1. Для i = 1 делать:

    1. Написать i

    2. Увеличить i на 1

  2. Для i = 2 делать:

    1. Написать i

    2. Увеличить i на 1

  3. И так далее до 10

На экране мы увидим следующее:

Существует обратный цикл FOR – DOWNTO:

For i≔10 downto 1 do

Writeln(i);

Т еперь цикл будет выполняться от 10 до 1 – сверху вниз. Результат:

П римечание: при использовании вида цикла TO, начальное значение должно быть меньше конечного. При использовании DOWNTO – наоборот. В ином случае цикл не выполнится ни разу:

Для того, чтобы посчитать сколько раз выполнится цикл, используйте формулу:

Количество = | конечное значение – начальное значение | + 1

Задание №4:

«Написать программу, спрашивающую, сколько раз вывести на экран слово 'PascalABC'».

Примечание: для того, чтобы в цикле выполнить подпрограмму, а не одну команду, команду необходимо взять в «Операторные скобки (begin-end)», иначе выполнится первая строка:

For i≔1 to 10 do

Begin

<команда 1>

<команда 2>

<…>

End;

«Цикл с постусловием»

Цикл с постусловием выглядит так:

Вне зависимости от условия <тело цикла> выполнится хотя бы один раз.

  • Начало

  • Выполнить программу

  • Условие

    • Да – Конец

    • Нет – Вернуться на пункт назад

  • Конец

PascalABC:

  • BEGIN

  • REPEAT

  • <программа>

  • UNTIL <условие>

  • END.

REPEAT

<программа>

UNTIL <условие>

Команда или команды внутри цикла REPEAT-UNTIL будут выполняться до тех пор, пока <условие> не станет истинным. Например,

i≔0;

REPEAT

i : = i + 1;

writeln(‘PascalABC’);

UNTIL i=10;

Д ословно: писать строку «PascalABC» и увеличивать i на 1 до тех пор, пока i не будет равно 10:

Примечание: В отличие от цикла FOR, в теле цикла REPEAT-UNTIL команды пишутся без операторных скобок:

X≔5;

Repeat

X≔x-1;

Writeln(x);

Writeln(‘PascalABC’);

Until x=1;

Задача №5:

«Написать программу, которая выводит строку `PascalABC` N-ное количество раз, вводимое пользователем».

«Цикл с предусловием»

  • Н ачало

  • Условие

    • Да – выполнить программу

      • Программа

    • Нет – конец

  • Конец

PascalABC:

  • BEGIN

  • WHILE <условие> DO

    • <программа>

  • END.

WHILE <условие> DO

writeln('PascalABC');

Дословно: пока условие истинно, писать `PascalABC`. Например:

Дословно: Когда (WHILE) i<3 делать: написать `PascalABC` и увеличить i на 1.

Можно трактовать так: i меньше 3х? Да=>выполняем программу, иначе - пропустить цикл. Для нескольких строк так же требуется наличие операторных скобок.

Задача №6:

« Составить программу, спрашивающую что написать и сколько раз»