Bonjour à tous !
J'ai un niveau très faible en C++, mais dans le cadre d'un stage dans le domaine de la physique, je dois calculer la moyenne pondérée de la vitesse (ici, j'aimerai calculer U). En fait, il s'agit de modifier le code source d'un logiciel appelé nektar. Je ne peux ainsi malheureusement pas être très précis dans mon problème. Cependant, vous avez peut-être une idée de ce que je peux faire.
Tout d'abord dans un fichier .moy que je crée, je déclare V appartenant a une classe appelé element_list et ou est contenu U (la vitesse). Ensuite j'aimerai faire une boucle jusqu'a une valeur appelé njtot me calculant la moyenne pondérée. C'est à dire
M[i]=(1/i)*M[i-1]+(1/i)*V[0]; (la formule me semble correcte) M étant la moyenne.
A la compilation, on me dit que le V[0] pose un problème dans cette formule car ce n'est pas un tableau mais un element_list. C'est vrai...mais comment faire alors ?? Tout ceci n'est peut etre pas très clair, mais encore une fois, moi-même je suis perdu
Merci d'avance pour votre aide !
Cordialement
voici le bout de code en question :
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 FILE *fp; sprintf(fname, "%s.moy", omega->name); int i; Element_List **V; V = (Element_List**) calloc(nf, sizeof(Element_List*)); V[0] = omega->U; int njtot = V[0]->nz*V[0]->hjtot; double M[njtot]; M[0]=0; fp = fopen(fname,"w"); if(fp==NULL) cout<<"Impossible d'ouvrir le fichier en écriture"<<endl; else { for (i=1;i<=njtot;i++) { M[i]=(1/i)*M[i-1]+(1/i)*V[0]; fprintf(fp,"la moyenne de U est : %ld \n",M[i]); } fclose(fp);
Partager