В школьном курсе учащихся знакомят с двумя циклами: циклом с параметром и циклом с предусловием. Начинают с цикла с параметром. Представить и проверить его исполнение школьникам проще, так как в этом цикле команды повторяются конкретное, заранее известное число раз. Цикл с постусловием (repeatuntil) не рассматривают, т.к. команды в теле такого цикла исполняются до истинности условия, т.е. пока условие ложно – в точности наоборот по сравнению с циклом while. Это может запутать учащихся. Кроме того, любые повторяющиеся действия можно запрограммировать с циклом while.
Цикл – одна из базовых алгоритмических конструкций, представляет собой последовательность действий, которая выполняется до тех пор, пока выполняется некоторое условие. Саму последовательность повторяющихся действий называют телом цикла. Циклы позволяют записать действия в компактной форме.
Чтобы записать алгоритм с циклом на языке программирования, познакомимся с новым оператором – оператором цикла. В языке программирования Pascal имеются разновидности цикла: цикл с параметром ( for..to/downto);цикл с условием (while). Каждый из них имеет свои особенности.
Если число повторений цикла известно заранее, то используется цикл с параметром. Рассмотрим запись и работу этого оператора на примере.
Пример 1. Вычислить сумму первых 10 натуральных чисел.
program summa;
vari,sum:integer;
begin
sum:=0; {начальное значение суммы}
for i:=1 to 10 do {Дляпеременнойцикла i –
счетчика цикла от 1 до 10 выполнить.
Здесь i меняется от 1 до 10 с шагом 1}
sum:=sum+i; {эта строка – тело цикла.
Оно выполняется 10 раз. В переменной sum
накапливается сумма, к ней каждый раз
прибавляется очередное значение i}
writeln('Sum =',sum); {вывод результата}
end.
Теперь учитель обобщает сведения, представленные в примере. В общем виде оператор for может быть представлен в двух формах.Первая форма последовательно наращивает параметр цикла, увеличивая его каждый раз на 1:
For<параметр цикла>:= <начальное значение>
to<конечное значение>do<оператор>;
Кратко: For i:=N1 to N2 do <оператор>; (N1<N2)
Вторая форма последовательно уменьшает параметр цикла на 1:
For<параметр цикла>:= <начальное значение>
downto<конечное значение>do<оператор>;
Кратко: For i:=N1 downto N2 do <оператор>; (N1>N2)
Внимание школьников обращают на следующее: 1) не рекомендуется изменять параметр цикла в теле цикла с помощью команды присваивания. Это может привести к «зацикливанию» программы (бесконечному повторению тела цикла) либо к неверным результатам выполнения программы; 2) если в заголовке оператора for..to начальное значение параметра цикла больше конечного значения, то тело цикла не выполнится ни разу; 3) если в заголовке оператора for..downto начальное значение параметра цикла меньше конечного значения, то тело цикла не выполнится ни разу; 4) при выходе из цикла текущее значение параметра цикла равно конечному значению в операторе for..toи наоборот в операторе for..downto; 5) телом цикла может быть не один оператор, а группа операторов (составной оператор), которую обязательно надо заключать в операторные скобки begin… end.
На следующих уроках школьников знакомят со вторым циклом – циклом с предусловием.
Оператор for отлично выполняет свои функции, когда заранее известно, сколько раз действиядолжны повторяться. Но иногда в задачах число повторений тела цикла неизвестно и определяется в ходе решения задачи. В этом случае применяют цикл с условием. В языке программирования Pascalесть две разновидности цикла с условием: цикл с предварительным условием – условие цикла проверяется перед выполнением тела цикла;цикл с последующим условием – условие цикла проверяется после выполнения тела цикла.
Изучим оператор цикла с предварительным условием (с предусловием). Цикл с предусловием – это цикл, который повторяется до тех пор, пока условие выполняется (истинно). Блок-схема цикла с предусловием имеет вид: | ![]() |
Для реализации цикла с предусловием используется оператор While. В общем виде оператор While на языке программирования Паскаль может быть представлен так:
While<условие>do {заголовок цикла}
<оператор>; {тело цикла}
Если тело цикла состоит из нескольких операторов, их нужно заключить в операторные скобки begin…end. В этом случае цикл будет выглядеть так:
While<условие>do
Begin<оператор_1>;
<оператор_2>; ...
End;
Дата: 2019-02-19, просмотров: 662.