Calcul de racines (amelioré)

Soyez le premier à donner votre avis sur cette source.

Vue 4 583 fois - Téléchargée 116 fois

Description

Voilà une version améliorée du programme de 'obasileus' qui sert à calculer des racines... Cette version est largement améliorée,plus précise,plus rapide et plus souple...

Source / Exemple :


/**************************************\

  • Root Calculator *
  • Version 1.00 *
  • Started The 11th March 2002 *
  • By Nicolas BENOIT, ndj55@free.fr *
  • http://www.ndj55.fr.fm *
\**************************************/ /* Ce programme est basé sur le programme 'Racine' créé par obasileus.
  • /
//-------------------------------------------------------------------------------- //|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //-------------------------------------------------------------------------------- #include <stdio.h> //-------------------------------------------------------------------------------- //|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //-------------------------------------------------------------------------------- int main(void) { unsigned long int nombre = 0; unsigned long int iteration = 0; unsigned long int diviseur = 2; double temp; double root; printf("Carre de la racine recherchee : "); scanf("%i",&nombre); printf("Precision : "); scanf("%i",&iteration); temp = nombre / 2.0; root = temp; while (iteration != 0) { if (((root * root) > nombre) && (root > 0)) { root -= (temp / diviseur); } else { root += (temp / diviseur); } if ((root * root) == nombre) { break; } diviseur += 2; --iteration; } printf("\a\n\nRacine Approximative =\t%.10f\nCarre Approximatif =\t%f\n",root,root*root); getchar(); while (getchar() == 0) { getchar(); } return 0; } //-------------------------------------------------------------------------------- //|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| //--------------------------------------------------------------------------------

Conclusion :


Une précision de 32000 permet d'obtenir un résultat exact presque à tous les coups....

Codes Sources

A voir également

Ajouter un commentaire Commentaire
Messages postés
269
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
9 juin 2003

salut !
pour calculer une approximation de racine carré, il existe un algorithme simple et très rapide : l'algorithme d'héron.
En 8 itérations, on a deja une très bonne précision ! (l'algo utilise les suites)
J'en ai codé une version ici :
http://www.cppfrance.com/article.aspx?Val=874

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.