Циклы в Turbo Pascal
- Цикл позволяет многократно выполнить некоторую последовательность операторов.
- Всего существуют три вида циклов:
а) цикл с предусловием (используют, когда неизвестно число повторений);
б) цикл с послеусловием (используют, когда неизвестно число повторений);
в) цикл с параметром (используют, когда известно число повторений).
; while , do – служебные слова Паскаля Условие P называют условием продолжения цикла. S проверяется значение условия P ; если значение условия P истинно (т.е. принимает значение true ), то реализуется оператор S (тело цикла), а затем снова проверяется значение условия P ; тело цикла выполняется до тех пор, пока условие P истинно; как только значение условия P станет ложным (т.е. принимает значение false ), то работа цикла заканчивается. " width="640"
Цикл с предусловием
P
да нет while P do S ;
while , do – служебные слова Паскаля
Условие P называют условием
продолжения цикла.
S
- проверяется значение условия P ;
- если значение условия P истинно (т.е. принимает значение true ), то реализуется оператор S (тело цикла), а затем снова проверяется значение условия P ;
- тело цикла выполняется до тех пор, пока условие P истинно;
- как только значение условия P станет ложным (т.е. принимает значение false ), то работа цикла заканчивается.
Особенности цикла с предусловием
- если при первой же проверке условия оно ложно, тело цикла не выполняется ни одного раза.
- если значение условие P всегда истинно, то наступает ситуация зацикленности (т.е. тело цикла будет выполняться бесконечно)
- увеличение или уменьшение переменной (счётчика) цикла осуществляет программист: i := i +1; x := x -1;
- если тело цикла состоит более чем из одного оператора, то тело цикла необходимо заключать в операторные скобки begin …. end :
while P do
begin
;
;
end ;
Пример . Найти сумму всех натуральных чисел от 1 до n .
program Summa_1;
const n=250;
var i: byte; { описание типа счётчика цикла }
S : integer ; { описание типа результата – суммы чисел }
begin
S :=0; { первоначальное значение суммы }
i :=1; { первоначальное значение счётчика цикла }
while i
begin
S := S + i ; { вычисление суммы }
i := i +1; { изменение счётчика цикла }
end ;
writeln (‘ Сумма S=’, S);
end.
until P ; repeat , until – служебные слова Паскаля Условие P называют условием окончания цикла. P выполняется тело цикла; проверяется значение условия P ; если значение условия P ложно (т.е. принимает значение false ), то снова реализуется серия команд S , составляющая тело цикла; тело цикла выполняется до тех пор, пока условие P ложно как только значение условия станет истинным, работа цикла заканчивается . " width="640"
Цикл с послеусловием
S
repeat
нет да тело цикла
until P ;
repeat , until – служебные слова Паскаля
Условие P называют условием окончания цикла.
P
- выполняется тело цикла;
- проверяется значение условия P ;
- если значение условия P ложно (т.е. принимает значение false ), то снова реализуется серия команд S , составляющая тело цикла;
- тело цикла выполняется до тех пор, пока условие P ложно
- как только значение условия станет истинным, работа цикла заканчивается .
Особенности цикла с послеусловием
- если при первой же проверке условия оно истинно, то тело цикла выполняется только один раз.
- если значение условие P всегда ложно, то наступает ситуация зацикленности
- увеличение или уменьшение счётчика цикла осуществляет программист;
- тело цикла, состоящее более чем из одного оператора, заключать в операторные скобки begin …. end не нужно .
n; writeln (‘ Сумма S=’, S); end . " width="640"
Пример . Найти сумму всех натуральных чисел от 1 до n .
program Summa _2;
const n =250;
var i : byte ;
S : integer ;
begin
S :=0; i :=1;
repeat
S:=S+i;
i:=i+1;
until in;
writeln (‘ Сумма S=’, S);
end .
Цикл с параметром
а ) for i:=a to b do S ;
i – счётчик цикла, S – тело цикла
a – начальное значение счётчика цикла,
b – конечное значение счётчика цикла
Начальное и конечное значения счётчика цикла должны совпадать с типом счётчика.
- счётчику цикла присваивается значение a ;
- проверяется условие a ≤ b
- если условие истинно, то выполняется серия команд S ;
- значение аргумента цикла увеличивается на 1;
- снова проверяется условие a ≤ b
- тело цикла выполняется до тех пор, пока значение счётчика цикла не станет равным b +1 (в последний раз тело цикла выполнится для счётчика цикла, равного b ).
b , то тело цикла не выполнится ни разу при а= b тело цикла выполнится только один раз. счётчик цикла изменяется автоматически (увеличивается на 1); если тело цикла состоит более чем из одного оператора, то тело цикла необходимо заключать в операторные скобки begin …. end . " width="640"
Особенности цикла с параметром
- тело цикла выполняется при a ≤ b .
- если при первой же проверке a b , то тело цикла не выполнится ни разу
- при а= b тело цикла выполнится только один раз.
- счётчик цикла изменяется автоматически (увеличивается на 1);
- если тело цикла состоит более чем из одного оператора, то тело цикла необходимо заключать в операторные скобки begin …. end .
Цикл с параметром
б) for i := a downto b do S
- счётчику цикла присваивается значение a ;
- проверяется условие a≥ b
- если условие истинно, то выполняется серия команд S ;
- значение аргумента цикла уменьшается на 1;
- снова проверяется условие a ≥ b
- тело цикла выполняется до тех пор, пока значение счётчика цикла не станет равным b -1 (в последний раз тело цикла выполнится для счётчика цикла, равного b ).
Особенности цикла с параметром
- тело цикла выполняется при a ≥ b .
- если при первой же проверке a
- при а= b тело цикла выполнится только один раз
- счётчик цикла изменяется автоматически (уменьшается на 1);
- если тело цикла состоит более чем из одного оператора, то тело цикла необходимо заключать в операторные скобки begin …. end .
Пример . Найти сумму всех натуральных чисел от 1 до n .
program Summa_ 3 ;
const n=250;
var i: byte;
S: integer;
begin
S:=0;
for i:=1 to n do S:=S+i;
( или for i:= n downto 1 do S:=S+i; )
writeln (‘ Сумма S=’, S);
end .