Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

#include <iostream> #include <iomanip> #include <cmath> using namespace std; //

ID: 3658432 • Letter: #

Question

#include <iostream>

#include <iomanip>

#include <cmath>


using namespace std;


// function prototypes


// ENTER FUNCTION PROTOTYPE FOR normalize() HERE.

double normalize(double & x, double & y);

// ENTER FUNCTION PROTOTYPE FOR dot_product() HERE.

double dot_product(double x1, double y1, double x2, double y2);

// ENTER FUNCTION PROTOTYPE FOR compute_vector_angle() HERE.

double compute_vector_angle(double x1, double y1, double x2, double y2);

// ENTER FUNCTION PROTOTYPE FOR radians2degrees() HERE.

double radians2degrees(double radians);

// ENTER FUNCTION PROTOTYPE FOR output_angle() HERE.

double output_angle(double x1, double y1, double x2, double y2, double degrees);



// *** DO NOT CHANGE ANY CODE IN THE MAIN FUNCTION.

// *** DO NOT CHANGE ANY CODE IN THE MAIN FUNCTION.

// *** DO NOT CHANGE ANY CODE IN THE MAIN FUNCTION.

int main()

{

double u1, v1; // coordinates of vector 1

double u2, v2; // coordinates of vector 2

double radians; // angle in radians

double degrees; // angle in degrees


// Read points

cout << "Enter first vector (2 floats): ";

cin >> u1 >> v1;

cout << "Enter second vector (2 floats): ";

cin >> u2 >> v2;


// compute angle in radians between (u1, v1) and (u2, v2)

radians = compute_vector_angle(u1, v1, u2, v2);


// convert radians to degrees

degrees = radians2degrees(radians);


// output angle

output_angle(u1, v1, u2, v2, degrees);


return(0);

}


// DEFINE FUNCTION normalize() HERE.

double normalize(double x, double y)

{

if (x*x + y*y != 0)

{

x = x/sqrt((x*x)+(y*y));

y = y/sqrt((x*x)+(y*y));

}

else ((x*x) + (y*y) == 0);

{

x = 0;

y = 0;

}

return 0;

}



// DEFINE FUNCTION dot_product() HERE.

double dot_product(double x1, double y1, double x2, double y2)

{

dot_product = x1 * x2 + y1 * y2; // errors start here:

return (dot_product);

}


// DEFINE FUNCTION compute_vector_angle() HERE.

double compute_vector_angle(double x1, double y1, double x2, double y2)

{

normalize(x1, y1, x2, y2);

dot_product(x1, y1, x2, y2);

radians = acos(dot_product);


return(radians);

}


// DEFINE FUNCTION radians2degrees() HERE.


double radians2degrees(double radians)

{

double degrees = 180 * radians/M_PI;


return (degrees);

}


// DEFINE FUNCTION output_angle() HERE.

double output_angle(double x1, double y1, double x2, double y2, double degrees)

{

cout << "Then angle between vectors (" << x1 << "," << y1 << ") and (" << x2 << "," << y2 << " = " << degrees << "degrees"


return 0;

}

Explanation / Answer

//you do not want to name variables the same as the name of functions //also, you forgot to declare some of the variables before using them. //compiles now :3 #include #include #include using namespace std; // function prototypes // ENTER FUNCTION PROTOTYPE FOR normalize() HERE. void normalize(double &x, double &y); // ENTER FUNCTION PROTOTYPE FOR dot_product() HERE. double dot_product(double x1, double y1, double x2, double y2); // ENTER FUNCTION PROTOTYPE FOR compute_vector_angle() HERE. double compute_vector_angle(double x1, double y1, double x2, double y2); // ENTER FUNCTION PROTOTYPE FOR radians2degrees() HERE. double radians2degrees(double radians); // ENTER FUNCTION PROTOTYPE FOR output_angle() HERE. double output_angle(double x1, double y1, double x2, double y2, double degrees); // *** DO NOT CHANGE ANY CODE IN THE MAIN FUNCTION. // *** DO NOT CHANGE ANY CODE IN THE MAIN FUNCTION. // *** DO NOT CHANGE ANY CODE IN THE MAIN FUNCTION. int main() { double u1, v1; // coordinates of vector 1 double u2, v2; // coordinates of vector 2 double radians; // angle in radians double degrees; // angle in degrees // Read points cout > u1 >> v1; cout > u2 >> v2; // compute angle in radians between (u1, v1) and (u2, v2) radians = compute_vector_angle(u1, v1, u2, v2); // convert radians to degrees degrees = radians2degrees(radians); // output angle output_angle(u1, v1, u2, v2, degrees); return(0); } // DEFINE FUNCTION normalize() HERE. void normalize(double &x, double &y) { if (x*x + y*y != 0) { x = x/sqrt((x*x)+(y*y)); y = y/sqrt((x*x)+(y*y)); } else //((x*x) + (y*y) == 0); { x = 0; y = 0; } return; } // DEFINE FUNCTION dot_product() HERE. double dot_product(double x1, double y1, double x2, double y2) { double product = x1 * x2 + y1 * y2; // errors start here: return (product); } // DEFINE FUNCTION compute_vector_angle() HERE. double compute_vector_angle(double x1, double y1, double x2, double y2) { normalize(x1, y1); normalize(x2, y2); double product= dot_product(x1, y1, x2, y2); double radians = acos(product); return(radians); } // DEFINE FUNCTION radians2degrees() HERE. double radians2degrees(double radians) { double degrees = 180 * radians/M_PI; return (degrees); } // DEFINE FUNCTION output_angle() HERE. double output_angle(double x1, double y1, double x2, double y2, double degrees) { cout