Цикл с предусловием
Количество шагов цикла заранее не определено и зависит от входных данных задачи. В данной циклической структуре сначала проверяется значение условного выражения (условие) перед выполнением очередного шага цикла. Если значение условного выражения истинно, исполняется тело цикла. После чего управление вновь передается проверке условия и т.д. Эти действия повторяются до тех пор, пока условное выражение не примет значение ЛОЖЬ. При первом же несоблюдении условия цикл завершается.
а
б
Рисунок – Блок-схема цикла с предусловием
Блок-схема данной конструкции представлена на рисунке двумя способами; с помощью условного блока а и с помощью блока границы цикла б.
Особенностью цикла с предусловием является то, что если изначально условное выражение ложно, то тело цикла не выполнится ни разу.
Цикл с постусловием
Как и в цикле с предусловием, в циклической конструкции с постусловием заранее не определено число повторений тела цикла, оно зависит от входных данных задачи. В отличие от цикла с предусловием, тело цикла с постусловием всегда будет выполнено хотя бы один раз, после чего проверяется условие. В этой конструкции тело цикла будет выполняться до тех пор, пока значение условного выражения ложно. Как только оно становится истинным, выполнение команды прекращается. Блок-схема данной конструкции представлена на рисунке двумя способами: с помощью условного б
локаа и с помощью блока управления б.
Рисунок – Блок-схема цикла с постусловием
Рекурсивный алгоритм
Рекурсивным называется алгоритм, организованный таким образом, что в процессе выполнения команд на каком-либо шаге он прямо или косвенно обращается сам к себе.
Простые типы данных: переменные и константы
Реальные данные, которые обрабатывает программа, – это целые и вещественные числа, символы и логические величины. Эти простые типы данных называют базовыми. Все данные, обрабатываемые компьютером, хранятся в ячейках памяти компьютера, каждая из которых имеет свой адрес. Для того чтобы не следить за тем, по какому адресу будут записаны те или иные данные, в языках программирования используется понятие переменной, позволяющее отвлечься от адреса ячейки памяти и обращаться к ней с помощью имени (идентификатора).
Переменная – именованный объект (ячейка памяти), который может изменять свое значение. Имя переменной указывает на значение, а способ ее хранения и адрес остаются скрытыми от программиста. Кроме имени и значения, переменная имеет тип, определяющий, какая информация находится в памяти. Тип переменной задает:
используемый способ записи информации в ячейки памяти;
необходимый объем памяти для ее хранения.
Объем памяти для каждого типа определяется таким образом, чтобы в него можно было поместить любое значение из допустимого диапазона значений данного типа. Например, тип «байт» может принимать значения от 0 до 255, что в двоичном коде (25510 =111111112) соответствует ячейке памяти длиной в 8 бит (или 1 байт).
В описанных выше алгоритмах все данные хранятся в виде переменных. Например, инструкция «Ввод двух чисел а, b» означает введение пользователем значений двух переменных, а инструкция «К=К+1» означает увеличение значения переменной К на единицу.
Если переменные присутствуют в программе, на протяжении всего времени ее работы – их называют статическими. Переменные, создающиеся и уничтожающиеся на разных этапах выполнения программы, называют динамическими.
Все остальные данные в программе, значения которых не изменяются на протяжении ее работы, называют константами или постоянными. Константы, как и переменные, имеют тип. Их можно указывать явно, например, в инструкции «К = К + 1» 1 есть константа, или для удобства обозначать идентификаторами: pi = 3,1415926536. Только значение pi нельзя изменить, так как это константа, а не переменная.
Сколько раз минимум может выполниться цикл с предусловием?
Разница между этими двумя формами записи заключается в следующем: цикл с послеусловием ВСЕГДА выполнится хотя бы один раз, вне зависимости от истинности или ложности условия. Цикл с предусловием может не выполниться ни разу, если условие ложно (в случае while) или истинно (until).
Какое минимальное количество раз выполняется тело цикла с постусловием do while ():?
do выражение while (условие); выражение Выражение, которое выполняется как минимум один раз и выполняется на каждом шаге цикла, пока условие истинно.
В каком цикле заранее известно количество повторений?
Циклические алгоритмы можно условно разделить на две группы. 1. Арифметический цикл, у которого заранее известно число повторений.
В чем отличие while и do while?
Цикл do while отличается от цикла while тем, что в do while сначала выполняется тело цикла, а затем проверяется условие продолжения цикла. Из-за такой особенности do while называют циклом с постусловием.
В чем разница между циклом while и do while?
Отличие цикла do-while от цикла while состоит в том, что цикл do-while выполняется по крайней мере один раз, даже если условие изначально ложно. В цикле while такое не произойдёт, так как тело цикла не отработается. Цикл do-while используется реже, чем while.
Какой цикл будет выполнен хотя бы один раз?
Цикл с постусловием — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз.
Сколько циклов в C++?
В языке C++ существует три вида циклов: цикл while c предусловием, цикл while с постусловием, цикл for .
Программирование циклов: циклы с заданным условием продолжения и окончания работы

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



