begin process at 2012 02 13 01:07:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > TROUVER LA RACINE CARRÉE ET LA RACINE CUBIQUE D'UN NOMBRE AVEC PLUS DE PRÉCISION (CHOIX DU NOMBRE DE CHIFFRES APRES LA VIRGULE)

TROUVER LA RACINE CARRÉE ET LA RACINE CUBIQUE D'UN NOMBRE AVEC PLUS DE PRÉCISION (CHOIX DU NOMBRE DE CHIFFRES APRES LA VIRGULE)


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Classé sous :cubique, racine, carré, sqrt, mathématiques Niveau :Débutant Date de création :11/03/2007 Date de mise à jour :23/03/2007 17:46:28 Vu / téléchargé :19 093 / 257

Auteur : ndubien

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note


 Description

En effet Racine_carree.h contient la fonction nommée racine(double,int) mais également la fonction racine_cub(double,int).

Pour fonctionner cette fonction (racine()) necessite le nombre au carré et le nombre de chiffres qu'il faut apres la virgule. Cette fonction permet une plus grande precision que sqrt(). Un test comparatif opposant ces deux fonctions est exposé à la fin de l'éxécution du programme (disponible dans le zip) : il expose premierement le resultat trouvé avec racine() puis celui trouvé avec sqrt(). Le résultat obtenu par l'execution de cette fonction est un string contenant la valeur de la racine carrée du nombre désiré.

Pour fonctionner cette fonction (racine_cub()) necessite le nombre au cube et le nombre de chiffres qu'il faut apres la virgule. Le résultat obtenu par l'execution de cette fonction est un string contenant la valeur de la racine cubique du nombre désiré.

Source

  • #ifndef RACINE_CARREE_H
  • #define RACINE_CARREE_H
  • using namespace std;
  • string int_to_char(int nb) {
  • char nombre[16];
  • itoa(nb,nombre,10);
  • string texte(nombre);
  • return texte;
  • }
  • string racine(double nb_carre,int w) {
  • w++;
  • string renvoi;
  • if(nb_carre<0) {
  • renvoi="ERREUR : Un carre est forcement positif";
  • w=-1;
  • }
  • double precision(1);
  • double dernier(0);
  • for(int i(0);i<w;i++) {
  • for(int j(0);j>=0;j++) {
  • if((j*precision+dernier)*(j*precision+dernier)==nb_carre) {
  • i=w;
  • dernier+=j*precision;
  • renvoi+=int_to_char(j);
  • j=-100;
  • }
  • if((j*precision+dernier)*(j*precision+dernier)>nb_carre) {
  • if(j-1<0) i=w;
  • else {
  • dernier+=j*precision-precision;
  • renvoi+=int_to_char(j-1);
  • j=-100;
  • }
  • }
  • }
  • if(i==0) renvoi+=",";
  • precision=precision/10;
  • }
  • return renvoi;
  • }
  • string racine_cub(double nb_carre,int w) {
  • w++;
  • string renvoi;
  • if(nb_carre<0) {
  • renvoi="ERREUR : Un carre est forcement positif";
  • w=-1;
  • }
  • double precision(1);
  • double dernier(0);
  • for(int i(0);i<w;i++) {
  • for(int j(0);j>=0;j++) {
  • if((j*precision+dernier)*(j*precision+dernier)*(j*precision+dernier)==nb_carre) {
  • i=w;
  • dernier+=j*precision;
  • renvoi+=int_to_char(j);
  • j=-100;
  • }
  • if((j*precision+dernier)*(j*precision+dernier)*(j*precision+dernier)>nb_carre) {
  • if(j-1<0) i=w;
  • else {
  • dernier+=j*precision-precision;
  • renvoi+=int_to_char(j-1);
  • j=-100;
  • }
  • }
  • }
  • if(i==0) renvoi+=",";
  • precision=precision/10;
  • }
  • return renvoi;
  • }
  • #endif
  • // Un executable exploitant cette fonction
  • // est disponible dans le zip :
  • // Racine carree.ex_ qu'il faut renommé Racine carree.exe
#ifndef RACINE_CARREE_H
#define RACINE_CARREE_H

using namespace std;

string int_to_char(int nb) {
       char nombre[16];
       itoa(nb,nombre,10);
       string texte(nombre);
       return texte;
}

string racine(double nb_carre,int w) {
       w++;
       string renvoi;
       if(nb_carre<0) {
                renvoi="ERREUR : Un carre est forcement positif";
                w=-1;
       }
       double precision(1);
       double dernier(0);
       for(int i(0);i<w;i++) {
               for(int j(0);j>=0;j++) {
                          if((j*precision+dernier)*(j*precision+dernier)==nb_carre) {
                                   i=w;
                                   dernier+=j*precision;
                                   renvoi+=int_to_char(j);
                                   j=-100;
                          }
                          if((j*precision+dernier)*(j*precision+dernier)>nb_carre) {
                                   if(j-1<0) i=w;
                                   else {
                                        dernier+=j*precision-precision;
                                        renvoi+=int_to_char(j-1);
                                        j=-100;
                                   }
                          }
               }
               if(i==0) renvoi+=",";
               precision=precision/10;
       }
       return renvoi;
}

