kritical
Messages postés9Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention 3 décembre 2005
-
1 déc. 2005 à 22:19
elmariami
Messages postés1Date d'inscriptionmardi 16 janvier 2007StatutMembreDernière intervention19 mars 2010
-
19 mars 2010 à 00:45
est ce que qq peut m'aider à m'initier aux fct recursifs
parsque j'ai une fonction qui s'appelle dans une boucle
void foction(n,i...)
for(i=0;i<n;i++)
{fonction2(x,y);
fonction1(n,i+1);}
des boucles vont se creer et je n'arrive pas à comprendre.
merci
dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011 2 déc. 2005 à 09:15
Les fonctions récursive n'ont pas forcément besoin de boucle.
Une fonction récursive va s'appeler elle-même dans son code mais avec une valeur différente. Pour une fonction de puissance, tu peux faire un truc du genre :
float puiss(float x,int n) // x puissance n
{
// si la puissance dépasse 2, on ne peut pas calculer directement
// donc on rappel la fonction avec une puissance plus petite que
// l'on multiplie par x pour avoir le résultat
if(n<2) return puiss(x,n-1)*x;
// si la puissance vaut 2, c'est le carré donc x*x
else if(n==2) return x*x;
// sinon la puissance vaut 1 donc x puissance 1 = x
else return x;
}
merci mais je ne sais pas comment les boucles vont se creer
si qq peut me m'aider à comprendre en fonctio de i et j les etapes en supposant que n=3,merci
dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011 2 déc. 2005 à 23:32
Peut-être que ça serait mieux si tu nous disais ce que tu voulais
faire, parce que une fonction récursive avec une boucle dedans... c'est
rare je pense.
mogwai93>dsl je fais l'exemple en vitesse parce que j'étais en TP de programmation !
Vous n’avez pas trouvé la réponse que vous recherchez ?
kritical
Messages postés9Date d'inscriptionlundi 24 octobre 2005StatutMembreDernière intervention 3 décembre 2005 3 déc. 2005 à 17:17
c bon j'ai compris,merci
je confondais entre les boucles:
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
instruction}
je pensais que i et j s'incrémenté en même temps.