bonjour tout le monde
Aprés un travail intensif j'ai terminé mon prog mais il existe certains problèmes.le compilateur retourne inf et -inf pour quelques valeurs et nan pour d'autres.Franchement, je suis perdue, je n'arrive pas à connaitre la source d'erreur. SVP celui qui es interessé par le developpement m'envoie une réponse le plus vite possible.Merci d'avance.
le programme est le suivant
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#include<stdio.h>
#include<math.h>
int main(int argc,char*argv[])
{
#define SLR 8
#define RLR 2
#define STMR 15
#define Ds 3	
#define Dr 3
#define TELR 65
#define WEPL 110
#define T 200
#define Bp 4.3
#define Pp 0
#define Nc -70
#define Nfor -64
#define Pr 35
#define Ps 35
#define A 0
#define qdu 1
float Ie,OLR,LSTR,Ta,Tr;
double Nos;
double Pre,Nor,No,Ro;
int Nfo;
double Id;
double Xolr,Iolr,STMRo;
double p,pp,ppp,pppp;
double Ist;
double Q;
double G;
double Y;
double Z;
double Iq; 
double Is;
double TERV;
double Re,Roe,Idte;
double Rle,Idle;
double XX;
double Idd;
double e, ex;
double Ie_eff;
double R,MOS;
printf("\n Entrez le coefficient Ie :");
scanf("%f",&Ie);
OLR=SLR+RLR;
LSTR=STMR+Dr;
Ta=T;
Tr=2*T;
printf("\n%f OLR ",OLR);
printf("\n%f LSTR",LSTR);
printf("\n%f Ta",Ta);
printf("\n%f Tr",Tr);
Nos= pow((Ps-SLR-Ds-100+0.004)*(Ps-OLR-Ds-14),2);
printf("\n%lf Nos",Nos);
Pre = Pr+10*log10(pow(11,(10-LSTR/10)));
printf("\n%lf Pre",Pre);
Nor=pow(RLR-121+Pre+0.008*(Pre-35),2);
printf("\n%lf Nor",Nor);
Nfo = Nfor+RLR;
printf("\n%lf Nfo",Nfo);
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);
// Calcul du facteur Is
Xolr = OLR+0.2*(64+No-RLR);
p=pow((Xolr/10),8);
Iolr = 20*((1+pow(p,0.125)-Xolr/8));
STMRo = -10*log10(pow(10,(-STMR/10))+exp(-T/4)*pow(10,(-TELR/10)));
pp=pow((STMRo-13)/6,8);
ppp=pow((STMRo+1)/19.4,35);
pppp=pow((STMRo-3)/33,13);
Ist = 12*(1+pow(pp,(1/8)))-28*(1+pow(ppp,(1/35)))-13*(1+pow(pppp,(1/13))+29);
 Q = 37-15*log10(qdu);
 
 G = 1.07+0.258*Q+0.0602*pow(Q,2);
 
 Y = (Ro-100)/15+46/8.4-G/9;
 
 Z = 46/30-G/40;
 
 Iq = 15*log10(pow(11,Y)+pow(10,Z));
 
 
Is = Iolr+Ist+Iq;
printf("\n%lf le coefficient Is est egal a :",Is);
 
// Calcul du facteur Id
TERV = TELR-40*log10((1+T/10)/(1+T/150))+6*exp(pow(-0.3*T,2));
 
if  (STMR<9)
{
TERV = TERV+0.5*Ist;
 
Re = 80+2.5*(TERV-14);
 
Roe = -1.5*(No-RLR);
 
Idte = ((Roe-Re)/2+sqrt(pow((Roe-Re),2/4+100))-1)*(1-exp(-T));
 
 
}
 
if (STMR>20)
 
{
Idte = sqrt(pow(Idte,2)+pow(Ist,2));
 
 
Rle = 10.5*(WEPL+7)*pow((Tr+1),(-0.25));
 
Idle = (Ro-Rle)/2+sqrt(pow((Ro-Rle),2)/4+169);
}
if(Ta<=100)
 
{
 
Idd=0;
 
}
 
else if(Ta>100)
 
{
 
XX=log10(Ta/100)/log10(2);
 
e=pow(1+XX,6);
 
ex=pow((XX/3),6);
 
Idd= 25*(pow(e,(1/6))-3*(1+pow(ex,(1/6))+2));
 
Id = Idte+Idle+Idd;
 
printf("\nle coefficient Id est égal à :\n",Id);
 
}
 
Ie_eff = Ie+(95-Ie)*(Pp/5)/((Pp/5)+Bp);
 
 
// Calcul du facteur R
 
 
R = Ro-Is-Id-Ie_eff+A;
 
printf ("\n%lf la valeur du facteur R est egale a :",R);
 
 
// Conversion du facteur R en Score Mos
 
 
MOS = (1+0.035)*R+R*(R-60)*(100-R)*0.000007;
 
if(R<0)
 
{
 
MOS=1;
 
printf("\n%lf le score Mos",MOS);
 
}
 
else if(R>100)
 
{
 
MOS=4.5;
 
printf("\n%lf le score Mos",MOS);
 
}
}
Remarque:les erreurs sont apparues à partir du calcul de No.