string racine_cub(double nb_carre,int w) {
       w++;
       string renvoi;
       if(nb_carre<0) {
                renvoi="ERREUR : Un carre est forcement positif";
                w=-1;
       }
       double precision(1);
       double dernier(0);
       for(int i(0);i<w;i++) {
               for(int j(0);j>=0;j++) {
                          if((j*precision+dernier)*(j*precision+dernier)*(j*precision+dernier)==nb_carre) {
                                   i=w;
                                   dernier+=j*precision;
                                   renvoi+=int_to_char(j);
                                   j=-100;
                          }
                          if((j*precision+dernier)*(j*precision+dernier)*(j*precision+dernier)>nb_carre) {
                                   if(j-1<0) i=w;
                                   else {
                                        dernier+=j*precision-precision;
                                        renvoi+=int_to_char(j-1);
                                        j=-100;
                                   }
                          }
               }
               if(i==0) renvoi+=",";
               precision=precision/10;
       }
       return renvoi;
}

#endif

// Un executable exploitant cette fonction
// est disponible dans le zip :
// Racine carree.ex_ qu'il faut renommé Racine carree.exe

 Conclusion

:'(

Petit problème,
lors de l'utilisation de nombre décimaux tels que 0.09 ou 0.027,
le programme renvoi des valeurs proches de la réalité mais non exactes.

Exemple :
Si l'on met 0.09 pour le nombre au carré,
le programme renvoi 0.2999... à la place de 0.3.
Si l'on met 0.027 pour le nombre au cube,
le programme renvoi 0.2999... à la place de 0.3.

Besoin d'aide :
Si quelqu'un sait comment résoudre ce problème merci de me le communiquer au plus vite en commentaire de cette source.

Merci d'avance...

;) A bientôt! ;)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

23 mars 2007 17:46:28 :
Ajout de la fonction : racine_cub(double,int).

 Sources du même auteur

Source avec Zip Source avec une capture MARIO EN SDL
Source avec Zip Source avec une capture TAMIS ET TAPIS DE SIERPINSKI
Source avec Zip Source avec une capture ARBRE2D: UN PROGRAMME GÉNÉRANT DES ARBRES
Source avec Zip Source avec une capture SIMULANCE, UN SIMULATEUR DE LANCÉ D'OBJETS
Source avec Zip BEEPER, UTILISER UN HOOK CLAVIER INTÉGRÉ À L'EXÉCUTABLE ET G...

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

FONCTION RACINE ENTIÈRE par sadmandono
A SUPPRIMER par saylar
Source avec Zip CARRE MAGIQUE par maminovadu75
Source avec Zip Source avec une capture RÉFLEXION : CUBE MAPPING, SPHÈRE MAPPING, MIROIR AVEC ENVIRO... par rei3
Source avec Zip Source avec une capture EXTRACTION D'UNE RACINE CARRÉE par Tripo

Commentaires et avis

Commentaire de juju12 le 14/03/2007 21:01:42

C'est pas mal, voilà une source qui marche.
Je te suggère de rajouter une fonction permettant l'arrondi :
par exemple, pour racine(90,1), ta fonction retourne 9.4 alors que 9.5 est une valeur plus proche
(en fait ça fait 9.48...)
Bonne continuation

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Racine Cubique... [ par Joky ] Ra la la !!! Que des probl&#232;mes !!! AltFin = pow(27, 1/3);</ simplification racine carré, niveau ? [ par kjus ] J'ai fait un prog qui simplifie les racines carrées.Vous pensez que je met ca en niveau 1 ou 2 ?***raph*** racine carrée!!!! [ par dletozeun ] bonjour,j'essais d'utiliser la racine carré en C :sqrt()mais apperement ca ne fonctionne pas et je ne vois pas du tout d'ou ca vient:voici la partie q racine carré [ par devadip ] comment simplifier puis calculerC++28/C++7 Librairies mathématiques VS matlab [ par devilinside ] Devant coder une interface graphique en visual C++ pour un logiciel de calcul, je suis fort dépourvu.Le code original du coeur de calcul tourne sous m interuption de clavier [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peu mais bon... Voici mon probleme : j'ai un projet pour la fin de l'annee: f interuption de clavier [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peu mais bon... Voici mon probleme : j'ai un projet pour la fin de l'annee: f interuption de clavier [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peu mais bon... Voici mon probleme : j'ai un projet pour la fin de l'annee: f Séries mathématiques [ par Padou ] Quelqu'un peut-il m'aider et me dire comment on code les séries mathématiques du sinx, cosx, exponentielle et logarithmique. sinx= x-(x^3/3!)+(x^5/5!) Compilation [ par mohamado2001 ] je voudrais trouver qqe qui va m'aider en compilation a resoudre la grammaire des suites numériques et les fonctions mathématiques et les expressions


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales