ftbass
|
Publié le 28/03/2004 à 13:05 |
RE : Fonctions récursives
Une fonction multiplier en récursif (n'est valable que pour des nombres positifs ou nuls) :
code: function mult(m, n : in integer) return integer is
begin
if (m = 0) or (n = 0) then
return 0;
else
if (m = 1) then
return n;
else
if (n = 1) then
return m;
else
return n + mult((m - 1) ,n);
end if;
end if;
end if;
end mult;
|
|
ftbass
|
Publié le 24/03/2004 à 18:51 |
RE : Fonctions récursives
Sympa de me tenir au jus Syl
A jeudi (normalement...) |
SYLADA
Member  

Messages: 7
Inscrit(e) le: 16/03/2004
Déconnecté(e)
|
Publié le 24/03/2004 à 18:15 |
Fonctions récursives
Hi !
Mardi soir, on a vu les fonctions récursives.
Quelques exemples ci-dessous :
code:
with Text_Io; use Text_Io;
procedure fonctions_recursives is
package Entier_Es is new Text_Io.Integer_Io(Integer);
use Entier_Es;
--fonction de Fibonnacci
function Fib(N : in Integer) return Integer is
begin
if (N=0) or (N=1) then return 1;
else return (Fib(N-1)+Fib(N-2));
end if;
end Fib;
-- fonction Factorielle
function Fact(N : in Integer) return Integer is
begin
if (N=0) or (N=1) then return 1;
else return (N*Fact(N-1));
end if;
end Fact;
-- fonction Puissance
function Puissance(x,N : in Integer) return Integer is
begin
if (N=0) then return 1;
else return x*puissance(x,n-1);
end if;
end Puissance;
-- fonction Division entière
function Divise(N,D : in Integer) return Integer is
begin
if (N<D) then return 0;
else return 1+Divise(n-d,d);
end if;
end Divise;
--procédure principale
begin
--Exemples de fonctions récursives
Put("Fonction recursive de Fibonnacci d'ordre 10 : ");
Put(Fib(10),3);
new_line;
Put("Fonction recursive factorielle de 10 : ");
Put(Fact(10),3);
new_line;
Put("Fonction recursive puissance 2^3 : ");
Put(Puissance(2,3),3);
new_line;
Put("Fonction recursive division entiere 7/2 : ");
Put(Divise(7,2),3);
end fonctions_recursives;
|
Bye! 8o) |