Конспект урока «Программирование циклов: циклы с заданным условием продолжения и окончания работы»
· Циклы с предусловием.
· Цикл с постусловием.
Циклические алгоритмы – это алгоритмы, содержащие алгоритмическую конструкцию цикла. Цикл представляет собой последовательность действий, которые повторяются многократно. Действия, которые выполняются в цикле называются телом цикла.
Цикл с предусловием работает так, что в начале проверяется условие продолжения работы цикла, если оно выполняется, то выполняется тело цикла, затем снова проверяется условие цикла. Так продолжается до тех пор, пока выполняется условие цикла. Как только условие цикла перестаёт выполнятся, цикл завершает свою работу и начинают выполнятся команды, следующие после него. Если же условие цикла не выполняется изначально, то тело цикла не выполняется вообще.

Блок-схема цикла с предусловием
Посмотрим, как программируется цикл с предусловием на языке Pascal. Для этого есть оператор цикла с предусловием. Его запись начинается со служебного слова while. После него следует условие продолжения работы цикла, оно записывается по тем же правилам что и в условном операторе. После условия цикла через пробел следует служебное слово do. На русский язык эту строку можно перевести: «Пока выполняется условие – делай». На следующей строке на расстоянии одного пробела от служебного слова while следует тело цикла. Оно может содержать один или несколько операторов. Если тело цикла содержит больше одного оператора, оно записывается между логическими скобками, то есть служебными словами begin и end. После слова end следует точка с запятой.
while <условие> do
Описание цикла с предусловием
Задача: Написать программу, которая определяет, есть ли среди цифр натурального числа n цифра k. n и k вводятся с клавиатуры. 1 ≤ n ≤ 2 000 000 000.
Для решения задачи мы будем проверять правую цифру числа n, в случае если она не равна k мы будем убирать эту цифру. Так будет продолжаться до тех пор, пока мы не найдём цифру равную k или пока цифр не останется.
Напишем программу для решения задачи. Назовём её цифра. Для работы программы нам потребуются переменные n и k. Т. к. 1 ≤ n ≤ 2 000 000 000, зададим n принадлежащим к типу integer. Так как переменная k будет хранить всего одну цифру, то есть будет принимать значения в диапазоне от 0 до 9, для её хранения нам будет достаточно типа byte.
Напишем логические скобки. В начале тела программы будет следовать оператор writeln, который будет выводить на экран сообщение о том, что это программа поиска цифры k в натуральном числе n. После него будет следовать оператор write, выводящий на экран запрос на ввод n и оператор readln, считывающий его значение. Затем будут следовать те же операторы для k. Теперь запишем оператор цикла с предусловием while. Условием продолжения работы цикла будет: n > 0 and n mod 10 <> k. Запишем служебное слово do. Так как тело цикла будет содержать всего один оператор, логические скобки не требуются. Это будет оператор присваивания переменной n:=n div 10. После цикла запишем условный оператор, который проверяет условие n > 0. После служебного слова then в этом условном операторе будет следовать оператор write, выводящий на экран сообщение о том, что цифра k присутствует в числе n. После служебного слова else запишем оператор write, выводящий на экран сообщение о том, что цифра k отсутствует в числе n.
program cifra;
writeln (‘Программа, определяющая присутствие цифры k в натуральном числе n.’);
while (n>0) and (n mod 10<>k) do
n:=n div 10;
then write (‘k присутствует в n.’)
else write (‘k отсутствует в n.’);
Программа для решения задачи
Запустим программу на выполнение. Зададим n = 7085 и k = 8. Цифра 8 действительно присутствует в числе 7085.

