Что такое тело цикла
Перейти к содержимому

Что такое тело цикла

  • автор:

Что такое тело цикла

Циклический процесс, или просто цикл, – это повторение одних и тех же действий. Последовательность действий, которые повторяются в цикле, называют телом цикла. Один проход цикла называют шагом, или итерацией. Переменные, которые изменяются внутри цикла и влияют на его окончание, называются параметрами цикла.

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

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

В языке Free Pascal для удобства программиста предусмотрены три оператора, реализующих циклический процесс: while, repeat… until и for.

Оператор цикла с предусловием while .. do

Оператор, реализующий этот алгоритм в языке Free Pascal, имеет вид:

while выражение do оператор;

здесь while .. do – зарезервированные слова языка Free Pascal, выражение – логическая константа, переменная или логическое выражение, оператор – любой допустимый оператор языка.

Работает оператор while следующим образом. Вычисляется значение выражения. Если оно истинно (True), выполняется оператор. В противном случае цикл заканчивается, и управление передается оператору, следующему за телом цикла. Выражение вычисляется перед каждой итерацией цикла. Если при первой проверке выражение ложно (False), цикл не выполнится ни разу.

Если в цикле надо выполнить более одного оператора, необходимо операторы, которые должны выполняться в теле цикла, заключить в операторные скобки begin . end:

Что такое тело цикла

Зачастую в задаче нужно повторять одни и те же действия много раз. Повтор некоторого фрагмента программы несколько раз называется циклом. Рассмотрим следующий пример.

Вывести на экран квадраты чисел от `1` до `100`.

Очевидно, что для решения этой задачи нам придётся `100` раз выполнять команду вывода соответствующего числа на экран. Писать `100` операторов вывода как-то не хочется (слишком трудоёмко), поэтому будем знакомиться с операторами цикла. В языке Pascal существует три оператора цикла: for, while, repeat . Начнём с цикла for . Этот оператор цикла реализует следующую идею: «Повторять некоторую последовательность команд `N` раз, где `N` известно до начала повторения». Познакомимся с синтаксисом этого оператора.

for имя переменной := начальное значение to конечное значение do оператор

В этой конструкции переменная, стоящая после слова for , называется параметром или счётчиком цикла, а оператор, стоящий после слова do , называется телом цикла. Начальное и конечное значения, по сути, являются константами или выражениями одного типа со счётчиком.

Алгоритм выполнения цикла for следующий:

1) вычисляются начальное и конечное значения;

2) счётчику цикла присваивается начальное значение;

3) значение счётчика сравнивается с конечным. Если оно больше конечного, то выполнение цикла завершается и начинает выполняться следующий оператор программы, в противном случае переход к пункту 4;

4) выполняется тело цикла;

5) значение счётчика увеличивается на `1`;

6) переход к пункту 3.

В качестве примера рассмотрим решение задачи, поставленной выше. В качестве счётчика будем использовать переменную `i`.
var i:integer;
begin
for i:=1 to 100 do write(i*i,’ ‘);
Readln
end.
Согласитесь, что решение фактически в одну строчку выглядит гораздо приятнее, чем в `100` строк (если не пользоваться оператором цикла).

Необходимо сделать несколько замечаний по поводу цикла for .

1) Типы счётчика начального и конечного значений должны совпадать, при этом в настоящий момент из известных нам типов можно использовать только integer и boolean . Вещественный тип использовать нельзя.

2) Начальное и конечное значения вычисляются один раз до начала цикла (и после не перевычисляются). Рассмотрим пример.

i:=1; for i:=i to i do writeln(‘HI’);

Этот оператор цикла выполнится всего один раз, а не бесконечно много.

3) В теле цикла значение счётчика изменять нельзя. Так прописано в стандарте языка Pascal, и это требование поддерживается в системах семейства Delphi. Однако в системах семейства Borland Pascal значение счётчика изменять можно, что может приводить к непредсказуемым последствиям (поэтому будем считать, что независимо от системы значение счётчика изменять нельзя).

4) После завершения цикла значение счётчика не определено, то есть нельзя считать, что оно равно конечному значению или больше на единицу и пользоваться этим в дальнейшем алгоритме.

5) Тело цикла по грамматике должно состоять только из `1` оператора. Если же там по алгоритму должно быть несколько, нужно использовать составной оператор.

6) Можно слово to заменить на слово downto. В этом случае значение счётчика после каждого выполнения тела цикла будет уменьшаться на `1`, а выход из цикла произойдёт, когда значение счётчика окажется меньше, чем конечное.

