I am having difficulties with my first real windows program and I don't believe it is with the programming end of it.

I believe it may be and error with the formulae I am using.

Hopefully, someone here can give a look and offer some suggestions because I am seriously stuck!

I've attached a copy of the formulae I am using. I have checked it numerous times to see if I possibly have coded it

incorrectly but I don't see any errors.

Also, if Iyo is correct how can Ixo be wrong?( See the second output list below.)

Same thing with xbar and ybar, how can 1 be wrong and the other be right?

Code:void CalculateData() { int x; for(x=0;x<3;x++) { // Area subsectionData.area = subsectionData.area + (rectangleData.ptY[x+1] - rectangleData.ptY[x]) *(rectangleData.ptX[x+1] + rectangleData.ptX[x])/2; // Ixo FUBAR... subsectionData.Ixo = subsectionData.Ixo + ((rectangleData.ptX[x+1] - rectangleData.ptX[x]) * (rectangleData.ptY[x+1] + rectangleData.ptY[x])/24) * ((pow((rectangleData.ptY[x+1] + rectangleData.ptY[x]), 2) + pow((rectangleData.ptY[x+1] - rectangleData.ptY[x]), 2))); // Iyo BUT THIS IS CORRECT! subsectionData.Iyo = subsectionData.Iyo + ((rectangleData.ptY[x+1] - rectangleData.ptY[x]) * (rectangleData.ptX[x+1] + rectangleData.ptX[x])/24) * ((pow((rectangleData.ptX[x+1] + rectangleData.ptX[x]), 2) + pow((rectangleData.ptX[x+1] - rectangleData.ptX[x]), 2))); } subsectionData.Iyo = -1 * subsectionData.Iyo; subsectionData.area = -1 * subsectionData.area; for(x=0;x<3;x++) { subsectionData.YBAR = subsectionData.YBAR + (((rectangleData.ptX[x+1] - rectangleData.ptX[x])/8) * ((pow((rectangleData.ptY[x+1] + rectangleData.ptY[x]), 2)) + pow((rectangleData.ptY[x+1] - rectangleData.ptY[x]), 2)/3)); subsectionData.XBAR = subsectionData.XBAR + (((rectangleData.ptY[x+1] - rectangleData.ptY[x])/8) * ((pow((rectangleData.ptX[x+1] + rectangleData.ptX[x]), 2)) + pow((rectangleData.ptX[x+1] - rectangleData.ptX[x]), 2)/3)); } subsectionData.XBAR = -1 / subsectionData.area * subsectionData.XBAR; subsectionData.YBAR = 1 / subsectionData.area * subsectionData.YBAR; subsectionData.Ixc = subsectionData.Ixo - (subsectionData.area * (pow(subsectionData.YBAR, 2))); subsectionData.Iyc = subsectionData.Iyo - (subsectionData.area * (pow(subsectionData.XBAR, 2))); return; }

First trial.

Input data:

Subsection Type = rectangle

ptX[0] = 0.000000 ptY[0] = 0.000000

ptX[1] = 0.000000 ptY[1] = 1.000000

ptX[2] = 1.000000 ptY[2] = 1.000000

ptX[3] = 1.000000 ptY[3] = 0.000000

Output data: // All correct!

Area subsection = 1.000000

Ixo subsection = 0.333333

Iyo subsection = 0.333333

XBAR subsection = 0.500000

YBAR subsection = 0.500000

//The following value are based on the values above...

Ixc subsection = 0.083333

Iyc subsection = 0.083333

Second trial.

Input data:

Subsection Type = rectangle

ptX[0] = 1.000000 ptY[0] = 1.000000

ptX[1] = 1.000000 ptY[1] = 2.000000

ptX[2] = 2.000000 ptY[2] = 2.000000

ptX[3] = 2.000000 ptY[3] = 1.000000

Output Data:

Area subsection = 1.000000

Ixo subsection = 2.666667 //Wrong should be 2.333 checked with: Ixo = Ixc +ad^2 where Ixc = bh^3/12

Iyo subsection = 2.333333

XBAR subsection = 1.500000

YBAR subsection = 2.000000 //Wrong should be 1.5

//The following value are based on the values above...

Ixc subsection = -1.333333 //Wrong should be .08333

Iyc subsection = 0.083333