какая связка операторов является циклом с предусловием
Pascal | Лекция №4
Операторы циклов
Содержание:
Очень часто возникает необходимость выполнить один и тот же оператор (или группу операторов) несколько раз. Для этого в языке Pascal предусмотрены операторы циклов.
Циклом в программировании называют повторение одних и тех же действий (шагов). Последовательность действий, которые повторяются в цикле, называют телом цикла.
Существует несколько типов алгоритмов циклической структуры.
Оператор цикла с параметром
Этот оператор используют, когда количество повторений цикла известно заранее или необходимо изменять какую-либо величину на одно и то же значение в определенном диапазоне. Форма записи оператора:
For := To Do ;
Служебное слово To указывает направление изменения параметра – увеличение на 1 (начальное значение меньше конечного значения; если это условие не выполнится, оператор не выполнится ни разу). Если необходимо, чтобы параметр уменьшался на 1, то используется слово DownTo (начальное значение больше конечного значения). В качестве оператора можно использовать любой простой или составной оператор.
Пример: требуется вычислить суму целых чисел от M до N путем прямого суммирования. Здесь M и N – целые числа. Задачу можно сформулировать так:
Пример: в рассмотренной выше задаче можно складывать и в обратном порядке, т.е. от N до M (N / M). Для этого можно использовать второй вариант оператора цикла
При использовании оператора цикла For нужно помнить следующие правила:
Для каждого значения параметра между начальным значением и конечным оператор в теле цикла выполняется только один раз.
Оператор цикла с предусловием
В качестве оператора может быть любой простой или составной оператор. Оператор выполняется только в том случае и до тех пор, пока условие истинно, причем условие проверяется каждый раз после выполнения оператора. Если с самого начала условие ложно, то есть имеет значение false, оператор цикла не выполнится ни разу.
Если в операторе цикла условие всегда истинно, то такой цикл называется бесконечным:
Оператор цикла с постусловием
Последовательность операторов может состоять из одного или нескольких любых операторов. В отличие от цикла с предусловием, в этом цикле условие проверяется всегда после выполнения оператора (или последовательности операторов), если оно ложно – оператор снова выполняется, иначе цикл прекращается. При такой структуре, оператор хотя бы один раз обязательно выполнится.
Циклы с предусловием и постусловием называют условными циклическими алгоритмами. Нетрудно заметить, что эти циклы взаимозаменяемы и обладают некоторыми отличиями:
При написании условных циклических алгоритмов следует помнить следующее:
Урок 10. Операторы цикла с условием while и repeat
Урок из серии: «Язык программирования Паскаль»

В этом уроке Вы познакомитесь с операторами цикла с условием.
Операторы цикла с условием используются тогда, когда число повторений тела цикла заранее неизвестно, а задано лишь условие повторения (или окончания) цикла.
Оператор цикла с условием содержит две части: условие и тело цикла. В зависимости от их взаимного расположения, различают две разновидности циклов с условием: циклы с предусловием и циклы с постусловием.
В языке программирования Паскаль для организации циклов с условием используются операторы While и Repeat.
Оператор цикла с предусловием While
Оператор while (пока) называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора, до операторов тела цикла. Если условие изначально не выполнится, то операторы тела цикла не выполнятся ни разу.
Формат оператора:
На русском языке это звучит примерно так:
пока выполняется условие делай
начало
конец
Алгоритм выполнения оператора:
При использовании цикла с предусловием надо помнить следующее:
Пример. Составить программу для нахождения суммы 10 произвольных чисел, введенных с клавиатуры.
В данном примере перед циклом обнуляются значение счетчика введенных чисел k и их суммы sum.
В начале оператора while проверяется условие k 
где Repeat (повторять), until (до тех пор).
Обратите внимание на то, что данный оператор цикла предполагает несколько операторов в теле цикла, поэтому операторные скобки begin и end не нужны.
Пример. Составить программу, которая будет вводить и суммировать любое количество чисел. Если будет введено число 999, на экран вывести результат суммирования.
Для решения этой задачи сначало нужно ввести число, а потом проверить его значение (проверить условие выхода из цикла). Для этого нужен цикл с постусловием.
Коротко о главном
1. Операторы While Repeat используют в тех случаях, когда заранее неизвестно число повторений тела цикла или шаг отличен от 1.
2. При организации циклов с проверкой условия обязательно нужно указать:
На следующем уроке рассмотрим применение циклов в задачах на целочисленную арифметику.
Оператор цикла с предусловием
Repeat
Оператор цикла с постусловием
Оператор цикла с параметром
Оператор цикла с параметром имеет два формата:
for := to do ;
for := downto do ;
Параметр цикла представляет собой переменную порядкового типа, которая должна быть определена в том же блоке, где находится оператор цикла; выражение1 и выражение2 являются, соответственно, начальным и конечным значениями параметра цикла и должны иметь тип, совместимый с типом параметра цикла.
Примеры. var i, j: integer; ch: char;
for i:=10 to 14 do write(i:4); writeln;
for j:=14 downto 10 do write(j:4); writeln;
for ch:=’a’ to ‘e’ do write(ch:3);
Результат: 10 11 12 13 14
Оператор цикла с постусловием целесообразно использовать в тех случаях, когда тело цикла необходимо выполнить не менее одного раза и заранее неизвестно общее количество повторений цикла. Формат оператора:
until ;
Условие – это выражение логического типа. Операторы, заключенные между словами repeatи until, составляют тело цикла и выполняются до тех пор, пока логическое выражение не примет значение true. То есть тело цикла повторяется при значении логического выражения, равном false. Поскольку условие проверяется в конце цикла, то операторы тела цикла выполняются, как минимум, один раз.
В теле цикла может находиться произвольное число операторов без операторных скобок beginи end. По крайней мере, один из операторов тела цикла должен влиять на значение условия, в противном случае произойдет зацикливание.
until ( d >100); d := d +1;
//бесконечный цикл until ( d >100);
Оператор цикла с предусловием целесообразно использовать в случаях, когда число повторений тела цикла заранее неизвестно и тело цикла может не выполняться. Во многом этот оператор аналогичен оператору repeat. until, но проверка условия выполняется в начале оператора. Формат оператора цикла с предусловием:
While do ;
Оператор тела цикла выполняется до тех пор, пока логическое выражение не примет значение false, то есть, в отличие от цикла с постусловием, цикл выполняется при значении логического выраженияtrue.
Если перед первым выполнением цикла условие не выполняется (значение логического выражения равно false), то тело цикла вообще не выполняется и происходит переход на оператор, следующий за оператором цикла.
Оператор цикла с предусловием ( while)
Оператор цикла while называется циклом с предусловием.
Форма записи:
while (выражение) ТелоЦикла ;
Выражение всегда заключено в скобки. В качестве выражения допускается использовать любое выражение языка С++, а в качестве тела любой оператор, в том числе пустой или составной. Схема выполнения оператора while следующая:
1. Вычисляется выражение.
2. Если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело оператора while.
3. Процесс повторяется с пункта 1.
Если повторяемая часть оператора содержит более одного оператора, то повторяемая группа операторов должна быть заключена в фигурные скобки скобки, например:
while(условие)
<
оператор_1;
оператор_2;
.
оператор
>
Оператор цикла вида
for (выражение-1; выражение-2; выражение-3) тело ;
может быть заменен оператором while следующим образом:
выражение-1; while (выражение-2)
Так же как и при выполнении оператора for, в операторе while вначале происходит проверка условия. Поэтому оператор while удобно использовать в ситуациях, когда тело оператора не всегда нужно выполнять.
Внутри операторов for и while можно использовать локальные переменные, которые должны быть объявлены с определением соответствующих типов.
1) Вычислить значение функции у=2*х+3 для х= <0;3>с шагом h=0.5.
Оператор цикла с предусловием.
Предусловие вычисляется и проверяется до выполнения операторов тела цикла, и если значение логического выражения, определяющего условие работы цикла, истинно(=1), то цикл продолжает выполняться до тех пор, пока это значение не станет ложным (=0).
Структура оператора цикла с предусловием:
– логическое выражение, определяющее условие повторения тела цикла; и – необязательны.
Если начальные условия таковы, что при входе в цикл ложно, то и не выполнятся ни одного раза.
Оператор цикла с постусловием.
Постусловие вычисляется и проверяется после выполнения операторов, составляющих тело цикла, и если значение логического выражения, определяющего условие работы цикла (в языке Си), истинно (=1), то цикл продолжает выполняться до тех пор, пока это значение не станет ложным (=0). В любом случае тело цикла с постусловием выполнится, по крайней мере, один раз.
Структура оператора цикла с постусловием:
– логическое выражение, определяющее условие повторения тела цикла; и – необязательны.
II. Контрольные вопросы.
2. Какие существуют два типа циклов?
3. Структура оператора цикла с параметром.
4. Как работает цикл с параметром?
5. Указать особенности оператора цикла с параметром в языке Си?
6. Какие циклы относятся к итерационным?
7. Привести структуру оператора цикла с предусловием.
8. Как работает цикл с предусловием?
9. Какую структуру имеет оператор цикла с постусловием?
10. Как работает цикл с постусловием?
III. Практическая часть.
Выполнение общего задания.
Задача 1.
4. Текст программы:
2. Математическая модель и описательный алгоритм задачи:
• значение переменной x изначально обнулить (x=0) перед входом в цикл с предусловием x≤π/3 или x≥2∙π/3 с тем, чтобы войти в цикл и вводить значение в переменную x до тех пор, пока оно не будет удовлетворять заданному условию: π/3
• после завершения цикла вывести значение переменной S и количество итераций i-1 (сколько раз повторился цикл, т.е. сколько членов ряда суммировалось, чтобы получить частичную сумму для заданных условий; количество итераций равно i-1, так как увеличение i=i+1 происходит для следующего прохода цикла, который, возможно, не выполнится).
3. Блок-схема алгоритма задачи:
4. Текст программы:
const float p=3.14, e=.0001;
printf(“\n S = %f, количество итераций = %d”,S,i-1);
5. Тестирование:
| Теоретически рассчитанное выходное значение | Практически полученное выходное значение |
| Тест: входные данные: x=1,57 (≈π/2) | |
| S=?; кол-во итер.=? | S=?; кол-во итер.=? |
Задача 3.
2. Математическая модель и описательный алгоритм задачи:
• для формирования суммы использовать переменную S, изначально S=1, так как первый член ряда=1;
• для вычисления каждого слагаемого ряда 

• изначально очередной член ряда – переменная a=1 и количество итераций – переменная i=0;
• для вычисления частичной суммы ряда организовать цикл с постусловием |y-S|≥e и i≤limit, в котором увеличивать число итераций i=i+1, вычислять следующий член ряда a=a∙x/i и формировать сумму S=S+a;
• после выхода из цикла проверить, по невыполнению какого из двух условий завершился цикл: если i>limit, то вывести информацию «точность не достигнута»; иначе вывести значение S и количество итераций i.
3. Блок-схема алгоритма задачи:

Коротко о главном


