Цикл с предусловием WHILE. Циклы Цикл с предусловием определение

Структура цикла с предусловием состоит из логического элемента проверки условия Р и функционального блока S, называемого телом цикла. Она имеет вид:

Цикл с предусловием выполняется так: сначала проверяется условие (отсюда название - цикл с предусловием), т.е. вычисляется значение логического выражения. Если оно истинно, то выполняется тело цикла, и снова проверяется условие. Выполнение цикла завершается, когда значение логического выражения становится ложным. Для этого необходимо, чтобы в теле цикла существовала команда, которая влияла бы на условие.

На языках программирования структура реализуется так:

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

Задача.

Вводить числа, пока не встретится 0. Определить сумму и количество введенных чисел.

Решение.


Блок-схема

Алгоритмический язык

алг сумма

начвещ s,x, цел k

¦ вывод "Введите число:"

¦ ввод х

¦ нцпока x<>0

¦ ¦ вывод "Введите число:"

¦ ¦ ввод х

¦ вывод "Сумма чисел=",s,"их количество=",k

Бейсик

INPUT "Введите число:"; x

DO WHILE x <> 0

INPUT "Введите число:"; x

PRINT "Сумма чисел="; s; "их количество=",k

Паскаль

var s,x:real; k:integer;

write("Введите число:");

while x<>0 do

write("Введите число:");

writeln("Сумма чисел=",s," их количество=", k);

#include



float x,s; int k;

printf("\nВведите число: ");

scanf("%e", & x);

printf("\nВведите число: ");

scanf("%e", & x);

printf("Сумма чисел= %e", s);

printf("их количество= %e",k);

Структура «цикл с постусловием» (до)

Структура цикла с постусловием также состоит из логического элемента проверки условия Р и функционального блока S – тела цикла.


Цикл с постусловием выполняется так: сначала выполняется команда (команды) в теле цикла, затем проверяется условие, т.е. вычисляется значение логического выражения. Если оно ложно, то снова выполняются команды в теле цикла, и так до тех пор, пока значение логического выражения не примет значение истина, после чего выполнение цикла завершается. Необходимо, чтобы в теле цикла существовала команда, влияющая на условие.

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

На языках программирования структура реализуется так.

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

В языке Си также нет оператора, реализующего данную структуру. Для реализации ее можно использовать оператор.

В общих чертах, сегодня узнаем о каждом из циклов в паскале поподробней и увидим как они задаются. Будем разбирать цикл while с предусловием , цикл for с параметром и цикл repeat - until с постусловием .

1. Цикл с параметром в Паскале - FOR

Цикл FOR задаёт определённое условие по которому программа будет работать до его выполнения, допустим нужно нам 5 (или n) раз зациклить программу, то это легко сделать с помощью данного цикла. У цикла FOR есть характерная черта - счетчик который обычно обозначается буквой i или j.

Внешний вид цикла с параметром в паскале:

for i:= 1 to n do // присваиваем i сначала одному, потом двум, трем, ..., n

После 1-го прохода переменной i присваиваем 1, после второго присваиваем 2 и так до тех пор, пока не дойдем до n. to - это до.. в порядке возрастания, также есть downto - до.. в порядке убывания.

Блок - схема цикла с параметром:

2. Цикл с предусловием в Паскале - WHILE

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

Структура цикла с предусловием:

WHILE DO begin end;

Логическое выражение, истинность которого проверяется вначале выполнения циклического оператора;

Любые выполняемые операторы языка.

Порядок выполнения цикла:

Пока условие истинно выполняется тело цикла. Как только условие становится ложно выполнение цикла прекращается.

Блок - схема цикла с предусловием:


Примечание: в прямоугольных блоках показано любое действие, которое выполняется в цикле или после него (шаг цикла), в овалах - начало или конец всей программы или её части. Главную роль в данной блок - схеме играет её центральная часть.

Пример:

Задача: вычислить сумму ряда 1+1.5+2+2.5+3+3.5+ .. + 30

program example-while;

Var sum:real; n:real; BEGIN sum:=0; n:=1; while n

3. Цикл с постусловием - Repeat - until.

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

Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, то есть можно выполнять несколько действий, поэтому служебные слова Begin и End не нужны.

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

Блок - схема цикла с постусловием:

Формат записи, структура цикла:
REPEAT UNTIL ;

