В чем суть работы оператора repeat until
На предыдущем уроке было показано, как использовать оператор цикла с параметром For.
В этом уроке Вы познакомитесь с операторами цикла с условием.
Операторы цикла с условием используются тогда, когда число повторений тела цикла заранее неизвестно, а задано лишь условие повторения (или окончания) цикла.
Оператор цикла с условием содержит две части: условие и тело цикла. В зависимости от их взаимного расположения, различают две разновидности циклов с условием: циклы с предусловием и циклы с постусловием.
В языке программирования Паскаль для организации циклов с условием используются операторы While и Repeat.
Оператор цикла с предусловием While
Оператор while (пока) называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора, до операторов тела цикла. Если условие изначально не выполнится, то операторы тела цикла не выполнятся ни разу.
Формат оператора:
На русском языке это звучит примерно так:
пока выполняется условие делай
начало
<тело цикла>
конец
Алгоритм выполнения оператора:
- Проверяется условие выполнения цикла (вычисляется булевское выражение).
- Если условие выполняется (значение выражения равно true), то выполняются операторы, составляющие тело цикла.
- Если условие не выполняется (значение выражения равно false), то происходит выход из цикла и переход к первому после while оператора.
При использовании цикла с предусловием надо помнить следующее:
- Начальное значение переменной цикла нужно присвоить до начала выполнения цикла.
- Условие продолжения цикла должно зависеть от значения переменной цикла.
- Переменная цикла должна изменяться при каждом новом выполнении цикла, иначе цикл будет повторяться бесконечное число раз.
Пример. Составить программу для нахождения суммы 10 произвольных чисел, введенных с клавиатуры.
В данном примере перед циклом обнуляются значение счетчика введенных чисел k и их суммы sum.
В начале оператора while проверяется условие k < 10.
Если условие верно, то выполняется составной оператор в теле цикла. В этом операторе вводится значение очередного числа, и на это значение увеличивается значение суммы. После этого управление в программе вновь передается оператору цикла while, опять проверяется условие k < 10.
Как только значение станет равно 10, выполнение цикла завершиться, а управление будет передано на оператор, находящийся за словом end, т. е. первый оператор за границей while.
Оператор цикла с постусловием repeat
Оператор цикла repeat аналогичен оператору while, но отличается от него, во-первых, тем, что условие проверяется после очередного выполнения тела цикла (за это и называется циклом с постусловием) и таким образом гарантируется хотя бы однократное выполнение цикла, а во-вторых, тем, что выполнение условия (равенство булевского выражения константе true) является критерием не повторения, а прекращения цикла.
где Repeat (повторять), until (до тех пор).
Обратите внимание на то, что данный оператор цикла предполагает несколько операторов в теле цикла, поэтому операторные скобки begin и end не нужны.
- Выполняется тело цикла (операторы, заключенные между словами repeat / until).
- Проверяется условие выхода из цикла.
- Если условие выполняется, то происходит выход из цикла к первому после repeat оператору.
- Если условие не выполняется, то алгоритм повторяется с пункта 1.
Пример. Составить программу, которая будет вводить и суммировать любое количество чисел. Если будет введено число 999, на экран вывести результат суммирования.
Для решения этой задачи сначало нужно ввести число, а потом проверить его значение (проверить условие выхода из цикла). Для этого нужен цикл с постусловием.
Коротко о главном
1. Операторы While Repeat используют в тех случаях, когда заранее неизвестно число повторений тела цикла или шаг отличен от 1.
2. При организации циклов с проверкой условия обязательно нужно указать:
- начальное значение параметра цикла;
- условие, при котором действия должны выполняться;
- приращение параметра цикла.
На следующем уроке рассмотрим применение циклов в задачах на целочисленную арифметику.
Экспериментальный раздел работы
1. Решите эту задачу с использованием оператора While.2. Измените программу так, чтобы осуществлялся вывод всех делителей числа n.
Паскаль - Урок 6: Циклы while, for, repeat
Вчера мы узнали о понятии циклы в паскале в общих чертах, сегодня узнаем о каждом из циклов в паскале поподробней и увидим как они задаются. Будем разбирать цикл 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
Оператор цикла с предусловием выполняет действия заранее неизвестное число раз. Выход из цикла осуществляется, если некоторое логическое выражение или его результат окажется ложным. Так как верность логического выражения проверяется в начале, тело цикла может не выполнится ни одного разу.
Структура цикла с предусловием:
- логическое выражение, истинность которого проверяется вначале выполнения циклического оператора;
- любые выполняемые операторы языка.
Порядок выполнения цикла:
Пока условие истинно выполняется тело цикла. Как только условие становится ложно выполнение цикла прекращается.
Блок - схема цикла с предусловием:
Примечание: в прямоугольных блоках показано любое действие, которое выполняется в цикле или после него (шаг цикла), в овалах - начало или конец всей программы или её части. Главную роль в данной блок - схеме играет её центральная часть.
Задача: вычислить сумму ряда 1+1.5+2+2.5+3+3.5+ .. + 30
3. Цикл с постусловием - Repeat - until.
Этот оператор аналогичен оператору цикла с предусловием, но отличается от него тем, что проверка условия производится после выполнения тела (действий) цикла. Это обеспечивает его выполнение хотя бы один раз в отличие от ранее разобранных циклов.
Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, то есть можно выполнять несколько действий, поэтому служебные слова Begin и End не нужны.
Последовательность операторов, входящих в тело цикла выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until. Если условие не соблюдается, цикл завершается. В противном случае - тело цикла повторяется ещё раз, после чего снова проверяется соблюдение условия.
Блок - схема цикла с постусловием:
Формат записи, структура цикла:
Выводы:
1.Цикл с параметром используется переменная, называемая параметром цикла или счётчиком. Перед выполнением цикла параметру (счётчику) устанавливается начальное значение. После выполнения шага цикла значение параметра увеличивается на единицу. Цикл продолжается до тех пор пока параметр не достигнет своего конечного значения, которое указывается после to (downto).
2. Цикл с предусловием выполняется до тех пор, пока условие выполнения не станет ложным, и продолжается, если условие истинно.
3. Цикл с постусловием выполняется до тех пор, пока условие не станет истинно, если условие ложно, цикл продолжается.
Цикл Repeat..Until.
Как уже было сказано, циклы с условием делятся на циклы с предусловием и на циклы с постусловием. В этой статье рассказывается об использовании цикла с постусловием Repeat. Until для написания программ на языке Pascal.
Предположим, нужно написать программу, в которой мы будем вводить с клавиатуры числа, и подсчитывать их сумму.
Цикл с постусловием Repeat..Until.
В строке №3 запишем 2 переменные: «SUM» – для хранения суммы и «A» для хранения значения введенного нами числа.
В строке №6 обнуляем сумму. Каждый раз, когда в той или иной программе следует подсчитать сумму чего-нибудь, нужно сначала обнулить эту сумму.
В строке №7 указываем первоначальное значение для переменной «A».
При вводе положительных чисел, программа будет продолжать работать. Как только мы введем отрицательное число, цикл перестанет работать, и на экран выведится сумма всех введенных с клавиатуры чисел.
Дополнение к материалу.
Конструкция Repeat. Until подобна операторным скобкам Begin. End. Поэтому перед Until не обязательно ставить точку с запятой. Т. е. в конце строки №11 можно пропустить точку с зяпятой без каких-либо последствий для программы.
Следует сказать, что для решения одних и тех же задач программирования можно использовать как циклы с предусловием, так и циклы с постусловием. Выбор того или иного варианта во многом будет зависеть от ваших личных предпочтений.
Подготовка к олимпиадам по информатике
Задание 1. Вводится последовательность чисел, 0 - конец последовательности. Определить содержит ли последовательность хотя бы два равных соседних числа.
Задание 2. Дано натуральное число N. Определить К - количество делителей этого числа.
Вывести делители числа на экран.
Научимся устанавливать факт: является ли число N простым?
Считаем, что делители числа находятся в интервале от 2 до n Div 2, точнее в интервале от 2 до целой части Sqrt(n) - корня из числа N.
Читайте также: