Операторы цикла задают повторное выполнение определенных операторов.
Если число повторений заранее известно, то подходящей конструкцией является оператор for. В противном случае следует использовать операторы while или repeat.
Операторы цикла с последующим условием (REPEAT)
В операторе цикла repeat выражение, которое управляет повторным выполнением последовательности операторов, содержится внутри оператора repeat.
REPEAT Внутренний оператор; UNTIL логическое выражение;
Результатом выражения должен быть результат булевского типа.
Операторы, заключенные между ключевыми словами repeat и until, выполняются последовательно до тех пор, пока результат выражения не примет значения True. Последовательность операторов выполняется по крайней мере один раз, поскольку вычисление выражения производится после каждого выполнения последовательности операторов.
Приведем примеры оператора repeat:
repeat K:=I mod J; I:=J; J:=K; until J=O;
repeat Write (‘введите значение (0..9):’); Readln (I); until (I >=0) and (I 9);
Операторы цикла с предварительным условием (WHILE)
Оператор цикла while содержит в себе выражение, которое управляет повторным выполнением оператора (который может быть составным оператором).
Программа,содержащая цикл с предусловием в Pascal
WHILE выражение DO BEGIN Внутренний оператор; END;
Выражение, с помощью которого производится управление повторением оператора, должно иметь булевский тип. Вычисление его производится до того, как внутренний оператор будет выполнен. Внутренний оператор выполняется повторно до тех пор, пока выражение принимает значение True. Если выражение с самого начала принимает значение False, то оператор, содержащийся внутри оператора цикла while, не выполняется ни разу.
Примерами оператора цикла while могут служить:
while Data[I] <> X do I:=I + 1;
while I > 0 do begin if Odd(I) then Z:=Z * X; I:=I div 2; X:=Sqr(X); end;
while not Eof(InFile) do begin Readln (InFile, Line); Process (Line); end;
Операторы цикла с параметром (FOR)
Оператор цикла for вызывает повторяющееся выполнение оператора (который может быть составным оператором), пока управляющей переменной присваивается возрастающая последовательность значений.
FOR управляющая переменная:=исходное значение TO конечное значение DO оператор
Если управляющая переменная пробегает значения от большего значения к меньшему, то форма записи имеет вид:
FOR управляющая переменная:=исходное значение DOWNTO конечное значение DO оператор
В качестве управляющей переменной должен использоваться идентификатор переменной, который обозначает переменную, объявленную локальной в блоке, в котором содержится оператор for. Управляющая переменная должна иметь порядковый тип. Начальное и конечное значения должны иметь тип, совместимый по присваиванию с этим порядковым типом.
Когда начинает выполняться оператор for, начальное и конечное значения определяются один раз, и эти значения сохраняются на протяжении всего выполнения оператора for.
Pascal Полный курс с нуля за 4 часа
Оператор, который содержится в теле оператора for, выполняется один раз для каждого значения в диапазоне между начальным и конечным значением. Когда оператор for использует ключевое слово to, значение управляющей переменной увеличивается при каждом повторении на единицу. Если начальное значение превышает конечное значение, то содержащийся в теле оператора for оператор не выполняется.
Когда в операторе цикла используется ключевое слово downto, значение управляющей переменной уменьшается при каждом повторении на единицу. Если начальное значение в таком операторе меньше, чем конечное значение, то содержащийся в теле оператора цикла оператор не выполняется.
Если оператор, содержащийся в теле оператора for, изменяет значение управляющей переменной, то это является ошибкой. После выполнения оператора for значение управляющей переменной становится неопределенным, если только выполнение оператора for не было прервано с помощью оператора перехода.
Если принять во внимание эти ограничения, то оператор
for V:=E1 to E2 do Body;
begin Temp1:=E1; Temp2:=E2; if Temp1 then begin V:=Temp1; Body; while V <> Temp2 do begin V:=Succ(V); Body; end; end; end;
где Temp1 и Temp2 — вспомогательные переменные, тип которых совпадает с основным типом переменной V и которые не встречаются в другом месте программы.
Приведем примеры оператора цикла for:
for I:=2 to 63 do if Data[ I ] > Max then Max:=Data[ I ];
for I:=1 to 10 do for J:=1 to 10 do begin X:=0; for K:=1 to 10 do X:=X + Mat1[I, K] * Mat2[K, J]; Mat [I, J]:=X; end;
Источник: itteach.ru
Языки программирования и цикл For: примеры приложений
Существуют разные языки программирования, но все они состоят из примерно одинаковых компонентов. Огромную роль при составлении программы играют циклы.
В данной статье будет рассказано о том, как использовать циклы на практике. Будут приведены примеры приложений с наиболее популярным, удобным и полезным счетчиком – for. Соответствующие данные пригодятся и новичкам, и опытным разработчикам.
Цикл – это…
Цикл – программный код, который позволяет повторять те или иные части приложения многократно. Предусматривает:
Как только последняя инструкция тела достигнута, поток повторения делает возврат к заголовку. Условие будет проверяться снова и снова. В зависимости от полученного результата программы ведут себя тем или иным образом:
- повторяют то, что написано в теле;
- переходят к обработке выражения, написанного после всего соответствующего счетчика.
Большинство ЯП предусматривают три цикла для создания разнообразных приложений:
- со счетчиком – for;
- repeat (или do while) – с постусловием;
- while – с предусловием.
Выше – пример того, как работают соответствующие блоки кода в Pascal. Упор будет сделан на for.
Цикл While
С двумя остальными циклами (петлями) стоит разобрать на примере Pascal. Это – самый простой способ полноценно освоить соответствующее направление.
Первый тип петли – с предусловием. Для него используется оператор while. Здесь:
- в заголовке прописывается логическое выражение;
- если результат является «истиной», тело выполняется;
- когда «на выходе» получается false, приложение пропускает петлю и переходит к следующей операции.
Когда тело выполнено, программа возвращается к заголовку и проверяет условие выполнения цикла. Выполняется тело столько раз, сколько раз логическое выражение получит значение true. Именно поэтому для корректной работы программного обеспечения необходимо предусмотреть изменение переменной, используемой в заголовке. Программисту требуется обеспечить условие выполнения для логической лжи. В противном случае возникнет зацикливание (или бесконечная петля).
Оператор Repeat
Предыдущий вариант может ни разу не выполниться приложением. Такое встречается, если соответствующее логическое выражение возвращает с первого раза «ложь». Но подобный вариант развития событий не всегда приемлем на практике.
Иногда возникает ситуация, при которой тело должно выполниться хотя бы один раз, независимо от возвращенной переменной. Для этого нужно использовать цикл с постусловием – repeat.
- логическое выражение пишется после тела;
- если результат – true, то программа выходит из петли;
- при возврате false происходит обработка написанной в соответствующем блоке кода информации.
Выше – пример того, как будет выглядеть соответствующая петля на практике в Pascal. Это – элементарное приложение, которое посчитает сумму чисел.
Цикл For
For – это петля со счетчиком. Является достаточно распространенным на практике. Встречается в самых разных языках программирования. Далее будут приведены примеры из Pascal, C++ и C#. Каждый ЯП рассмотрен отдельно.
Главное запомнить, что for – это петля, которая будет выполняться определенное количество раз. Соответствующий код будет последовательно выполнять одни и те же манипуляции столько, сколько это потребуется.
В Pascal
For в Pascal использовать не слишком трудно. Это – петля со счетчиком. Итерации цикла будут определяться разницей между первым и вторым значением + единица. Тело здесь не должно включать в себя выражения, которые могут внести в счетчик корректировки.
Pascal предусматривает две формы представления:
- For счетчик := начало to конец do тело;
- For счетчик := начало downto конец do тело.
Если поставить to между концом и началом в for i, каждый шаг петли увеличивается на +1, а downto уменьшает его на -1.
Счетчик – переменная любого перечисляемого типа. Начальные и конечные значения здесь представляются не только конкретным значением, но и выражением, которое возвращает совместимые с типом счетчика виды информации.
В for итерации цикла (их количество) известно до того, как программа будет выполнена. Можно сделать так, чтобы этот момент регулировал пользователь.
Выше – пример именно такого варианта. Значение будет присваиваться той или иной переменной, после чего оно применяется в заголовке.
В C++
C++ — язык программирования, который должен освоить каждый разработчик. Особенно это касается тех, кто серьезно планирует заниматься созданием контента. Здесь тоже есть for.
Он позволяет повторять одни и те же операции несколько раз. Сколько – известно до окончательного запуска приложения. Ниже – синтаксис «петли».
Здесь необходимо запомнить следующее:
- — создается переменная (счетчик цикла for), после чего задается ее первоначальное значение. Соответствующая команда будет выполняться до того, как рассматриваемый блок кода запустится. Это – первоначальное значение счетчика.
- — напоминает условие оператора if. Здесь прописывается логическое выражение, которое будет обрабатываться приложением. В зависимости от результата меняется алгоритм действий. Если «на выходе» получается логическая «истина» — петля выполняет прописанный внутри блока код.
- — инструкция, выполняемая в конце итерации. Переводит счетчик for на новое значение.
- — код, необходимый для выполнения при «истинности» на той или иной итерации. То, что будет выполняться в ходе обработки запроса.
А вот – пример программы, которая найдет произведение цифр от 1 до n (факториал).
Выше – результат обработки кода.
В C#
C# тоже стал использоваться достаточно часто, поэтому на него стоит обратить внимание. У него есть цикл for. Он напоминает по синтаксису C++:
Тоже необходим для многократного повторения тех или иных операций. Работает так:
- В for объявляются три переменные: счетчик, итератор и условие.
- Объявление счетчика осуществляется всего один раз. Делается это в самом начале. Он инициализируется после того, как будет объявлен.
- Происходит проверка условия (это – булево выражение). Результат – true или false.
- Если итог – «истина», выполняется тело. Далее – инициализируется итератор (изменяется значение соответствующей переменной), а условие проходит повторную проверку. Процедура не заканчивается, пока не произойдет возврат false.
Если же при выполнении цикла возвращается логическая «ложь», петля будет завершена.
Выше – пример кода в C#, демонстрирующий вычисление суммы первых n натуральных чисел.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!
Источник: otus.ru
Урок 4 — Циклы for, while, repeat . Until в языке Паскаль
Алгоритм циклической структуры — это алгоритм, в котором происходит многократное повторение одного и того же участка программы. Такие повторяемые участки вычислительного процесса называются циклами. Программа циклической структуры содержит один или несколько циклов. Различают детерминированные циклы с заранее известным числом повторений и итерационные циклы, в которых число повторений заранее неизвестно. Изменяющаяся в цикле переменная называется параметром цикла.
Для организации цикла необходимо выполнить следующие действия:
1) задать перед циклом начальное значение параметра цикла;
2) изменять параметр перед каждым новым повторением цикла;
3) проверять условие повторения цикла;
4) управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из него по окончании.
В языке Паскаль существует 3 вида циклов:
1) цикл с параметром или цикл типа for,
2) цикл с предусловием или цикл типа while,
3) цикл с постусловием или цикл типа repeat . until.
В цикле типа for число повторений известно заранее, в циклах типа while и repeat . until число повторений цикла заранее неизвестно, производится проверка условия повторения цикла: в цикле типа while — перед циклом, в цикле типа repeat . until — после его окончания.
В циклах типов for и while повторяющяся часть (тело цикла) состоит из одного оператора, если требуется выполнить в цикле несколько операторов, они заключаются в операторные скобки begin . end, образуя составной оператор. В цикле типа repeat . until тело цикла помещается между зарезервированными словами языка (лексемами) repeat и until, операторные скобки не требуются, в названии цикла его тело условно обозначается тремя точками.
С помощью цикла типа for удобно находить суммы, произведения, искать максимальные и минимальные значения и т.п. При нахождении суммы некоторой переменной, например S присваивается значение 0, затем в цикле к этой переменной прибавляется соответствующий член заданной последовательности. При нахождении произведения переменной присваивается значение 1, затем в цикле эта переменная умножается на общий член последовательности.
Пример цикла типа for
Вычисление n чисел Фибоначчи:
F1=1; F2=1;…; Fn=Fn-1+Fn-2 ,
например F3=F2+F1=1 + 1 = 2; F4 = 2 + 1 = 3 и т.д.
var x, y, z, i, n : integer;
writeln (‘Введите n’); read (n);
Источник: studfile.net