Tableau change tout seul de valeur
Bonjour,
Je fais appel à vous aujourd'hui car j'ai un problème peu banal. J'ai une variable tableau (segments) qui contient un certain nombre de valeur double. Je l'utilise dans mon code et plus bas il vaut autre chose!!! Qu'est-ce qui se passe? Je vous met le code (pas tout ce serait trop long) incriminé:
Code:
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
| double segments[nbSegments];
for (int i=0;i<nbSegments;i++)
{
segments[i]= pow(pow(coordonnees[(i+1)*3+0]-coordonnees[i*3+0],2)+pow(coordonnees[(i+1)*3+1]-coordonnees[i*3+1],2)+pow(coordonnees[(i+1)*3+2]-coordonnees[i*3+2],2),0.5);
//pow = fonction puissance
qDebug()<<segments[i];
}
double centresGravite[(nbSegments+nbBuoyancy+2)*4];
for (int i=0;i<nbSegments;i++)
{
for (int j=0; j<3; j++)
{
centresGravite[i*4+j]=(coordonnees[(i+1)*3+j]+coordonnees[i*3+j])/2 ;
}
centresGravite[i*4+3]=M_PI*(pow(p_dExterieur/2,2)-pow((p_dExterieur-2*p_epaisseur)/2,2))*segments[i]*p_masseVolumique
+M_PI*(pow((p_dExterieur+2*p_epaisseurCoatingExt)/2,2)-pow(p_dExterieur/2,2))*segments[i]*p_rhoCoatingExt
+M_PI*(pow((p_dExterieur-2*p_epaisseur)/2,2)-pow((p_dExterieur-2*p_epaisseur-2*p_epaisseurCoatingInt)/2,2))*segments[i]*p_rhoCoatingInt;
masseTot = masseTot + centresGravite[i*4+3];
}
for(int i=0;i<nbBuoyancy;i++)
{
for (int j=0; j<3; j++)
{
centresGravite[(nbSegments+i)*4+j] = ui->tableWidget_3->item(i,j)->text().toDouble();
}
if(ui->tableWidget_3->item(i,3)->text().toDouble()==1)
{
centresGravite[(nbSegments+i)*4+3] = p_weightInAir1;
}
else
{
centresGravite[(nbSegments+i)*4+3] = p_weightInAir2;
}
masseTot = masseTot + centresGravite[(nbSegments+i)*4+3];
}
centresGravite[(nbSegments+nbBuoyancy+1)*4+0]= coordonnees[0+0];
centresGravite[(nbSegments+nbBuoyancy+1)*4+1]= coordonnees[0+1];
centresGravite[(nbSegments+nbBuoyancy+1)*4+2]= coordonnees[0+2];
centresGravite[(nbSegments+nbBuoyancy+1)*4+3]= p_connectorWeight;
centresGravite[(nbSegments+nbBuoyancy+2)*4+0]= coordonnees[(nbPoints-1)*3+0];
centresGravite[(nbSegments+nbBuoyancy+2)*4+1]= coordonnees[(nbPoints-1)*3+1];
centresGravite[(nbSegments+nbBuoyancy+2)*4+2]= coordonnees[(nbPoints-1)*3+2];
centresGravite[(nbSegments+nbBuoyancy+2)*4+3]= p_connectorWeight;
masseTot = masseTot + p_connectorWeight*2;
CoG[0*3+0] = 0;
CoG[0*3+1] = 0;
CoG[0*3+2] = 0;
for(int i=0; i<nbPoints+nbBuoyancy+2;i++)
{
CoG[0] = CoG[0] + centresGravite[i*4+3]*centresGravite[i*4+0];
CoG[1] = CoG[1] + centresGravite[i*4+3]*centresGravite[i*4+1];
CoG[2] = CoG[2] + centresGravite[i*4+3]*centresGravite[i*4+2];
}
CoG[0] = CoG[0]/masseTot;
CoG[1] = CoG[1]/masseTot;
CoG[2] = CoG[2]/masseTot;
for(int i=0;i<nbPoints+nbBuoyancy+2;i++)
{
centresGravite[i]=0;
}
qDebug()<<"---------";
for (int i=0;i<nbSegments;i++)
{
qDebug()<<segments[i];
} |
En sortie:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 5
5
16.5
5
3.5
6
2.091
20.034
3.6
25.2247
---------
3.6
3540
16.5
5
3.5
6
2.091
20.034
3.6
25.2247 |
Merci de votre aide