Алгоритм циклической структуры - это метод, в каком происходит многократное повторение 1-го и такого же участка программы. Такие повторяемые участки вычислительного процесса именуются циклами. Программа повторяющейся структуры, мягко говоря, содержит один либо несколько циклов. Различают детерминированные циклы с заблаговременно известным числом повторений и итерационные циклы, в каких число повторений заблаговременно непонятно. Изменяющаяся в цикле переменная именуется параметром цикла.
Для организации цикла нужно выполнить последующие деяния: 1) задать перед циклом изначальное значение параметра цикла; 2) изменять параметр перед каждым новеньким повторением цикла; 3) инспектировать условие повторения цикла; 4) управлять циклом, т.е. перебегать к его началу, ежели он не закончен, либо выходить из него по окончании.
В языке Паскаль, в конце концов, существует 3 вида циклов:
1) цикл с параметром либо цикл типа for,
2) цикл с предусловием либо цикл типа while,
3) цикл с постусловием либо цикл типа repeat ... until.
В цикле типа for число повторений понятно заблаговременно, в циклах типа while и repeat ... until число повторений цикла заблаговременно непонятно, делается проверка условия повторения цикла: в цикле типа while - перед циклом, в цикле типа repeat ... until - после его окончания. В циклах типов for и while повторяющяся часть (тело цикла) состоит из 1-го оператора, ежели требуется выполнить в цикле несколько операторов, они заключаются в операторные скобки begin ... end, образуя составной оператор. В цикле типа repeat ... until тело цикла помещается меж зарезервированными словами языка (лексемами) repeat и until, операторные скобки не требуются, в заглавии цикла его тело условно обозначается 3-мя точками. При помощи цикла типа for комфортно отыскивать суммы, произведения, находить наибольшие и малые значения и т.п. При нахождении суммы некой переменной, к примеру S присваивается значение 0, потом в цикле к данной переменной прибавляется соответственный член данной последовательности. При нахождении произведения переменной присваивается значение 1, потом в цикле эта переменная множится на общий член последовательности.
Пример цикла типа for
Вычисление n чисел Фибоначчи:
F1=1; F2=1;…; Fn=Fn-1+Fn-2 ,
например F3=F2+F1=1 + 1 = 2; F4 = 2 + 1 = 3 и т.д.
program fib; {Нахождение чисел
Фибоначчи}
var x, y, z, i, n : integer;
begin
writeln (‘Введите n’); read (n);
x:=1; y:=0;
for i:=1 to n do
begin
z:=x ; x:=x+y ; y:=z ;
write (' ', x ) ;
end;
readln;
end.
Пример цикла типа while
Cоставление таблицы функции y = a3/(a2+x2)
для х, принадлежащих отрезку [-1; 1] с шагом 0.1. Так как параметр
цикла типа for должен быть целочисленным, удобнее использовать цикл
while, в котором значение х можно изменять при каждом шаге на Dх = 0.1
program cycl_while;
uses crt; {вызов модуля Crt для управления
режимом экрана}
var
a, x, y : real ; i : integer;
begin
clrscr ; {процедура очистки экрана из модуля
Crt}
writeln ('Введите а ' );
readln (a);
x:= -1.; writeln (‘ x ‘, ‘ y ’);
while do x<1.05 begin
y:= sqr(a)*a/ (a*a+x*x);
writeln (x:6:2, y:8:4);
x:=x+0.1
end;
readln;
end .
Условие х<1.05 соответствует каждому значению х
плюс половина шага .
Пример цикла типа repeat ... until
Определить число n, при котором сумма квадратов
натурального ряда чисел от 1 до n не превысит величину K, введенную с
клавиатуры. Т.е. S >= K, где S=
program sum_sq; {Сумма квадратов
натурального ряда }
uses crt;
var k, s, n : integer;
begin
clrscr ;
writeln( 'Введите K' );
readln (k);
s:=0; n:=1;
repeat
s :=s+n*n;
n := n+1;
until s > k;
writeln ('N= ', n : 3, ' s= ' , s : 5 );
readln;
end.
Цикл повторяется до тех пор, пока условие записанное
после ключевого слова until, будет ложным (не выполняется). Как только
это условие выполнится, происходит выход из цикла. После окончания
цикла производится печать результата (оператор writeln). Отметим, что
цикл с предусловием (типа while) может не выполниться ни разу, цикл с
постусловием repeat ... until выполнится по крайней мере 1 раз. Когда
число повторений цикла неизвестно заранее, применяются циклы с
предусловием или с остусловием . Когда число повторений цикла известно
заранее, как правило, применяется цикл типа for. Но любой цикл типа for
можно заменить циклом с предусловием или постусловием.
|