- •Глава 1 «Знакомство с языком»
- •«Шаблон»
- •«Типы данных»
- •«Первая комбинированная программа»
- •«Первая самостоятельная программа»
- •Глава 2 «Алгоритмические операторы»
- •«Структура типа Линейная или Следование»
- •«Структура типа Ветвление»
- •«Структура типа Цикл»
- •«Цикл со счётчиком»
- •«Цикл с постусловием»
- •«Цикл с предусловием»
- •Глава 3 «Оператор выбора case»
- •«Метки и псевдоциклы с оператором goto»
- •«Операторы деления div и mod»
- •«Рандомные числа»
- •«Некоторые полезные функции и операторы»
- •«Комментарии»
- •«Файлы. Процедуры и функции при работе с файлами»
«Структура типа Цикл»
Начало
Взять из коробки карандаш и наточить
В коробке остались карандаши?
Да – Вернуться на предыдущий пункт
Нет – Завершить программу
Конец
Данный тип алгоритма сложен тем, что он делится на несколько видов, а именно:
Цикл с предусловием
Цикл с постусловием
Цикл с счётчиком
Вы узнаете о них в обратном порядке.
«Цикл со счётчиком»
Цикл со счётчиком – цикл FOR. Синтаксис цикла:
FOR <переменная>: = <начальное значение> TO <конечное значение> DO <команда>
Дословно: для переменной, имеющей начальное значение до конечного значения выполнять команду.
Пример:
FOR i≔1 to 10 do
Writeln(i);
Данная программа будет выводить каждый раз на экран номер «прогона» цикла. Дословно:
Для i = 1 делать:
Написать i
Увеличить i на 1
Для i = 2 делать:
Написать i
Увеличить i на 1
И так далее до 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:
«
Составить
программу, спрашивающую что написать
и сколько раз»
