Bonjour, excusez-moi de vous déranger mais j'ai un gros soucis ! je suis actuellement en master et mon master comporte de l'informatique or je n'en ai jamais fait et me retrouve avec des étudiants en ayant fait depuis 3 ans. Le prof ne prend donc pas le temps de m'expliquer le fonctionnement de ce langage et j'avoue que je galère pas mal...
J'essaye de lire des livres ou d'aller sur des sites comme celui ci pour essayer d'apprendre un tel langage mais ce n'est pas facile...
J'en viens au but. voici un programme que mon professeur nous a donné qui est pour calculer l'intégrale exp x entre 2 bornes a et b en prenant un pas h (méthode des rectangles si je ne m'abuse) bref voila ce qu'il nous a donné comme code
Code : 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 #include <stdio.h> #include <stdlib.h> #include <math.h> #define MAXN 1000 double rect(double * , double *, long); int main(){ long i , N ; double a, b, h, A, Ath, Er; double X[MAXN], Y[MAXN]; printf("\n entrer a ? ") ; scanf("%lf",&a); printf("\n entrer b ? ") ; scanf("%lf",&b); printf("\n entrer h ? ") ; scanf("%lf",&h); Ath= exp (b)-exp(a); N=1L+(long)( (b-a)/h ); if (N>=MAXN) { printf(" attention dépassement " ); return (1); } for (i=0 ; i<=N-1 ; i++ ) {X [i] = a+i*h ; Y[i]=exp(X[i]) ; } A=rect (X , Y , N); Er=100.0*fabs( (A-Ath)/Ath ) ; printf ("\n aire théorique =%lf\n" , Ath) ; printf ("\n aire calculée =%lf\n" , A) ; printf ("\n erreur relative =%lf\n" , Er) ; return(0); } double rect ( double *X , double *Y, long N){ long i; double h, aire, somme; h=X[1]-X[0]; somme=0; for(i=0 ; i<=N-2 ; i++ ) somme+=Y[i]; aire =h*somme; return(aire); }
mon problème est le suivant : je ne comprends pas grand chose a ce code ...
les 4 premières lignes sont les préprocesseurs puis la 5éme je ne la comprends pas ...Pourquoi des * ? pourquoi cette ligne n'est pas au début du main avec les autres déclarations ?
Je ne comprends pas cette ligne aussi :
et celle la :
Code : Sélectionner tout - Visualiser dans une fenêtre à part N=1L+(long)( (b-a)/h )
Code : Sélectionner tout - Visualiser dans une fenêtre à part Er=100.0*fabs( (A-Ath)/Ath
Pouvez vous m'aider ? D'avance merci
Cordialement
Partager