Циклы. Цикл с параметром (FOR). Параметры, синтаксис
Оператор цикла for называют цикл с параметром. Цикл с параметром используется в том случае, когда требуется выполнить заданное количество шагов цикла. Нужно сказать, что for Pascal не слишком гибок (в отличие, например, от С), так как параметр цикла (или счетчик) изменяется на величину, равную единице. Таким образом, когда требуется выполнить дробный шаг необходимо использовать цикл типа while. Существует две разновидности цикла for: с увеличением и с уменьшением значений счетчика (или параметра).
Синтаксис:
for счетчик := начальное значение to конечное значение do begin {Операторы} end; for счетчик := конечное значение downto начальное значение do begin {Операторы} end; |
Оператор for состоит из заголовка и тела цикла. Составной оператор, находящийся в теле цикла, должен быть заключен в операторные скобки begin и end.
В качестве идентификатора счетчика обычно используется "i".
Переменная счетчика должна быть порядкового типа. Например, целочисленного типа: byte, integer.
Начальное и конечное значения параметра цикла нельзя изменять во время выполнения цикла.
Оператор for используется для организации циклов с фиксированным, заранее известным или определяемым во время выполнения программы числом повторений.
Блок-схема
(В данной блок схеме: M - начальное значение счетчика, N - конечное значение счетчика)
Пример №1
Постановка задачи:
Определить сумму нечетных натуральных чисел до 100. Условный оператор не использовать.
Блок-схема:
Кодирование
program fornech; var i:byte; s:word; begin s := 0; for i := 1 to 50 do s := s + (2 * i - 1); writeln('S = ', s) end. |
Тестирование
Дано: |
--------------------------------
Результат | S = 2500
Пример №2
Постановка задачи:
Вычислить факториал числа n (n! = 1·2·3· ... ·n).
Входные данные: n - целое число, n > 0.
Выходные данные: переменная f - большое целое
Блок-схема:
Кодирование
program factor; var i,n:integer; f:longint; begin write('Введите число n = '); readln(n); f := 1; for i := 1 to n do f := f * i; writeln(n, '! = ', f) end. |
Тестирование
Дано: | n = 5
--------------------------------
Результат | 5! = 120
(Примечание: в данной задаче число n не может превышать 12, так как произойдет переполнение для данного типа)
Пример №3
Постановка задачи:
Вычислить n-е число Фибоначчи.
Формализация
Последовательность чисел Фибоначчи Fn определяется следующим образом: F1 = 1, F2 = 1, Fn = Fn–2 + Fn–1, n = 3, 4, ... .
Входные данные: n - переменная целого типа, n > 2.
Выходные данные: переменная f - целого типа (n-е число Фибоначчи)
Блок-схема:
Кодирование
program fibo; var i,n:integer; f,f1,f2:longint; begin write('Введите число n = '); readln(n); f1 := 1; f2 := 1; for i := 3 to n do begin f := f1 + f2; f1:=f2; f2:=f end; writeln(n, '-е число Фибоначчи = ', f) end. |
Тестирование
Дано: | n = 10
--------------------------------
Результат | 10-е число Фибоначчи = 55