albert232
Messages postés3Date d'inscriptionmercredi 13 décembre 2000StatutMembreDernière intervention17 janvier 2012
-
17 janv. 2012 à 15:05
albert232
Messages postés3Date d'inscriptionmercredi 13 décembre 2000StatutMembreDernière intervention17 janvier 2012
-
17 janv. 2012 à 17:09
Bonjour ,
En Visual Basic la Fonction est :
Function Facteur_de_Ralentissement(A As Integer) As Double
Facteur_de_Ralentissement = ((A - 1) / (A + 1)) ^ 2
Facteur_de_Ralentissement = Format(Facteur_de_Ralentissement, "##0.0####")
End Function
En Borland C++ la fonction qui donne un résultat est :
double SlowDownFactor( int A)
{
double Alpha ;
double N = (A-1);
double D = (A+1);
double S = N/D ;
Alpha = pow(S , 2) ;
return Alpha ;
}
Celle qui plante :
double SlowDownFactor( int A)
{
double Alpha , S ;
double S = (A-1)/(A+1); //* refus de la division par (A+1) *//
Alpha = pow(S , 2) ;
return Alpha ;
}
Si je multiplie au lieu de diviser, ça donne un résultat !
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 17 janv. 2012 à 15:59
Bonjour.
Tu fais une division entière, donc forcément ça ne fonctionne pas...
Soit tu fais une variable temporaire de type double, soit tu dis que tu veux réaliser une division décimale. Si l'un des membres de ta division est un nombre décimal, la division devient décimale.
Donc:
double S = ((double)(A - 1)) / (A + 1);
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
albert232
Messages postés3Date d'inscriptionmercredi 13 décembre 2000StatutMembreDernière intervention17 janvier 2012 17 janv. 2012 à 17:09
Merci pour la réponse : ça marche.
A est un entier >= 0
Pour le cas A = 1 , il est traité par une autre fonction similaire.
Maintenant je m'attaque à une fonction à une trentaine de variables