#include #include #include #include using namespace std; // Data 260 degrees, 200 ft; 45o, 260'; 128o, 200' // 170o, 210'; 215o, 270'; 340o, 150'; 323o, 286' // Data 309o, 186'; 111.5o, 194'; 177o, 140'; 253o, 190'; 30.5o, 164'; 324.5o, 153.9' const double PI = 3.14159265; int main () { double initialAngle; double initialSide; double leftSide; double rightSide; double givenAngle; double includedAngle; double thirdSide; double initialRadians; double check; double piece; double area = 0.0; double phi; double alpha; ifstream input; input.open("measures.txt"); input >> initialAngle >> initialSide; initialRadians = initialAngle / 180 * PI; rightSide = initialSide; input >> givenAngle; while (givenAngle > 0) { input >> leftSide; check = initialAngle - 180; if (check < 0) check += 360; includedAngle = (check - givenAngle) / 180 * PI; if (includedAngle < 0) includedAngle += (2.0 * PI); piece = 0.5 * rightSide * leftSide * sin (includedAngle); cout << includedAngle*180/PI << " " << piece << endl; thirdSide = sqrt(rightSide*rightSide + leftSide*leftSide - 2.0 * rightSide * leftSide * cos (includedAngle)); cout << leftSide << " " << rightSide << " " << thirdSide << " " << leftSide*sin(includedAngle)/thirdSide << endl; area += piece; phi = asin (leftSide * sin (includedAngle) / thirdSide); alpha = asin (rightSide * sin (includedAngle) / thirdSide); if (fabs (phi-alpha-includedAngle) < 0.01) phi = PI - alpha - includedAngle; initialRadians = phi + initialRadians; if (initialRadians > 2.0 * PI) initialRadians -= (2.0 * PI); initialAngle = initialRadians * 180 / PI; cout << phi*180/PI << " ** " << initialAngle << endl; rightSide = thirdSide; input >> givenAngle; } cout << "The area is " << area << " square feet." << endl; input.close(); return 0; }