Примеры алгоритмов циклической структуры

End.

Readln

Begin

End.

Readln

Begin

End.

Readln

Begin

Оператор цикла с параметром

Комбинированный урок №6

Тема:Операторы организации циклов. Простой и составной операторы.

Цель: формирование знаний о форматах операторов For, навыков применения операторов, приемов составления схем алгоритмов циклических вычислительных процессов. Примеры использования операторов.

 

 

При разработке алгоритмов решения большинства задач возникает необходимость многократного повторения однотипных команд. Командой повторения или циклом называется такая форма организации действий, при которой одна и та же последовательность действий повторяется до тех пор, пока сохраняется значение некоторого логического выражения. При изменении значения логического выражения на противоположное значение повторения прекращаются (цикл завершается).

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

- перед началом цикла задать начальное значение параметра;

- внутри цикла изменять параметр цикла с помощью оператора присваивания;

- проверять условие повторения или окончания цикла;

- управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из цикла в противном случае.

Различают циклы с известным числом повторений (цикл с параметром) и итерационные (с пред- и постусловием).

В цикле с известным числом повторений параметр изменяется в заданном диапазоне.

Если в цикле изменяется простая переменная, то она является параметром цикла; если в цикле изменяется переменная с индексом, то индекс этой переменной является параметром цикла.

Для организации цикла с известным числом повторений в Pascal используется оператор for.

Общий вид оператора цикла с параметром:

FOR i:= A TO B DO оператор;

где i - параметр цикла (счетчик повторов) - переменная целого типа (integer);

A и B - начальное и конечное значения параметра цикла-выражения того же типа, что и параметр цикла;

оператор - любой простой или составной оператор, который требуется повторить несколько раз.

Оператор цикла типа FOR...TO...DO предусматривает последовательное увеличение на единицу параметра цикла i от начального значения A до конечного значения B и выполнение входящего в цикл алгоритма при каждом значении параметра цикла.

В качестве иллюстрации применения оператора цикла FOR...TO...DO рассмотрим решение с его помощью предыдущей задачи, где на экран несколько раз выводится слово "ЦИКЛ".

Program Primer;

Uses Crt;

Var i:integer;

TextColor(Yellow); TextBackGround(Blue);

ClrScr;

FOR i:=1 TO 5 DO Writeln('ЦИКЛ');

Приведем еще один пример использования оператора цикла с параметром. В этом примере с клавиатуры вводится целое число N, после чего вычисляется сумма всех целых чисел от 1 до N.

Program Primer;

Uses Crt;

Var i,N,S:integer;

TextColor(Green); TextBackGround(Cyan);

ClrScr;

Write('N= '); Readln(N); {C клавиатуры ввели целое число в переменную “N”}

S:=0; {Задали начальное значение суммы}

FOR i:=1 TO N DO S:=S+i; { во время каждого из повторов значение суммы "S" увеличивается }

{ на новую величину счетчика "i" }

Writeln('S= ',S:6);

В этой программе оператор S:=S+i выполняется N раз, при различных значениях параметра цикла i.

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

FOR i:=B DOWNTO A DO оператор;

где i, A и B имеют прежний смысл. Отличие от предыдущего варианта цикла в том, что в операторе цикла типа FOR...DOWNTO...DO шаг наращивания параметра равен -1, при этом начальное значение счетчика повторов B больше конечного значения A.

Проследим, как изменится предыдущий пример при нисходящем изменении значения параметра цикла:

Program Primer;

Uses Crt;

Var i,N,S:integer;

TextColor(Red); TextBackGround(White);

ClrScr;

Write('N= '); Readln(N);

S:=0; {начальное значение суммы}

FOR i:=N DOWNTO 1 DO S:=S+i;

Writeln('S= ',S:6);

Для операторов цикла с параметром существуют некоторые ограничения:

- нельзя задавать шаг изменения значения параметра, отличный от 1 или -1;

- не желательно изменять внутри цикла значения параметра цикла, начальное и конечное значения параметра;

- входить в цикл можно только через его начало, а выходить - либо при исчерпании значений параметра цикла, либо при выполнении оператора перехода по метке, расположенной вне данного цикла.

Пример 1. Дано натуральное число n, действительное число x. Вычислить

 

Алгоритм решения задачи:

1) ввести данные - количество слагаемых n и число x;

2) присвоить переменной pr, в которой будем хранить степени sin x, значение 1; S := 0;

3) присвоить параметру цикла значение 1;

4) если значение параметра цикла меньше n, перейти к следующему пункту, иначе к п. 9;

5) вычислить очередную степень sin x;

6) добавить вычисленное значение к сумме;

7) увеличить параметр цикла на 1;

8) перейти к п.4;

9) вывести на печать сумму S;

10) конец.

 

Program Summa; {Программа вычисления суммы степеней sin x}

Var S, X, Pr : Real;

N, I : Integer;