[linux C]
Fermé
natalie
-
16 avril 2007 à 12:22
dubcek Messages postés 18757 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 19 décembre 2024 - 19 avril 2007 à 14:02
dubcek Messages postés 18757 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 19 décembre 2024 - 19 avril 2007 à 14:02
A voir également:
- [linux C]
- Linux mint 32 bits - Télécharger - Systèmes d'exploitation
- Diskinternals linux reader - Télécharger - Stockage
- Linux live usb creator - Télécharger - Outils Internet
- Quel linux choisir - Guide
- Iso linux ubuntu - Télécharger - Systèmes d'exploitation
7 réponses
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
16 avril 2007 à 14:24
16 avril 2007 à 14:24
inf pour infini, une probable division par 0
à certain printf, il manque le % du format: printf("\nle coefficient Id est égal à :\n",Id);
à certain printf, il manque le % du format: printf("\nle coefficient Id est égal à :\n",Id);
bonjour,
merci dubcek pour votre explication mais je n'arrive pas à resoudre le problème. Encore je rencontre l'instruction inf et -inf au niveau du calcul de Ro et No.SVP, Est ce que vous pouvez m'aider à trouver une solution. je suis perdue.Merci d'avance.
merci dubcek pour votre explication mais je n'arrive pas à resoudre le problème. Encore je rencontre l'instruction inf et -inf au niveau du calcul de Ro et No.SVP, Est ce que vous pouvez m'aider à trouver une solution. je suis perdue.Merci d'avance.
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
17 avril 2007 à 12:28
17 avril 2007 à 12:28
Je n'ai pas de compilateur sous la main, mais:
-vérifier que tout les scanf et prinf qui manipulent des double ont bien %lf ou %le
- vérifier ce calcul, si No = inf, alors Ro aussi
No=10*log10(pow(10,(Nc/10))+pow(10,(Nos/10))+pow(10,(Nfo/10)));
printf("\n%lf No",No);
Ro=15-1.5*(SLR+No);
printf("\n%lf Ro",Ro);
- afficher ici une exécution
-vérifier que tout les scanf et prinf qui manipulent des double ont bien %lf ou %le
- vérifier ce calcul, si No = inf, alors Ro aussi
No=10*log10(pow(10,(Nc/10))+pow(10,(Nos/10))+pow(10,(Nfo/10)));
printf("\n%lf No",No);
Ro=15-1.5*(SLR+No);
printf("\n%lf Ro",Ro);
- afficher ici une exécution
salut,
ben je fais une petite modification dans le code au niveau
Nor=pow(RLR-121+Pre+0.008*(Pre-35),2);
j'ai ajouté une parenthèse.l'instruction devient
Nor=pow((RLR-121+Pre+0.008)*(Pre-35),2); .Alors la valeur de Nor est modifiée mais encore le meme problème.
l'exécution nous donne inf No et -inf Ro et encore nan le coefficient Is est egal a: (vide) et meme chose pour le coefficient Id et le facteur R.SVP aidez moi,c trés urgent.Merci
ben je fais une petite modification dans le code au niveau
Nor=pow(RLR-121+Pre+0.008*(Pre-35),2);
j'ai ajouté une parenthèse.l'instruction devient
Nor=pow((RLR-121+Pre+0.008)*(Pre-35),2); .Alors la valeur de Nor est modifiée mais encore le meme problème.
l'exécution nous donne inf No et -inf Ro et encore nan le coefficient Is est egal a: (vide) et meme chose pour le coefficient Id et le facteur R.SVP aidez moi,c trés urgent.Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
18 avril 2007 à 14:15
18 avril 2007 à 14:15
La man page de pow précise bien les cas qui retournent inf, il faut afficher toutes les valeurs avant le pow.
pow(+-0, y) returns +-infinity and raises the "divide-by-zero" floating-
point exception for y an odd integer < 0.
pow(+-0, y) returns +infinity and raises the "divide-by-zero" floating-
point exception for y < 0 and not an odd integer.
pow(+-0, y) returns +-0 for y an odd integer > 0.
pow(+-0, y) returns +0 for y > 0 and not an odd integer.
pow(-1, +-infinity) returns 1.
pow(1, y) returns 1 for any y, even a NaN.
pow(x, +-0) returns 1 for any x, even a NaN.
pow(x, y) returns a NaN and raises the "invalid" floating-point exception
for finite x < 0 and finite non-integer y.
pow(x, -infinity) returns +infinity for |x| < 1.
pow(x, -infinity) returns +0 for |x| > 1.
pow(x, +infinity) returns +0 for |x| < 1.
pow(x, +infinity) returns +infinity for |x| > 1.
pow(+-0, y) returns +-infinity and raises the "divide-by-zero" floating-
point exception for y an odd integer < 0.
pow(+-0, y) returns +infinity and raises the "divide-by-zero" floating-
point exception for y < 0 and not an odd integer.
pow(+-0, y) returns +-0 for y an odd integer > 0.
pow(+-0, y) returns +0 for y > 0 and not an odd integer.
pow(-1, +-infinity) returns 1.
pow(1, y) returns 1 for any y, even a NaN.
pow(x, +-0) returns 1 for any x, even a NaN.
pow(x, y) returns a NaN and raises the "invalid" floating-point exception
for finite x < 0 and finite non-integer y.
pow(x, -infinity) returns +infinity for |x| < 1.
pow(x, -infinity) returns +0 for |x| > 1.
pow(x, +infinity) returns +0 for |x| < 1.
pow(x, +infinity) returns +infinity for |x| > 1.
bonjour
Hier et lorsque j'essaye de trouver la faute, il m'apparait que j'ai oublié une instruction dans l'equation de No.
l'equation devient No=10*log10(pow(10,(Nc/10))+pow(10,(Nos/10))+pow(10,(Nor/10))+pow(10,(Nfo/10)));
j'ai ajouté pow(10,(Nor/10)) et encore le meme cas.
SVP,est ce que vous pouvez m'expliquez les instructions envoyées dans ton dernier msg parcque je ne comprend rien :((
SVP aidez moi et je suis désolée pour le dérangement.A+
Hier et lorsque j'essaye de trouver la faute, il m'apparait que j'ai oublié une instruction dans l'equation de No.
l'equation devient No=10*log10(pow(10,(Nc/10))+pow(10,(Nos/10))+pow(10,(Nor/10))+pow(10,(Nfo/10)));
j'ai ajouté pow(10,(Nor/10)) et encore le meme cas.
SVP,est ce que vous pouvez m'expliquez les instructions envoyées dans ton dernier msg parcque je ne comprend rien :((
SVP aidez moi et je suis désolée pour le dérangement.A+
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
19 avril 2007 à 14:02
19 avril 2007 à 14:02
C'est pow qui retourne +-inf en fonction des valeurs passées.
Il faut imprimer toutes les valeurs AVANT le pow pour voir si il n'y a pas une division par 0, ou 0 puissance negative, etc
Placer un printf juste avant le pow.
C'est aussi vrai pour log10 : log10(0) = inf
printf("Nc=%d,Nos=%lf,Nor=%lf,Nfo=%lf\n", Nc, Nos, Nor, Nfo) ;
No=10*log10(pow(10,(Nc/10))+pow(10,(Nos/10))+pow(10,(Nor/10))+pow(10,(Nfo/10)));
Il faut imprimer toutes les valeurs AVANT le pow pour voir si il n'y a pas une division par 0, ou 0 puissance negative, etc
Placer un printf juste avant le pow.
C'est aussi vrai pour log10 : log10(0) = inf
printf("Nc=%d,Nos=%lf,Nor=%lf,Nfo=%lf\n", Nc, Nos, Nor, Nfo) ;
No=10*log10(pow(10,(Nc/10))+pow(10,(Nos/10))+pow(10,(Nor/10))+pow(10,(Nfo/10)));