Снова запустим программу на выполнение и зададим n = 123, а k = 4. В числе 123 действительно нет такой цифры.

Программа работает правильно. Задача решена.
Второй тип циклов, который мы сегодня рассмотрим, это циклы с постусловием. Этот цикл работает так, что в начале выполняется тело цикла, а затем проверяется его условие. Если условие цикла не выполняется, то вновь будет выполнено тело цикла, а затем снова будет проверено его условие. Так будет продолжаться до тех пор, пока не выполнится условие цикла. Как только условие цикла выполнится, он завершит свою работу и начнут выполняться команды, следующие после него. Отличительная особенность цикла с постусловием состоит в том, что тело цикла в любом случае выполнится хотя бы один раз, в отличии от цикла с предусловием.

Блок-схема цикла с постусловием
На языке Паскаль цикл с постусловием записывается с помощью оператора repeat. В его начале записывается служебное слово repeat. После этого служебного слова со следующей строки, на расстоянии одного пробела от него, следует тело цикла, состоящее из одного или нескольких операторов. После тела цикла на одном уровне со служебным словом repeat следует служебное слово until, после которого через пробел следует условие завершения работы цикла, а после него следует точка с запятой. Важно запомнить, что при записи цикла с постусловием служебные слова repeat и until выполняют роль логических скобок, то есть даже если тело цикла состоит из нескольких операторов, слова begin и end записывать не требуется.
Описание цикла с постусловием
Задача: Написать программу, которая выводит количество шагов необходимых для подтверждения гипотезы Коллатца, для заданного натурального числа n. Число n вводится с клавиатуры и находится на промежутке от 2 до 10 000. Для заданного промежутка чисел эта гипотеза уже подтверждена.
Рассмотрим гипотезу Коллатца. Она названа по имени математика, который её выдвинул. Возьмём любое натуральное число. Если оно чётное – разделим его на 2. Если же число нечётное – умножим его на 3 и прибавим 1. Повторим эти же действия над результатом и так далее… Гипотеза Коллатца заключается в том, что какое бы натуральное число мы не взяли изначально, через некоторое количество шагов в результате мы получим 1.
Составим блок-схему алгоритма решения задачи. В начале программы мы считаем число n, введённое пользователем. После этого переменной которая считает количество шагов – назовём её step – присвоим значение 0, так как ни одного шага ещё не было сделано. Запишем условный оператор, который будет проверять является ли число n чётным. Для того чтобы это проверить нужно вычислить остаток от его деления на 2. Если он равен нулю, то число является чётным, следовательно, мы должны разделить его на 2, то есть присвоить переменной n её собственное значение, делённое на 2. В противном случае, если остаток от деления n на 2 не равен нулю, то число является нечётным, и мы умножим его на 3 и прибавим к нему 1. После мы должны увеличить значение счётчика шагов – step на 1. Теперь запишем блок ветвления с условием подтверждения гипотезы, то есть n = 1. Если это условие не выполняется, нам необходимо выполнить ещё один шаг вычислений, то есть мы вернёмся к выполнению предыдущего блока ветвления. Если же n равно единице, то гипотеза подтверждена и цикл завершит свою работу. После завершения работы цикла, мы должны вывести на экран количество шагов – значение переменной step. На этом наш алгоритм завершит свою работу.

