Цикл с параметром (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

  1. Постановка задачи:
  2. Определить сумму нечетных натуральных чисел до 100. Условный оператор не использовать.

  3. Блок-схема:
  4. Кодирование
  5. 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.
    
  6. Тестирование
  7. Дано:	|	
    --------------------------------
    Результат	|	S = 2500
    

Пример №2

  1. Постановка задачи:
  2. Вычислить факториал числа n (n! = 1·2·3· … ·n).

  3. Входные данные: n — целое число, n > 0.
  4. Выходные данные: переменная f — большое целое
  5. Блок-схема:
  6. Кодирование
  7. 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.
    
  8. Тестирование
  9. Дано:	|	n = 5
    --------------------------------
    Результат	|	5! = 120
    

    (Примечание: в данной задаче число n не может превышать 12, так как произойдет переполнение для данного типа)

Пример №3

  1. Постановка задачи:
  2. Вычислить n-е число Фибоначчи.

  3. Формализация
  4. Последовательность чисел Фибоначчи Fn определяется следующим образом: F1 = 1, F2 = 1, Fn = Fn–2 + Fn–1, n = 3, 4, … .

  5. Входные данные: n — переменная целого типа, n > 2.
  6. Выходные данные: переменная f — целого типа (n-е число Фибоначчи)
  7. Блок-схема:
  8. Кодирование
  9. 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.
    
  10. Тестирование
  11. Дано:	|	n = 10
    --------------------------------
    Результат	|	10-е число Фибоначчи = 55
    
    

Домашнее задание

  1. Составьте программу, выводящую на экран квадраты чисел от 10 до 20.
  2. Составьте программу, которая вычисляет сумму чисел от 1 до N. Значение N вводится с клавиатуры.
  3. Дополнительное задание: Дано вещественное число A и целое число N (> 0). Найти A в степени N: AN = A·A· … ·A
  4. Дополнительное задание: Дано целое число N (> 0). Используя один цикл, найти сумму 1! + 2! + 3! + … + N! Чтобы избежать целочисленного переполнения, проводить вычисления с помощью вещественных переменных и вывести результат как вещественное число.

Добавить комментарий