|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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
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
Pour les "Membres Club", vous pouvez 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
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
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 Cubique... [ par Joky ]
Ra la la !!! Que des problèmes !!! AltFin = pow(27, 1/3);</
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!)
gravité, trajectoire, tremplin ??... [ par komozi ]
Bijour,voila, imaginons que j'ai un carré avec une texture de vélo dessus, en gif donc le carré est transparent, on ne voit que le v
|
Téléchargements
Logiciels à télécharger sur le même thème :
|