Различия между циклом - while и циклом – repeat

Цикл с последующим условием. Оператор repeat...until...

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

Оператор if ... then ... else

Оператор безусловного перехода goto

Лекция №5 Представления основных структур программирования: итерация, ветвление, повторение.

 

 

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

Оператор перехода имеет вид: goto <метка>. Здесь goto - зарезервированное слово (перейти на ... [метку]).

Метка в Турбо Паскале - это произвольный идентификатор, позволяющий именовать (помечать) некоторый оператор программы и таким образом ссылаться на него. Допускается в качестве меток (в том числе) использовать целые числа без знака.

Например:

goto 2341, goto 23, goto 1, goto bl1, goto mnk3, goto n56.

Любая метка должна быть описана в разделе описания меток, который обычно располагается в программе до начала раздела операторов:

label <список меток>.

 

Например: label 2341; label 1, 2; label bl1, 18, mnk.

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

1: writeln('Число не содержит цифру 2');

 

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

1: 25: a := b div 10;

 

Итак, оператор перехода изменяет последовательность выполнения операторов - они выполняются не в том порядке, как написаны в тексте программы.

 

Для реализации принимаемых решений на языке Паскаль могут быть использованы операторы if (если), then (тогда) и else (иначе).

После оператора if записывается условие, а после операторов then и else - команды, которые необходимо выполнить.

Перед оператором else точка с запятой не ставится.

Если после оператора then записано несколько команд, в нём устанавливаются операторные скобки:

 

begin

........

end;

 

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

Блок-схемы, изображающие условные операторы:

 

 

 

Циклы в математике - явление очень часто встречающееся.

Например, пока натуральные числа меньше 10, тогда надо суммировать их. Другими словами, мы находим сумму чисел от 1 до 10.

В этом примере повторяется сложение натуральных чисел, пока выполняется условие (числа меньше 10).

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

Цикл в программировании - это многократно выполняемая группа команд, часть программы.

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

На языке Паскаль возможны циклы с предусловием, которые организуются с помощью оператора: while (пока) ... do (выполнять) ...

Формат оператора: while <условие> do <операция>.

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

Если операция содержит не один оператор, а несколько, то их объединяют с помощью операторных скобок begin и end, например;

while <условие> do

begin

S1; S2; S3; ...

end;

 

В этом примере символами s1, s2, s3, ... обозначены операторы.

Действие цикла while ... do ... можно изобразить графически следующей схемой:

 

 

 

Оператор цикла с последующим условием (постусловием) похож на оператор цикла с предусловием, но условие вычисляется и проверяется после выполнения операторов, составляющих тело цикла.

Общий вид оператора цикла с постусловием такой:

repeat

s1; s2; s3; ..

until <условие>,

 

где s1, s2, s3, ... - операторы тела цикла; <условие> - логическое выражение.

Переводится: repeat - повторять, until - до тех пор пока.

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

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

В отличии от цикла while ... do, в цикле repeat ... until ... операторные скобки begin ... end могут не использоваться, хотя и использование их возможно. Оператор цикла repeat ... until. ... не требует операторных скобок begin ... end.

Действие цикла repeat...until...можно изобразить графически следующей схемой:

 

 

 

1) Оператор, находящийся в цикле while, повторяется до тех пор, пока условие истинно. Последовательность операторов, находящихся в цикле repeat, повторяется до тех пор, пока условие ложно.

Следовательно, в цикле while используется условие продолжения цикла, а в цикле repeat - условие окончания цикла.

2) В цикле while повторяется один оператор (несколько операторов надо объединять в составной оператор с помощью операторных скобок begin ... end), а в цикле repeat можно повторять несколько операторов без операторных скобок.

3) В цикле while сначала проверяется условие, а после этого в зависимости от значения условия выполняется или не выполняется оператор или группа операторов после слова do.

4) В цикле repeat последовательность операторов выполняется один раз, а после этого проверяется условие, т. е. эта последовательность всегда выполняется хотя бы один раз, а в цикле while операторы, составляющие тело цикла могут вообще не выполняться ни одного раза.