Блок-схема алгоритма решения задачи
Напишем программу по составленной блок-схеме. Назовём её collatz. Для работы программы нам потребуется 2 переменные: n и step, так как это натуральные числа и n находится на промежутке от 2 до 10 000 – они будут принадлежать к целочисленному типу integer.
Запишем логические скобки. Тело программы будет начинаться с оператора writeln, который будет выводить на экран поясняющее сообщение о том, что это программа расчёта количества шагов для подтверждения гипотезы Коллатца для натурального числа n. Дальше будет следовать оператор write, выводящий на экран запрос на ввод n. Теперь запишем оператор readln, считывающий значение n. Далее будет следовать оператор присваивания переменной step значение 0. Теперь запишем оператор цикла с постусловием repeat. И сразу запишем служебное слово until с условием завершения работы цикла – n = 1. Между служебными словами repeat и until запишем условный оператор if с условием: n mod 2 = 0 После служебного слова then запишем оператор присваивания n:=n div 2. После слова else запишем оператор присваивания переменной n её значения умноженного на 3 и увеличенного на 1. После условного оператора увеличим значение переменной step на 1. После цикла напишем оператор write, который будет выводит на Экран сообщение о том, что для подтверждения гипотезы Коллатца для заданного n потребовалось количество шагов равное значению переменной step.
program collatz;
writeln (‘Программа расчёта количества шагов для подтверждения гипотезы Коллатца для натурального числа n.’);
if n mod 2=0
then n:=n div 2
write (‘Для подтверждения гипотезы Коллатца для заданного n потребовалось ‘, step, ‘ шагов.’);
Программа для решения задачи
Запустим программу на выполнение и введём n=19. Гипотеза для числа 19 действительно подтверждается через 20 шагов.

Снова запустим программу на выполнение и введём n=3. Для числа 3 гипотеза действительно подтверждается через 7 шагов.

