5/5 (4 avis)
Vue 27 221 fois - Téléchargée 371 fois
// calcul les racines carrées avec l'algo d'héron #include <stdio.h> void about(void); int main(void) { int increment; float resultat; float acalculer; float an; float an1; about(); do { printf("calcul des racines carrees par les approximation d'heron\n"); printf("entrez un nombre dont on va calculer sa racine carre : \n"); scanf("%f", &acalculer); }while(acalculer<=0); an=acalculer; for (increment=0;increment<8;increment++) { an1=(an+(acalculer)/an)/2; an=an1; } resultat=an1; printf("resultat = %f\n\n", resultat); if (getchar()=='\n') getchar(); return 0; } void about(void) { printf("programmé par kjus\n"); }
16 mars 2006 à 17:24
16 janv. 2005 à 23:43
J'ai réaliser cet algo dans mes débuts en programmation c++ et c'est vrai que l'astuce est bien trouvée.
Par contre, la récursivité serait la bienvenue.
l'algorithme d'héron consiste, en effet, à effectuer des calculs tant que la precision attendue n'est pas atteinte.
au début X0 = A
puis X1 = 0.5 * ( A/X0 + X0) ..... etc
juqu'à ce que Xn²- A < precision
Pour plus de simplicité on aurait pu écire la fonction de cette manière :
double RacineCarree(int A, double Xn, double precision)
{
if( (Xn*Xn) - A ) > precision
return RacineCarree(A, 0.5 * ( (A/Xn) + Xn ), precision);
else return Xn;
};
il faudra déclarer cette fonction comme ceci
Si A=7
cout << RacineCarree(7,7,0.0001); par exemple
Voilà
8 juil. 2002 à 14:21
8 juil. 2002 à 02:48
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.