Перейдём к знакомству с другими операторами цикла: while и repeat . Эти операторы реализуют следующие идеи: «Повторять некоторую последовательность команд пока выполняется некоторое условие» (цикл while ) и «Повторять некоторую последовательность команд до тех пор, пока не выполнится некоторое условие» (цикл repeat ). Познакомимся с синтаксисом оператора цикла while .

while условие do оператор.

После слова while должно быть логическое выражение (называемое условием), которое может принимать значение true или false . Оператор, стоящий после do , аналогично оператору for является телом цикла. Выполняется цикл while так:

1) вычисляется значение условия, если получилось true , то переход к пункту 2, иначе выход из цикла и переход на следующий оператор программы;

2) выполняется тело цикла;

3) переход к пункту 1.

Фактически оператор while является многократным применением оператора if с пустой веткой else . Аналогично оператору for , тело цикла должно состоять из `1` оператора. Однако в отличие от цикла for возможна ситуация, когда цикл будет выполняться бесконечное количество раз (зациклится). Например, while 2*2=4 do. . Что написать после do , совершенно не важно, важно, что оно будет выполняться, пока 2*2=4 , а это всегда так и никогда не изменится. Значит, чтобы избегать зацикливания, параметры условия должны быть переменными, например while x*x=4 do . . Хотя это тоже не гарантирует отсутствие зацикливания.

Осталось познакомиться с последним оператором цикла. Рассмотрим его синтаксис.
repeat
Оператор 1;
Оператор 2;
. .
Оператор N
until условие

Все операторы, написанные между repeat и until , являются телом цикла. Это выгодно отличает оператор repeat от других циклов – составной оператор здесь не требуется, а операторными скобками можно считать слова repeat и until . Работает этот оператор по следующему алгоритму:

1) выполняется тело цикла;

2) вычисляется значение условия. Если получилось true , то выход из цикла и переход к следующему оператору программы, в противном случае переход к пункту 1.

Отличительная особенность оператора цикла repeat заключается в том, что тело всегда выполняется, по крайней мере, один раз. Это нужно учитывать в задачах при выборе оператора цикла. Аналогично оператору while , цикл repeat может зациклиться, правда в случае, когда условие никогда не принимает значение true , например,

Тело цикла — что это такое в программировании

vedro-compota's picture

Тело цикла — это набор действий (программных операций), которые подразумеваются к повторению раз за разом при работе цикла.

При выполнении программы одно выполнение тела цикла называют витком этого цикла.

Примеры тела циклов

В качестве примером циклов в языках программирования можно рассматривать:

Key Words for FKN + antitotal forum (CS VSU):

  • Тело цикла. определение
  • что это такое

Что такое тело цикла

Цикл — это последовательность каких-либо действий, которая может повторяться многократно.

В цикле всегда выделяют:

тело цикла — это те действия, что многократно повторяются;

управляющую конструкцию , предназначенную для определения необходимости повтора цикла.

По расположению управляющей части циклы делятся на циклы с предусловием и на циклы с постусловием.

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

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

В языках С/С++ имеется три оператора цикла: for , while и do . Конечно, цикл можно организовать и искусственно, применяя операторы if и goto , но рекомендуется всегда использовать «настоящие» операторы цикла.

Цикл while

Слово while переводится как « пока ». То есть, пока истинно некое условие, повторять цикл.

Схематично этот цикл можно изобразить так, как показано на рисунке:

Как видим — это цикл с предусловием. Вначале проверяем истинность некоторого условия , а затем, если оно истинно, выполняем операторы (один или несколько), составляющие тело цикла.

Такой цикл не выполниться ни разу, если условие изначально ложно.

Условие — это любое выражение, имеющее результат логического или арифметического типа, т.е. условие для операторов цикла записывается точно также, как для оператора ветвления if .

Формально оператор while можно записать так:

while( условие ) // Заголовок

операторы тела цикла

Тело цикла практически всегда необходимо оформлять как блок, так как оператор while редко содержит в своём теле только один оператор.

Алгоритм работы оператора прост:

Вычисляется значение условия в заголовке оператора.

Если оно истинно, то выполняются операторы тела цикла , а затем управление снова передаётся на заголовок. Если условие ложно, то оператор заканчивает работу. После этого будет выполняться оператор, следующий сразу же за оператором цикла.

Пример . Найти сумму квадратов первых n натуральных чисел.

Возможный текст программы:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *