Во многих программах приходится многократно повторять некоторые их участки. Такие повторы реализуются с помощью циклических процессов (циклов)
3.1 Оператор цикла с параметром FOR
Позволяет многократно выполнять в программе какой-либо оператор заранее известное число раз.
Существует 2 разновидности цикла FOR:
1. Цикл FOR с увеличивающимся параметром:
FOR <i>: = <st> TO <F> DO <оператор> |
2. Цикл FOR с уменьшающимся параметром:
FOR <i>: = <F> DOWNTOWN <St> DO <оператор> |
I – индекс или параметр цикла, представляющий собой выражение порядкового цикла (Integer, Char).
St и F – соответственно, начальное и конечное значение параметра цикла.
For i: = 1 to Y: = x + i
For i: = 5 down to 0 do writeln (`ЗВФ`);
Если в цикле FORнеобходимо выполнить несколько операторов, то их заключают в «операторные скобки» BEGIN…END.
В цикле FORнельзя задавать шаг, отличный от 1 (т.к. программа по умолчанию в этом цикле изменяет индекс цикла на 1)
Пример:Составить программу для нахождения среднего арифметического размера у деталей в партии.Program Sr__rasmer;Uses Crt;Var i, N: Integer;S, r, Sr: Real;BeginClrscr;Write (`Количество деталей в партии: _ _ `);Readln (N);S: = 0;For i: = 1 to N doBeginWrite (`Введите размер `, i, `-той детали: _ _ `);Readln (r);S: = S + r;End;Sr: = S/N;Writeln (`Sr = `, Sr:5:3);Readkey;End. |
3.2 Оператор цикла с предварительным условием While
Позволяет многократно выполнять в программе какой-либо один оператор заранее неизвестное число раз.
Структура цикла WHILE:
WHILE< условие> DO <оператор>; |
Условие – логическое условие, истинность которого проверяется перед каждым заходом на цикл. Если проверяемое условие верно, то цикл WHILEвыполняется вновь. Как только условие становится ложным, мы выходим из цикла. Если условие никогда не становится ложным, то программа зацикливается.
Для выхода из зацикливания необходимо нажать комбинацию клавиш: Ctrl + Break |
Если в цикле WHILEнеобходимо выполнить несколько операторов, то их заключают в «операторные скобки» BEGIN…END.
Пример:Модернизировать программу по расчету среднего арифметического размера деталей в партии (см.выше) с помощью цикла WHILE. Program Sr__rasmer1;Uses Crt;Var i, N: Integer;S, r, Sr: Real;BeginClrscr;Write (`Количество деталей в партии: _ _ `);Readln (N);S: = 0; i: = 1;While (I <= N) doBeginWrite (`Введите размер `, i, `-той детали: _ _ `);Readln (r);S: = S + r;I: = I + 1;End;Sr: = S/N;Writeln (`Sr = `, Sr:5:3);Readkey;End. |
3.3 Оператор цикла с последующим условием Repeat
Позволяет многократно выполнятьлюбое количество операторов заранее неизвестное число раз.
Структура:
REPEAT<оператор 1>;<оператор 2> ;<оператор 3> ;- - - - - - - <оператор N> ;UNТIL <условие>; |
В цикле REPEATусловие проверяется на выходе из цикла, поэтомуэтот цикл выполняется хотя бы 1 раз в любом случае.
Выход из цикла REPEATосуществляется в том случае, когда проверяемое условие становится истинным.
Если оно не становится истинным никогда, то программа зацикливается.
Для выхода из зацикливания необходимо нажать комбинацию клавиш:Ctrl + Break |
Пример:Модернизировать программу по расчету среднего арифметического размера с помощью цикла REPEAT.Program Sr__rasmer2;Uses Crt;Var i, N: Integer;S, r, Sr: Real;BeginClrscr;Write (`Количество деталей в партии: _ _ `);Readln (N);S: = 0; i: = 1;RepeatWrite (`Введитеразмер `, i, `-тойдетали: _ _ `);Readln (r);S: = S + r;I: = I + 1;Until (I > N);Sr: = S/N;Writeln (`Sr = `, Sr:4:2);Readkey;End. |