Как выглядит цикл с постусловием
Циклический вычислительный процесс (ЦВП) характеризуется повторением одних и тех же вычислений над некоторым набором данных. Числом повторений цикла управляет специальная переменная, называемая его счетчиком или управляющей переменной цикла. На счетчик накладывается условие, определяющее, до каких пор следует выполнять цикл.
Повторяемый блок вычислений называют телом цикла. В теле цикла должно быть обеспечено изменение значения счетчика, чтобы он мог завершиться. Если тело цикла состоит более чем из одного оператора, оно заключается в операторные скобки begin . end; . Однократное выполнение тела цикла называют его шагом.
Таким образом, для программирования цикла достаточно определить условие, управляющее числом его повторений и описать операторы, образующие тело цикла. С этой точки зрения, теоретически возможны всего два вида циклов — проверка условия либо предшествует выполнению тела цикла, либо происходит после него. Изобразим эти циклы в виде блок-схем (рис. 9.1).
В цикле с предусловием сначала проверяется условие, затем, в зависимости от того, истинно оно или ложно, либо выполняется тело цикла, либо следует переход к оператору, следующему за телом цикла. После завершения тела цикла управление вновь передается на проверку условия. Естественно, предполагается, что в теле цикла было обеспечено некоторое изменение входящих в условие переменных — в противном случае произойдет зацикливание и программа «зависнет».

Рис. 9.1. Блок-схемы циклов с предусловием и постусловием
Для цикла с постусловием сначала выполняется тело цикла, затем управление передается на проверку условия. В зависимости от истинности или ложности условия, тело цикла выполняется повторно или же происходит переход к оператору, следующему за телом цикла. Всё, сказанное о возможном зацикливании для цикла с предусловием, справедливо и для цикла с постусловием.
Исходя из приведенных блок-схем, очевидно основное различие двух циклов: цикл с постусловием гарантированно выполняется хотя бы раз, а цикл с предусловием может не выполняться ни разу, если условие сразу же окажется ложным.
В языке Паскаль реализованы оба вида циклов. Цикл с предусловием имеет следующий общий вид:
while логическое_выражение do begin
Работу цикла можно описать словами: «пока логическое выражение истинно, повторяется тело цикла».
Логическое выражение строится по правилам, изученным в гл. 7. Тело цикла могут образовывать любые операторы Паскаля. Если в цикле находится всего один оператор, операторные скобки, показывающие начало и конец тела цикла, можно не писать.
Общая запись цикла с постусловием следующая:
Работает цикл с постусловием следующим образом: «тело цикла повторяется до тех пор, пока логическое выражение не станет истинным». Обратите внимание, что, в отличие от while , цикл repeat в Паскале работает, пока условие ложно. Это отличие подчеркивается использованием ключевого слова until («до тех пор, пока не») вместо while («до тех пор, пока»). Кроме того, в виде исключения, тело цикла repeat , даже если оно состоит из нескольких операторов, можно не заключать в операторные скобки.
Довольно часто циклы взаимозаменяемы. Представим, например, что для каждого из значений переменной x = 1 , 2 , . , 20 , нужно выполнить некоторый расчет (математически этот закон изменения x можно записать как или ). Это можно сделать как в цикле while :
так и с помощью repeat :
Как видно из листинга, управляющей переменной x в обоих случаях присвоено начальное значение 1 , оба цикла изменяют значение x и, соответственно, условие цикла, оператором x:=x+1; , но для цикла repeat условие «перевернуто» («пока x не станет больше 20 «), а тело не заключено в операторные скобки.
Зачастую использование одного из циклов выглядит предпочтительней. Например, обработка ввода пользователя с клавиатуры удобней с помощью repeat (сначала пользователь должен нажать клавишу, затем следуют проверки и обработка).
Как выглядит цикл с постусловием
Цикл — это последовательность каких-либо действий, которая может повторяться многократно.
В цикле всегда выделяют:
тело цикла — это те действия, что многократно повторяются;
управляющую конструкцию , предназначенную для определения необходимости повтора цикла.
По расположению управляющей части циклы делятся на циклы с предусловием и на циклы с постусловием.
В цикле с предусловием вначале определяется, можно ли выполнять тело цикла, и затем, если можно, тело цикла выполняется. И так происходит до тех пор, пока не станет ложным некоторое условие в заголовке цикла.
Цикл с постусловием всегда выполняется хотя бы один раз. В нём вначале выполняется тело цикла, а затем делается проверка: надо ли снова повторять цикл.
В языке С# имеется четыре оператора цикла: for , while , do и foreach . Первые три вида цикла унаследованы из языков C/C++, а последний — foreach — является новым. Конечно, цикл можно организовать и искусственно, применяя операторы if и goto , но рекомендуется всегда использовать «настоящие» операторы цикла.
Цикл while
Слово while переводится как « пока ». То есть, пока истинно некое условие, повторять цикл.
Схематично этот цикл можно изобразить так, как показано на рисунке:
Как видим — это цикл с предусловием. Вначале проверяем истинность некоторого условия , а затем, если оно истинно, выполняем операторы (один или несколько), составляющие тело цикла.
Такой цикл не выполниться ни разу, если условие изначально ложно.
Условие — это любое выражение, имеющее результат логического типа, т.е. условие для операторов цикла записывается точно также, как для оператора ветвления if .
Формально оператор while можно записать так:
while( условие ) // Заголовок
операторы тела цикла
Тело цикла практически всегда необходимо оформлять как блок, так как оператор while редко содержит в своём теле только один оператор.
Алгоритм работы оператора прост:
Вычисляется значение условия в заголовке оператора.
Если оно истинно, то выполняются операторы тела цикла , а затем управление снова передаётся на заголовок. Если условие ложно, то оператор заканчивает работу. После этого будет выполняться оператор, следующий сразу же за оператором цикла.
Пример . Найти сумму квадратов первых n натуральных чисел.
Возможный текст программы:
public static void Main(string[] args)
Как выглядит цикл с постусловием
Как уже отмечалось выше, существует два вида циклов. Циклы, в которых число повторений известно до начала выполнения циклических действий, и циклы, когда число повторений неизвестно, но задано условие, по истинности или ложности которого циклические действия прекращаются. Циклы первого вида называют циклами с параметром (или циклами по количеству повторений), а циклы второго типа называют циклами по условию.
Примеры блок-схем цикла с параметром приведены на Рис. 1.22.
Рис. 1.22. Примеры циклов с параметром
Принципиальным отличием данных циклов друг от друга является изменение параметра цикла. В первом случае параметр цикла изменяет свое значение от начального до конечного с шагом +1, а во втором с шагом -1. Проследить за изменением параметра цикла в первом и во втором случае можно на компьютерной анимации. Заметим, что в некоторых языках программирования допускается изменения значения параметра цикла не только со значениями +1 и -1, но и с произвольным шагом. Для сокращения записи блок-схемы цикла с параметром иногда применяют следующую фигуру блок схемы (рис. 1.23).
Рис. 1.23. Блок-схема цикла с параметром
Принцип работы цикла с параметром рассмотрим подробнее в следующем разделе ресурса.
Циклы по условию бывают двух основных видов: циклы с предусловием и циклы с постусловием. В циклах с предусловием условие выхода из цикла проверяется всякий раз перед выполнением цикла. В циклах с постусловием сначала выполняются инструкции тела цикла, затем проверяется условие продолжения цикла. Блок-схемы циклов с предусловием и с постусловием показаны на Рис. 1. 24.
Цикл с предусловием
Цикл с постусловием
Рис. 1.24. Блок-схемы циклов с предусловием и с постусловием
Тело цикла с предусловием расположено перед проверкой условия и выполняется до тех пор, пока условие не станет истинным. Очевидно, что вне зависимости от значения условия тело такого цикла один раз всегда выполняется.
Как видно на блок-схеме, тело цикла с предусловием располагается после проверки условия и выполняется до тех пор, пока условие истинно. В этом случае возможна ситуация, когда тело цикла не выполнится ни разу.
Информатика. 10 класс (Повышенный уровень)
Для записи оператора цикла с предусловием используется команда while. Формат команды:
while . Формат команды:
Условие в записи оператора цикла может быть простым и составным. Фигурные скобки могут быть опущены, если тело цикла состоит из одной команды.
Пример 5.1. Написать программу, которая определит количество цифр в натуральном числе n.
Этапы выполнения задания
I. Исходные данные: n (заданное число).
II. Результат: k — количество цифр в числе.
III. Алгоритм решения задачи.
1. Ввод исходных значений.
2. Начальное значение переменной k = 0.
3. Чтобы посчитать количество цифр в числе, будем делить число на 10 до тех пор, пока число больше 1. Поскольку условие продолжения работы неизвестно, то будем использовать цикл while .
4. В цикле будем уменьшать число n в 10 раз и увеличивать значение k на 1.
5. Вывод результата.
Цикл while работает до тех пор, пока условие цикла истинно. Для того чтобы цикл завершил свою работу, в теле цикла должны быть команды, выполнение которых приведет к тому, что условие цикла станет ложным. Если таких команд нет, цикл выполняется бесконечно. Такую ситуацию называют зацикливанием. В случае зацикливания нужно прервать выполнение программы. В Code::Blocks для этого можно использовать кнопку .
using namespace std ;