Forum ada95000 Dernière connexion : 18/06/2025 à 08:37
Fin de session : 18/06/2025 à 08:47

Vous n'êtes pas connecté [Connexion - Inscription]
Go Bottom
Version imprimable | Envoyer à un ami | S'abonner | Ajouter aux Favoris Nouveau SujetNouveau sondageRépondre
Auteur: Sujet: Fonctions récursives   ( Réponses: 2 | Vues: 1387 )
SYLADA
Member
MembreMembreMembre
 
images/avatars/Magneto.gif
 
Messages: 7
Inscrit(e) le: 16/03/2004
Déconnecté(e)
bigsmile.gif Publié le 24/03/2004 à 18:15 Reply With Quote
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)
Go Top #20 Go Bottom
View SYLADA's ProfileE-Mail SYLADAView All Posts by SYLADAU2U Member
ftbass
Administrator
StaffStaffStaffStaffStaffStaffStaffStaffStaff
 
images/avatars/WC3HumanOp1.gif
 
Messages: 72
Inscrit(e) le: 27/02/2004
Déconnecté(e)
Publié le 24/03/2004 à 18:51 Reply With Quote
RE : Fonctions récursives

Sympa de me tenir au jus Syl :-p

A jeudi (normalement...)
http://ftprods.free.fr
Go Top #21 Go Bottom
View ftbass's ProfileE-Mail ftbassVisit ftbass's HomepageView All Posts by ftbassU2U Member
ftbass
Administrator
StaffStaffStaffStaffStaffStaffStaffStaffStaff
 
images/avatars/WC3HumanOp1.gif
 
Messages: 72
Inscrit(e) le: 27/02/2004
Déconnecté(e)
Publié le 28/03/2004 à 13:05 Reply With Quote
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;
Go Top #22 Go Bottom
View ftbass's ProfileE-Mail ftbassVisit ftbass's HomepageView All Posts by ftbassU2U Member
Nouveau SujetNouveau sondageRépondre

Go Top
10.3.122.74 08:37 - 18 Juin 2025 10.3.122.74
[ 0.1012349 secondes | Effacer le cookie | 18 requêtes ]
Oxygen v1.0.11 © 2002  |  Oxygen WebSite © 2002