Menú principal

martes, 8 de septiembre de 2020

Producto escalar de dos vectores - Sobrecarga de operadores - C++

Se pide realizar un programa que realice el producto escalar de dos vectores introducidos por el usuario. Para una mayor legibilidad en el main, se pide utilizar los operadores de salida, entrada, y producto. A continuación se muestra la solución:

 1 #include <iostream>
 2  using namespace std;
 3  
 4  class miVector
 5  {
 6      int x,y;
 7  
 8  public:
 9      miVector(int cx=0,int cy=0)
10      {
11          x=cx;
12          y=cy;
13      }
14      friend istream& operator>>(istream &in, miVector &v);
15      friend ostream& operator<<(ostream &out, miVector &v);
16      friend int operator*(const miVector &v, const miVector &v2);
17  };
18  
19  istream& operator>>(istream &in, miVector &v)
20  {
21      in>> v.x >> v.y;
22      return in;
23  }
24  
25  ostream& operator<<(ostream &out, miVector &v)
26  {
27      out << "(" << v.x << "," << v.y << ")";
28      return out;
29  }
30  
31  int operator*(const miVector &v, const miVector &v2)
32  {
33      int prod=v.x*v2.x+v.y*v2.y;
34      return prod;
35  }
36  int main()
37  {
38      miVector v1,v2;
39  
40      cout << "Intro coordenadas del primer vector: ";cin >> v1;
41      cout << "Intro coordenadas del segundo vector: "; cin >> v2;
42      cout << v1 << " * " << v2 << " = " << v1*v2;
43  
44      return 0;
45  }

No hay comentarios:

Publicar un comentario