Программа работает правильно задача решена.
Важно запомнить:
· Цикл с предусловием на языке Pascal записывается так:
while <условие> do
· Тело цикла с предусловием выполняется, после проверки его условия, и повторяется до тех пор, пока выполняется условие цикла.
· Если условие цикла изначально ложно, то тело цикла с предусловием при работе программы не будет выполнено ни разу.
· Цикл с постусловием на языке Pascal записывается так:
· Тело этого цикла начинает выполняться до проверки его условия и повторяется до тех пор, пока не выполняется условие цикла.
11 Цикл While с предусловием — пример. Паскаль. Цикл с предусловием паскаль.
На компьютерных курсах Pascal вы научитесь программировать с нуля. Есть также интересные предложения для более опытных программистов. Этот процесс сопровождается руководством и постоянной практикой.
Циклы и все, что нужно знать об их параметрах
При программировании не все функции всегда выполняются один раз. Иногда поставленная задача требует их многократного повторения. Это справедливо как для Паскаля, так и для других языков.
В этом случае могут быть полезны специальные конструкции. Они называются петлями. В этой статье вы узнаете, как работают эти компоненты. А также — какими параметрами они обладают.
Цикл – это…
Цикл — это блок кода, который должен быть выполнен несколько раз во время создания приложения. Это иногда называют петлей.
Цикл — это последовательность утверждений, которая повторяет одну и ту же операцию снова и снова. Она выполняется до тех пор, пока программа не получит команду «стоп» или пока не будет достигнуто заранее определенное условие.
Существует также бесконечный цикл. Для него характерно постоянное повторение фрагмента утилиты, который будет длиться вечно. Условие обычно вызывается условными операторами и функциями, которые направляют код обратно к «исходному блоку». И так далее до бесконечности.
Составляющие
Когда вы пишете этот элемент, вы можете выделить его:
- Тело цикла. Оно содержит выражения, операторы и иные инструкции, которые нужно будет выполнять. Можно назвать тело описанием. Реализовывается тогда, когда значение прописанного изначально условия имеет параметр true.
- Заголовок. Он определяет, до каких пор или сколько раз тело выполняется.
Далее рассматриваются операторы цикла с параметрами. Они используются программистами для правильной работы исходного приложения. Однако каждая разновидность требует определенных навыков, умений и знаний.
Типы операторов цикла
В Паскале существует несколько типов этого элемента:
Ниже приведена схема каждого варианта. Визуальное представление помогает быстро понять, что означают отдельные блоки кода с циклами.
Блок с For
Имя цикла For — «со счетчиком». Он используется, когда количество итераций напрямую связано с тем, что происходит непосредственно в организме. Это именно то, что определяется поисковыми системами и технической литературой.
For полезен, когда количество итераций известно заранее:
- Значение, которое получает переменная счетчик. От него начинается отсчет итераций. Он происходит шаг за шагом. Данный параметр равняется +1 на каждом новом «этапе».
- Значение, которое будет отвечать за значение счетчика для остановки. Отражает количество итераций цикла.
Ниже приведены примеры форм представления, которые этот «оператор» может выражать в Паскале.
Если между начальным и конечным значениями переменной счетчика есть разница, то на каждом шаге значение увеличивается на +1. Если он ниже, то уменьшается на тот же параметр.
Счетчик — это переменная любого типа перечисления. Начальное и конечное значения могут быть не только значениями, но и целочисленными выражениями, отвечающими за возврат типов данных, совместимых с типами счетчиков.
Когда речь идет о параметрах и выполнении циклов в Pascal, стоит более подробно рассмотреть отдельные существующие схемы итеративных блоков. Эта информация поможет избежать путаницы при создании разовых крупных проектов.
Количество итераций в for задается перед выполнением цикла. Ниже приведены примеры того, как клиент отвечает за соответствующий параметр. Значение здесь присваивается переменной и затем используется в заголовке. На этом этапе становится ясно, сколько раз будет повторяться «петля»:
Работа с While
While — это цикл с параметром, схема которого показана выше. Это условный оператор. Заголовок содержит логическое выражение. Если возвращается true, тело выполняется. В противном случае это не так. Программа просто переходит к следующему разделу кода.
Стоит отметить следующие моменты:
- При выполнении тела ход программы снова возвращается к заголовку.
- Описание условия выполнения тела снова проходит стадию проверки.
- Выполнение осуществляется в «операторе» столько раз, сколько выражение логического характера возвращает себе «истину».
- В теле важно предусматривать все корректировки переменных, используемых в заголовках. Сделать это так, чтобы когда-нибудь наступала ситуация логической лжи. Если пренебречь этим моментом, произойдет зацикливание.
Поэтому While будет повторять код n раз, что заранее неизвестно. Определение происходит сразу после запуска контента. Ниже приведены примеры выполнения соответствующего оператора.
Когда используется
Цикл while используется, когда заранее неизвестно, сколько раз должно быть выполнено тело цикла (серия действий). Например, в случае, когда повторение цикла зависит от данных, которые пользователь вводит во время следующего прохождения цикла.
— Операторные скобки в теле цикла необязательны, если цикл содержит более одного действия.
В качестве условия можно использовать более сложное выражение, если возвращаемый результат имеет логический тип:
Условие выхода из while
Цикл while в Pascal выполняется до тех пор, пока логическое выражение в заголовке цикла истинно. Это:
- Если логическое выражение истинно — то делается следующий виток цикла.
- Если логическое выражение ложно — то цикл завершается, и программа выполняется далее (по инструкциям, которые записаны в коде ниже тела цикла).
Бесконечный циклы и как с ними бороться
Как возникают бесконечные циклы
В цикле for счетчику цикла (который является обязательным в таком цикле) передается заданное (и конечное) число значений, которое указывается в заголовке цикла for на основе правой и левой границ.
В цикле while при проверке логического условия возможно (в некотором смысле «опасно») застревание программы из-за бесконечного числа итераций цикла. Такая ситуация может возникнуть при следующих условиях (должны выполняться одновременно):
- Цикл while выполнился хотя бы один первый раз.
- Во всех последующих итерациях (повторах) тела цикла логическое выражение по-прежнему возвращает только true и никогда false.
Вот пример бесконечного цикла (небольшой программы, которая может быть выполнена):
где Повторять (повторять) до тех пор, пока (пока).
Обратите внимание, что этот оператор цикла подразумевает множество операторов в теле цикла; поэтому круглые скобки для начала и конца не нужны.
- Выполняется тело цикла (операторы, заключенные между словами repeat / until).
- Проверяется условие выхода из цикла.
- Если условие выполняется, то происходит выход из цикла к первому после repeat оператору.
- Если условие не выполняется, то алгоритм повторяется с пункта 1.
Пример. Напишите программу, которая вводит любое количество чисел и складывает их. При вводе 999 на экране отображается результат суммирования.
Чтобы решить эту задачу, необходимо сначала ввести число, а затем проверить его значение (проверить условие выхода из цикла). Для этого нам нужен цикл с мета-условием.
Коротко о главном
Операторы repeat используются, когда заранее неизвестно, сколько раз нужно повторить тело цикла, или когда шаг цикла не равен 1.
2. если используется конфигурация цикла с оценкой условий, это должно быть указано:
- начальное значение параметра цикла;
- условие, при котором действия должны выполняться;
- приращение параметра цикла.
В следующем уроке мы рассмотрим использование циклов в задачах с целыми числами.