Различия между циклом - 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 операторы, составляющие тело цикла могут вообще не выполняться ни одного раза.