Пример:

Program test2; Var b:Real; Begin b:=100; Repeat b:=b/2; Until b

Выводы:

1.Цикл с параметром используется переменная, называемая параметром цикла или счётчиком. Перед выполнением цикла параметру (счётчику) устанавливается начальное значение. После выполнения шага цикла значение параметра увеличивается на единицу. Цикл продолжается до тех пор пока параметр не достигнет своего конечного значения, которое указывается после to (downto).

2. Цикл с предусловием выполняется до тех пор, пока условие выполнения не станет ложным, и продолжается, если условие истинно.

3. Цикл с постусловием выполняется до тех пор, пока условие не станет истинно, если условие ложно, цикл продолжается.

ПЛАН-КОНСЕКТ УРОКА

ПО ИНФОРМАТИКЕ И ИКТ

В 10 КЛАССЕ ПО ТЕМЕ:

«Циклические алгоритмы. Циклы с предусловием и постусловием».

Предмет: Информатика и ИКТ

Тема урока: «Циклические алгоритмы. Циклы с предусловием и постусловием»

Тип урока: Изучение нового материала

Форма: урок-практикум

Цели урока

образовательные: Познакомиться с понятием «Циклы с предусловие и постусловием». Закрепить знания учеников об алгоритме.

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

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

Познавательные УУД: формируют и развивают компетентность в области использования ИКТ

(ИКТ-компетенции).

Регулятивные УУД: умеют соотносить свои действия с планируемыми результатами.

Коммуникативные УУД: умеют работать индивидуально и в группе.

Личностные УУД: понимают значимость подготовки в области информатики и ИКТ в условиях

развития информационного общества.

Средства обучения: проектор, персональный компьютер, специализированное программное обеспечение (среда программирования «PascalABC»).

Ход урока

1. Организация начала урока

Здравствуйте. Сегодня я, буду вести уроки «Информатики и ИКТ». Приветствую обучающихся, проверяю их готовность к уроку. Обучающиеся приветствуют друг друга.

2. Проверка выполнения домашнего задания

Спрашиваю у них пройденный материал.

1. Что такое линейный алгоритм?

Линейный алгоритм или следование – это тип алгоритма, в котором последовательность действий не меняется в его процессе выполнения. Алгоритм , в котором команды выполняются в порядке их записи, то есть последовательно друг за другом, называется линейным.

2. Как реализуется линейный алгоритм?

В программе линейный алгоритм реализуется последовательным размещением операторов.

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

1) выкопать в земле ямку;
2) опустить в ямку саженец;
3) засыпать ямку с саженцем землей;
4) полить саженец водой.

3. Какая форма организации действий называется ветвлением?

Форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий, называется ветвлением.

4. Как оформляют алгоритм ветвления?

Логику принятия решения можно описать так:

ЕСЛИ <условие> ТО <действия 1> ИНАЧЕ <действия 2>

Примеры:

ЕСЛИ хочешь быть здоров , ТО закаляйся, ИНАЧЕ валяйся весь день на диване;
ЕСЛИ низко ласточки летают, ТО будет дождь, ИНАЧЕ дождя не будет;
ЕСЛИ уроки выучены, ТО иди гулять, ИНАЧЕ учи уроки.

3. Изучение нового материала

Тема наших уроков будет: «Циклические алгоритмы. Цикл с предусловием «Пока». Цикл с постусловием «До» ».

    Целью нашего урока является: «знакомство с понятием цикла и развитие умения решать различные задачи по данной теме».

Давайте теперь запишем что же такое цикл?

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

Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

Алгоритмическая структура «цикл» может быть зафик­сирована различными способами:

графически - с помощью блок-схемы;

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

Сегодня мы познакомимся с циклами с предусловием и постусловием.

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

На русском языке это звучит примерно так:

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

При использовании цикла с предусловием надо помнить следующее:

    значение условия выполнения цикла должно быть определено до начала цикла;

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

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

При выполнении оператора while определенная группа операторов выполняется до тех пор, пока определенное в операторе while булево условие истинно. Если условие сразу ложно, то оператор не выполнится ни разу.

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

Выполняется данный оператор так: сначала условие, стоящее после слова WHILE, проверяется на истинность. Если оно имеет значение TRUE, то выполняется оператор, стоящий после слова DO, затем условие проверяется вновь и т.д. Как только на очередном шаге условие не выполняется (значение выражения становится равным FALSE), то выполнение оператора цикла прекращается.

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

