예제 #1
0
double simcos(vector<pair<long long int, long long int> > & a, vector<pair<long long int, long long int> > & b){
    long long int resI;
    if(a.size() >= b.size())
        resI = productoPunto(a, b);
    else
        resI = productoPunto(b, a);
    double mods = sqrt(modulo(a))*sqrt(modulo(b));
    double res = (double)resI / mods; //quiza los modulos deberian estar precalculados, al  menos el del vector con el que estoy comparando no lo deberia calcular siempre
    return res; // y hacer el return defrente
}
예제 #2
0
int main(void){

  v3d v1, v2;
  printf("Dame v1.x: ");
  scanf("%d", &v1.x);
  printf("Dame v1.y: ");
  scanf("%d", &v1.y);
  printf("Dame v1.z: ");
  scanf("%d", &v1.z);

  printf("Dame v2.x: ");
  scanf("%d", &v2.x);
  printf("Dame v2.y: ");
  scanf("%d", &v2.y);
  printf("Dame v2.z: ");
  scanf("%d", &v2.z);


  v3d c= suma(v1, v2);
  int pp= productoPunto(v1, v2);

  printf("Suma (%d, %d, %d) + (%d, %d, %d) = (%d, %d, %d)\n", 
	 v1.x, v1.y, v1.z, v2.x, v2.y, v2.z, c.x, c.y, c.z);
  printf("Producto punto (%d, %d, %d) . (%d, %d, %d) = %d\n", 
    v1.x, v1.y, v1.z, v2.x, v2.y, v2.z, pp);

  return 0;
}