#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) { coutRelated Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.