Рекурсия Презентация разработана учителем информатики лицея 124 г.Барнаула Воловиковой Л.Л.
Рекурсией называется обращение процедуры или функции к самой себе. Пример: Procedure S(x:integer); Begin … S(a); End; Пример: Procedure S(x:integer); Begin … S(a); End; При работе с рекурсивной процедурой или функцией нужно предусматривать выход из нее при выполнении некоторого условия. If x
Прямой ход рекурсии Procedure S(x:integer); Begin If x=0 then Exit; Writeln(x); S(x-1); End; Procedure S(x:integer); Begin If x=0 then Exit; Writeln(x); S(x-1); End; S(3) If 3=0 Then Exit; WRITELN(3); S(2) If 3=0 Then Exit; WRITELN(3); S(2) If 2=0 Then Exit; WRITELN(2); S(1) If 2=0 Then Exit; WRITELN(2); S(1) If 1=0 Then Exit; WRITELN(1); S(0) If 1=0 Then Exit; WRITELN(1); S(0) If 0=0 Then Exit;
Обратный ход рекурсии Procedure S(x:integer); Begin If x=0 then Exit; S(x-1); Writeln(x); End; Procedure S(x:integer); Begin If x=0 then Exit; S(x-1); Writeln(x); End; S(3) If 3=0 Then Exit; S(2) WRITELN(3); If 3=0 Then Exit; S(2) WRITELN(3); If 2=0 Then Exit; S(1) WRITELN(2); If 2=0 Then Exit; S(1) WRITELN(2); If 1=0 Then Exit; S(0) WRITELN(1); If 1=0 Then Exit; S(0) WRITELN(1); If 0=0 Then Exit;
Задача Написать рекурсивную функцию для вычисления n степени целого числа a Рекурсивное определение степени: a n =1, при n=0 a n =a·a n-1, при n>0 a n =1, при n=0 a n =a·a n-1, при n>0
Program recursia1; Var n:integer; a,s:longint; Function stepen(n:integer; a:longint):longint; Begin if n=0 then stepen:=1 else stepen:=a*stepen(n-1,a); End; Begin Writeln(Задайте число); Readln(a); Writeln(Задайте степень); Readln(n); S:=stepen(n,a); Writeln(Степень равна,s); Readln; End.