Если в цикле нам необходимо выполнять больше, чем один оператор, то применяется составной оператор, т.е. несколько операторов заключаются в операторные скобки BEGIN … END.

СЛАЙД (переключить)!!!

При построении программ со структурой цикла WHILE:

1) начальное значение логического выражения должно быть определено перед вхождением в цикл, т.е. перед WHILE;

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

3) логическое выражение в заголовке цикла WHILE, чтобы цикл закончился, должно принять значение FALSE.

Работа оператора While

Давайте рассмотрим первый пример:

В блок-схеме таблица умножения на 3 выглядит так:

Попробуйте сами составить таблицу умножения на 1, 2, 4, 5, 6, 7, 8 и 9. Как она будет выглядеть в виде блок-схемы? (ученики составляют таблицу умножения в виде блок-схемы).

Теперь давайте рассмотрим особенности этого цикла и запишем к себе:

Давайте теперь попробуем самостоятельно решить задачу в Turbo Pascal .

Решение задачи о выводе 10 целых чисел на экран с использованием цикла While do :

Задача:

Для решения данной задачи, давайте вспомним, что такое натуральный ряд чисел?

Натуральным рядом называется ряд из целых чисел начиная с 1. То есть, 1, 2, 3,…, и до какого-то числа N .

Решене данной задачи:

Задача:

Решение:

Program KOSHEY_vasilisa;

Var v,s:integer;

Begin

v:=18; {Возраст Василисы}

s:=27360; {Начальный капитал Кощея}

while s<30000 do

Begin

s:=s+33; {Каждый год Кощей становится богаче}

v:=v+1; {Каждый год Ваcилиса становится старше}

end;

writeln(" Василисе ",v," лет");

End.

Следующая задача, которую Вам предстоит самим решить дома, запишите задачу:

    Начав тренировки, лыжник в первый день пробегал 10 км. Каждый следующий день он увеличивал длину пробега на 10% от предыдущего дня. Определить в какой день он пробежит больше 20 км, в какой день суммарный пробег за все дни превысит 100км.

Давайте разберем, сколько переменных у нас будет и какого они типа? Переменных у нас всего 2, одна будет у нас для вычисления дневного пробега больше 20 км, а другая будет вычислять в какой день суммарный пробег за все дни превысит 100 км. Какого типа будут переменные? Дневной пробег будет типа integer (то есть целое числа), а вторая real (то есть вещественное число или число с запятой), так как у нас имеется 10%, то если его перевести в число, мы получаем 0,1. У нас будет в программе иметься два цикла, первый цикл для определения дня когда лыжник пробежит больше 20 км, а второй для нахождения дня, когда суммарный пробег за все дни превысит 100 км.

Теперь познакомимся со следующей разновидность циклов - это циклы с постусловием.

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

Иногда при решении задач возникает необходимость выполнить тело цикла хотя бы один раз, а потом, проверив условие, определить, повторять ли тело цикла еще раз. Эту задачу выполнит другой вид цикла – цикл Repeat.

repeat {повторяй}
{операторы}
until <условие>; {до тех пор, пока условие не будет истинным}

Данная конструкция читается так:

Рассмотрим работу цикла с постусловием:

Особенности цикла с постусловием:

Решим туже самую задачу теперь с помощью цикла с постусловием:

Сравним цикл с пред и постусловием:

Как я уже говорила:

Есть небольшое отличие в организации цикла repeat по сравнению с while: для выполнения в цикле repeat нескольких операторов не следует помещать эти операторы в операторные скобки begin ... end. Зарезервированные слова repeat и until действуют как операторные скобки.

Конструкция repeat ... until работает аналогично циклу while. Различие заключается в том, что цикл while проверяет условие до выполнения действий, в то время как repeat проверяет условие после выполнения действий. Это гарантирует хотя бы одно выполнение действий до завершения цикла.

А так же есть и общее в этих циклах:

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

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

Для решения следующей задачи следует вспомнить геометрическую прогрессию.

А теперь сама задача:

