Programme en C. Calcule de racines

juancho2786 Messages postés 39 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 29 octobre 2008 - 1 août 2005 à 02:22
juancho2786 Messages postés 39 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 29 octobre 2008 - 6 août 2005 à 14:51
bonsoir a tous...

J'ai voulu créer un programme en C qui demande trois nombres (a,b,c) a l'utilisateur tel que
ax² + bx + c = 0 pour ensuite calculer les racines. Mais aparemment j'ai un problème.
Pouvez vous m'aidez SVP. Quelles modifications faire? Comment alléger le code?

Merci d'avance

Voici le code :

#include <stdio.h>
#include <math.h>
main()
{
short a,b,c,rho;
float tmp;
printf("Entrez un nombre a, un nombre b et un nombre c tel que ax² + bx + c = 0");
printf("\n\na = ? , b = ? , c = ? :");
scanf("%hd %hd %hd",&a, &b, &c);
printf("\n %hdx² + %hdx + %hd = 0", a,b,c);
rho=b*b-4*a*c ;
tmp= sqrt(b*b-4*a*c);
if (rho >0)
printf("\n\nLes racines sont : %f et %f", (-b+ temp)/(2*a),(-b - temp)/(2*a));
else if (rho == 0)
printf ("\n\nLa racine est : %.hd ", (-b)/(2*a));
else
printf("\n\nIl n'y a pas de racines");
}

14 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
1 août 2005 à 08:47
tmp= sqrt(b*b-4*a*c);
Tu viens de calculer ca dans tho, pourquoi ne pas réutiliser cette variable? Peut être penser a vérifier si rho est négatif avant de calculer sa racine carrée?
0
juancho2786 Messages postés 39 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 29 octobre 2008
1 août 2005 à 12:53
Mais le probleme vient quand y a pas de racine.J'ai ce message : sqrt:_DOMAIN error
Aidez moi SVP...

#include <stdio.h>
#include <math.h>
main()
{
short a,b,c,rho;
float temp;
printf("Entrez un nombre a, un nombre b et un nombre c tel que ax² + bx + c = 0");
printf("\n\na = ? , b = ? , c = ? :");
scanf("%hd %hd %hd",&a, &b, &c);
printf("\n%hdx² + %hdx + %hd = 0", a,b,c);
rho=b*b-4*a*c ;
temp= sqrt(rho);
if (rho >0)
printf("\n\nLes racines sont : %f et %f", (-b+ temp)/(2*a),(-b - temp)/(2*a));
else if (rho == 0)
printf ("\n\nLa racine est : %.hd ", (-b)/(2*a));
else
printf("\n\nIl n'y a pas de racines");
}
0
vinc1008881 Messages postés 257 Date d'inscription dimanche 22 août 2004 Statut Membre Dernière intervention 29 septembre 2010 3
1 août 2005 à 15:24
domain error moi sa me fait penser à erreur dans l'ensemnle de def (c a d quand tu demande a ta casio de faire racine(-5), elle fait la guelle .

(1)==> met ensemble les 2 premier printf (); pour gagner de la place
(2)==>inutile d'utiliser un 'h' devant le d, en car si je mamuse a entrer c = 256 c est overflow et "K C le processus" lol, surtout s tu est sous windows .
(3)==> moi je ferrais sa a ta place
if (!(rho b*b-4(a*c))) {/* rho 0, on a une solution double*/}
if (rho>0){/*on a 2 racine réelle*/}else {/*on a 2 racine imaginaire voir cour terminal S)
(4)==>degage la librairie math.h et fai ta propre fonction racine !

voila, @+, vinc1008881
0
BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 103
1 août 2005 à 16:53
Pourquoi ne pas utiliser math.h?? C'est bête de ré-inventer la roue à chaque programme, non?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
juancho2786 Messages postés 39 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 29 octobre 2008
1 août 2005 à 19:01
Merci pour toutes vos réponses.
Mais comment on crée une fonction? par exemple la fonction racine carré...
Merci d'avance
0
juancho2786 Messages postés 39 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 29 octobre 2008
1 août 2005 à 19:50
Ahh voilà je n'ai plus ce message.
J'ai fais quelques modifications. Mais je comprends pas pourquoi j'avais ce message d'erreur avant... Pouvez vous m'expliquer SVP???

#include <stdio.h>
#include <math.h>
main()
{
short a,b,c,rho;
printf("Entrez un nombre a, un nombre b et un nombre c tel que ax² + bx + c = 0");
printf("\n\na = ? , b = ? , c = ? :");
scanf("%hd %hd %hd",&a, &b, &c);
printf("\n%hdx² + %hdx + %hd = 0", a,b,c);
rho=b*b-4*a*c ;
if (rho < 0)
printf("\n\nIl n'y a pas de racines");
else if (rho == 0)
printf ("\n\nLa racine est : %hd ", (-b)/(2*a));
else
printf("\n\nLes racines sont : %.2f et %.2f", (-b+ sqrt(rho))/(2*a),(-b - sqrt(rho))/(2*a));
}
0
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
2 août 2005 à 11:15
salut,

t'avais cette erreur car tu calculais a chaque fois la racine carré de
rho, meme quand il était négatif, ce qui explique le message
sqrt:_DOMAIN error

la fonction sqrt est définie sur l'ensemble des nombre réels positifs et pas sur tout R ...



a+
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
2 août 2005 à 11:21
Ouai c'est vrai ça

Comment calculer une racine carré mais à base des opérations mathématiques traditionnelles

Genre on oublie les puissance 1/2 pour les malins lol

Vous me rédigerez d'après votre propre expérience et vos seules
connaissances, un rapport qui démontrera dans un premier temps que la
question pose un vrai problème et vous vous dépecherez de résoudre
cette énigme :)

void Aurevoir( void ); //Bonne journée
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
2 août 2005 à 17:49
Avec l'algo de Newton
0
juancho2786 Messages postés 39 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 29 octobre 2008
2 août 2005 à 19:43
Si je comprends bien, vous me demandez de trouver un procédé avec les opérations mathématiques traditionnelles pour trouver la racine carré de n importe quel nombre réels( positif bien sur )...
Je me trompe? ou c'est bien cela?
Une petite aide peut-être?
Si non a part ça le code de mon "programme" est correcte?
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
2 août 2005 à 20:08
C'est juste Joky qui délire, il a plus toute sa tête le pauvre
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
2 août 2005 à 20:14
Non mé ya des questions comme ça lol
void Aurevoir( void ); //Bonne journée
0
vinc1008881 Messages postés 257 Date d'inscription dimanche 22 août 2004 Statut Membre Dernière intervention 29 septembre 2010 3
6 août 2005 à 12:04
Salu,
indice ===> sert toi des carée de nombre entier (0, 1, 4, 9, 16...)

enfin je crois .........moi j'aurai fait come sa en tt cas........

@+, vinc1008881

<HR>
le goto, c'est comme un parachute, tu en a casiment jamais besoin, mais quand t'en as besoin....
0
juancho2786 Messages postés 39 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 29 octobre 2008
6 août 2005 à 14:51
Explique pourquoi tu aurais utiliser des carrées de nombre entier?
Donne moi un exemple stp.
0
Rejoignez-nous