Циклические алгоритмы

     Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

  Командой повторения или циклом называется такая форма организации действий, при которой одна и та же последовательность действий повторяется до тех пор, пока сохраняется значение некоторого логического выражения. При изменении значения логического выражения на противоположное повторения прекращаются (цикл завершается).

  Различают циклы с известным числом повторений (цикл с параметром) и итерационные циклы (с пред - и постусловием).

Цикл с параметром

  Цикл с параметром используется тогда, когда число повторений цикла заранее известно. Параметр цикла принимает значения от начального до конечного с шагом +1 или -1.

                                                                             

Пример. Найти двузначные числа сумма которых равна 8.

Program abc;

uses crt;

var I, one, dec: integer;

begin

for I:= 10 to 99 do begin

one:= I mod 10;

dec:= I div 10;

If one + dec = 8 then

writeln (I);

end;

end.

 Цикл с предусловием

      Цикл с предусловием используется тогда, когда число повторения тела цикла заранее неизвестно, а зависит от выполнения условия. Если условие истинно, то тело цикла выполняется, затем вновь проверка условия и так до тех пор пока условие не станет ложным.

Блок - схема

 

Пример. Вычислить значение функций y=x2, x=2, 4, 6, 8, 10.

Program abc;
uses crt;
var x: integer;
begin
x:=2;
while x <= 10 do begin
writeln(x, sqr(x));
x:= x+2;
end;
end.

   
Цикл с постусловием

      Цикл с постусловием выполняется хотя бы один раз независимо от выполнения условия. Проверка условия находится после тела цикла.

Блок - схема

 

Пример. Вычислить значение функций y=x2, x=2, 4, 6, 8, 10.

Program abc;
uses crt;
var x: integer;
begin
x:=2;
repeat
writeln (x, sqr(x));
x:= x+2;
until x > 10;
end.
  

 

     Задача 1.                  Одноклеточная амеба каждые 3 часа делится на 2 клетки.  Определить, сколько амеб будет через  3, 6,9,12…24 часа.

Решение

Program ameba;
uses crt;
var k,i,l:integer;
begin
k:=3;
l:=1;
for i:=1 to 8 do begin
l:=2*l;
writeln('количество амеб через ',k,' часов равно ',l);
k:=k+3;
end;
end.

Задача 2.                  У гусей и кроликов вместе 64 лапы. Сколько могло быть кроликов и гусей (указать все сочетания, которые возможны).

Решение

program lapy;
uses crt;
var i:integer;
begin
for i:= 1 to 15 do
writeln(i,' кроликов ',(64-4*i)/2,' гусей');
end.

Задача 3.                  Составить программу, которая запрашивает пароль (например, четырехзначное число) до тех пор, пока он не будет правильно введен.

Решение

program parol;
uses crt;
var paro:integer;
begin
repeat writeln('введите пароль');
readln(paro);
until paro = 24;
end.

 

Сделать бесплатный сайт с uCoz