Все увидели задачу, которую нужно решить с использованием цикла с постусловием. Вы все видите, что имеется блок-схема, составленная с использованием цикла с предусловием. Давайте ее разберем детально, а затем я дам задание. Все мы видим, что блок-схема имеет начало, затем происходит ввод данных, где i =7, так как это сын под номером 7, так как он забрал два последних изумруда из сундука отца, поэтому мы q даем значение равное двум. Так как первый сын взял половину того, что было в сундуке, значит разность геометрической прогрессии равна двум, то есть r мы присваиваем значение равное двум. Как раз буква r и показывает разность геометрической прогрессии. Условие у нас будет тем, что пока у нас i >1 мы выполняем следующею последовательность действий, то есть i :=i -1, то есть это действие показывает, что номер следующего сына уменьшается на единицу. Затем мы вычисляем итый член прогрессии выполняя действие: q =q *r . Данная последовательность из двух действий будет выполняться до тех пор, пока условие i >1 не станет ложной, после чего произойдет вывод сколько всего изумрудов было в сундуке и программа закончится.

Выставление оценок и озвучивание их ученикам.

Спасибо за участие и активную деятельность. До новых встреч.

5. Домашнее задание

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

В чем сложность?: Заранее не определено и неизвестно, сколько цифр нужно убрать, т.е. сколько шагов необходимо сделать.
Как выполнить: Надо перестать отделять цифры, когда n = 0 , т.е. надо выполнять пока n > 0

Решение примера на Паскале:


Цикл while в Паскале применяется для создания повторений с неизвестным заранее их числом . Повторения () будут осуществляться, пока истинно некоторое условие .

Блок-схема, соответствующая циклу while в Паскале:

while условие do {Пока условие истинно выполняется оператор} оператор;

  • Здесь оператор, стоящий после служебного слова do , образует тело цикла и будет выполняться, пока значение "условия" равно true (истина).
  • Если операторов должно быть несколько, тогда необходимо применять .
  • Условие пересчитывается каждый раз при входе в цикл.
  • Непосредственно условием цикла while может быть переменная или .
  • Операторы тела цикла while выполнятся только в том случае, если условие будет истинно, если условие ложно — они игнорируются, и программа продолжается с тех операторов, которые стоят уже после конструкции. Таким образом, это существенное отличие цикла с предусловием от .

Рассмотрим использование цикла while в Паскале на решенном примере:

Пример: Печатать «ноль» указанное количество раз

Показать решение:

1 2 3 4 5 6 7 8 9 10 var i, n: integer ; begin write ("kolichestvo znakov" ) ; readln (n) ; i: = 1 ; while i<= n do begin {составной оператор} write (0 ) ; i: = i+ 1 end ; end .

var i,n:integer; begin write ("kolichestvo znakov"); readln(n); i:=1; while i<=n do begin {составной оператор} write(0); i:=i+1 end; end.

Задача 3. Ввести целое число и найти сумму его цифр.
Пример: Введите целое число: 1234 Сумма цифр числа 1234 равна 10.

  • Можно использовать сложные условия:
  • Задача 4. Вычислять с использованием цикла while квадратные корни из чисел 900, 893, 886, 879 и т.д. до тех пор, пока это можно делать.

    Детальный разбор работы цикла While в Паскале рассмотрен в видеоуроке:

    Пример:


    которые по модулю больше 0,001 :

    Алгоритм:




    Задача 5: Вычислить сумму элементов следующей последовательности с точностью 0,001 :

    Результат: S = 1.157

    Вложенные циклы в Паскале

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

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

    Рассмотрим пример:

    Пример: Вывести таблицу умножения, используя вложенные циклы в паскале.

    Показать решение:

    const n = 9; {размер таблицы} var i, j:integer; begin for i:=1 to n do {номера строк} begin for j:=1 to n do {номера столбцов} write(i*j:4); writeln; {переход на новую строку} end; end.

    Произведение в Паскале

    Точно также, как существует для сложения, для умножения в паскале тоже существует специальная конструкция:

    Произведение вычисляется по рекуррентному выражению:

    где P – промежуточные произведения

    Y — сомножители

    Рассмотрим пример вычисления факториала числа в Паскале с использованием цикла while .

    Пример цикла While в Паскале для вычисления факториала 10! (10!=1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 )

    1 2 3 4 5 6 7 8 9 10 11 12 var fact, n : integer ; begin fact : = 1 ; {начальное значение факториала =0! } n : = 1 ; {начальное значение для условия } while n<= 10 do {условие } begin {начало тела конструкции с составным оператором } fact : = fact* n; {вычисление факториала n! } n : = n + 1 {n должно меняться в теле конструкции} end ; {конец тела цикла } writeln (’10 != ’, fact) ; {вывод результата расчета } end .

    var fact, n: integer; begin fact:= 1; {начальное значение факториала =0! } n:= 1; {начальное значение для условия } while n<=10 do {условие } begin {начало тела конструкции с составным оператором } fact:= fact*n; {вычисление факториала n! } n:= n + 1 {n должно меняться в теле конструкции} end; {конец тела цикла } writeln(’10!= ’,fact); {вывод результата расчета } end.

    Здесь необходимо обратить внимание на то, что присваивание n:= 1 стоит до цикла, если этого не сделать, то условие будет работать некорректно, так как переменная n будет пуста.

    Программа возведения в степень числа в Паскале

    Для начала уточним, что есть . Но мы не будем ее использовать, а разберем алгоритм решения задачи возведения в степень.

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

    Таким образом, возведение числа n в степень d можно выразить так:
    n d = n 1 * n 2 * n 3 * … * n d , где нижние индексы просто указывают очередное по счету число n .

    Еще необходимо учесть следующее:

    • число в нулевой степени равняется 1
    • если показатель степени отрицателен, т.е. d n d = 1 / (n 1 * n 2 * n 3 * … * n d)

    Т.е., решая программу на Паскале, учитываем:

    • в программе на языке Паскаль количество итераций (повторений) цикла while должно быть равно показателю степени числа ;
    • если показатель степени - отрицательное число, то нужно впоследствии единицу разделить на результат.

    Задача 6. Вычислить в Паскале степень числа, используя цикл while .

    Когда в алгоритме некоторое действие нужно выполнить несколько раз, используются циклы. В программирование цикл - это многократное повторение определенных инструкций. Циклы состоят из заголовка и тела. Заголовок содержит в себе условия, которые определяют работу цикла, а тело – повторяющиеся действия. В ЯП Pascal есть три вида циклов:

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

    цикл с предусловием;

    цикл с постусловием.

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

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

    Цикл с параметром, известный также как цикл со счетчиком, используется при известном количестве повторений. Он имеет две формы записи:

    1. For <счетчик>:=< начальное значение> To <конечное значение> Do <тело цикла>;
    2. For <счетчик>:=<начальное значение> Downto <конечное значение> Do <тело цикла>;

    Счетчик – это переменная порядкового типа. Начальное и конечное значение должны быть того же типа, что и счетчик. Тело выполняется до тех пор пока условие истинно.

    Формы записи, представленные выше, отличаются словами To и Downto . Если Вы используете цикл с To, то значение счетчика с каждым шагом будет увеличиваться на единицу, а если с Downto, то уменьшаться. Из этого следует, что в первом варианте начальное значение не должно превышать конечное, во втором - верно противоположное. В программе ниже, указанное пользователем количество раз, будут выводиться символы.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    program for_primer;
    uses crt;
    var i, x: integer ;
    begin
    write (‘X=’ ) ;
    readln (x) ;
    for i:= 1 to x do
    write (#3 , #6 ) ;
    readkey;
    end .

    Здесь тело цикла не заключено в Begin-End, так как оператор всего один. Но если их будет больше, то операторные скобки обязательны. Стоит также отметить, что счетчик по выходу из цикла не будет иметь определенного значения, но если цикл закончиться раньше положенного, то счетчик сохранит последнее, записанное в него значение.

    While – цикл с предусловием

    Оператор While – начинает описание цикла с предусловием. Такой вид цикла нужен, в тех алгоритмах, где число повторений неизвестно заранее. В общем виде он выглядит так:

    While <выражение> Do <тело цикла>;

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

    Пример программы написанный с использованием цикла While:

    В данном коде использовался составной оператор Begin-End, так как операторов в теле цикла несколько.

    Repeat – цикл с постусловием

    Главной особенностью цикла с постусловием (часто встречается название: цикл-ДО) является выполнение его тела минимум один раз. Это связано с тем, что условие записывается в конце и соответственно вначале выполнится тело, а затем провериться условие. Формально он выглядит так:

    <тело цикла>

    Until <условие>

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12