elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con el operador !=
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con el operador !=  (Leído 1,937 veces)
manri98

Desconectado Desconectado

Mensajes: 24


8086. Odisea de despacio...


Ver Perfil
Ayuda con el operador !=
« en: 8 Noviembre 2014, 00:19 am »

Buenas noches.
Haciendo un proyecto de clase me he encontrado con este error:
invalid operands of types ‘float’ and ‘float [12]’ to binary ‘operator!=’
El error se encuentra en el bucle while que señalo en el código. Por lo que entiendo surge de intentar utilizar el operador con dos tipos distintos de variables, pero ambos son arrays :huh:
¿Alguien podría ayudarme a saber que pasa? Muchas gracias por adelantado.
Código
  1. void MovimientoEsferico(){
  2.    PosicionInicialCartesianasAEsfericas();
  3.  
  4.    float MovimientoEsferico[3];
  5.    MovimientoEsferico[0]=posicionInicialEsferica[0]*sinf(posicionInicialEsferica[1])*cosf(posicionInicialEsferica[2]);
  6.    MovimientoEsferico[1]=posicionInicialEsferica[0]*sinf(posicionInicialEsferica[1])*sinf(posicionInicialEsferica[2]);
  7.    MovimientoEsferico[2]=posicionInicialEsferica[0]*cosf(posicionInicialEsferica[1]);
  8.  
  9.    float diferenciaX = 0;
  10.    float diferenciaY = 0;
  11.    float diferenciaZ = 0;
  12.    float resultadoDivisionX = 0;
  13.    float resultadoDivisionY = 0;
  14.    float resultadoDivisionZ = 0;
  15.  
  16.    float posicionSatelite[12];
  17.    api.getMyZRState(posicionSatelite);
  18.  
  19.    //X
  20.    if(MovimientoEsferico[0]>posicionFinal[0]){
  21.        diferenciaX = MovimientoEsferico[0]-posicionFinal[0];
  22.        resultadoDivisionX = diferenciaX/6;
  23.        resultadoDivisionX = resultadoDivisionX*-1;
  24.    }
  25.    else if(MovimientoEsferico[0]<posicionFinal[0]){
  26.        diferenciaX = posicionFinal[0]-MovimientoEsferico[0];
  27.        resultadoDivisionX = diferenciaX/6;  
  28. }
  29. //Y
  30.    if(MovimientoEsferico[1]>posicionFinal[1]){
  31.        diferenciaY = MovimientoEsferico[1]-posicionFinal[1];
  32.        resultadoDivisionY = diferenciaY/6;
  33.        resultadoDivisionY = resultadoDivisionY*-1;
  34.    }
  35.    else if(MovimientoEsferico[1]<posicionFinal[1]){
  36.        diferenciaY = posicionFinal[1]-MovimientoEsferico[1];
  37.        resultadoDivisionY = diferenciaY/6;
  38.    }
  39. //Z
  40.    if(MovimientoEsferico[2]>posicionFinal[2]){
  41.        diferenciaZ = MovimientoEsferico[2]-posicionFinal[2];
  42.        resultadoDivisionZ = diferenciaZ/6;
  43.        resultadoDivisionZ = resultadoDivisionZ*-1;
  44.    }
  45.    else if(MovimientoEsferico[2]<posicionFinal[2]){
  46.        diferenciaZ = posicionFinal[2]-MovimientoEsferico[2];
  47.        resultadoDivisionZ = diferenciaZ/6;
  48.    }
  49.  
  50. MovimientoEsferico[0] = MovimientoEsferico[0]+resultadoDivisionX;
  51. MovimientoEsferico[1] = MovimientoEsferico[1]+resultadoDivisionY;
  52. MovimientoEsferico[2] = MovimientoEsferico[2]+resultadoDivisionZ;
  53. api.setPositionTarget(MovimientoEsferico);
  54.    while ((posicionSatelite[0]!=MovimientoEsferico[0])&&(posicionSatelite[1]!=MovimientoEsferico[1])&&(posicionSatelite[2]!=MovimientoEsferico))//en este bucle while esta el error//{
  55. api.getMyZRState(posicionSatelite);
  56. api.setPositionTarget(MovimientoEsferico);
  57. }
  58.  


En línea

(\/)4|\|r1 98
-Cuantos dálmatas había en la peli?
-101
-por el culo te la hinco
Ja_90

Desconectado Desconectado

Mensajes: 51



Ver Perfil
Re: Ayuda con el operador !=
« Respuesta #1 en: 8 Noviembre 2014, 04:19 am »

Hola,

En el While, en la ultima parte de la condicion te falto especificar el indice del arreglo
(posicionSatelite[2]!=MovimientoEsferico) ==> (posicionSatelite[2]!=MovimientoEsferico[2])...

Si no es eso...mmm a modo de pregunta...Estas comparando los valores de los indices de cada arreglo....el arreglo float posicionSatelite[12] guarda 12 valores, y el array float MovimientoEsferico[3] guarda 3 y tu solo quieres comprar o decir que mientras sean diferente (!=) los primeros 3 valores de esos arreglos haga:

api.getMyZRState(posicionSatelite);
api.setPositionTarget(MovimientoEsferico);

Es asi lo que intentas hacer?....si es asi porque el arreglo de posicioSatelite[] tiene 12 valores no serian innecesarios, y bastarian los mismos 3 que estas comparando...

 


En línea

:D  ::::Ja_90::::   :D
manri98

Desconectado Desconectado

Mensajes: 24


8086. Odisea de despacio...


Ver Perfil
Re: Ayuda con el operador !=
« Respuesta #2 en: 8 Noviembre 2014, 10:57 am »

Hola,
Pues si era eso ;-) . Muchas gracias, no sabía cual era el problema y todo por no leer el código más a fondo.
Respecto a lo que comentas, si, eso es lo que quiero hacer  ;D.
Sobre posicionSatelite[12], no puedo eliminar el resto porque la función api.getMyZRState() devuelve 12 valores. Pensé en pasar los 3 primeros valores de posicionSatelite[12] a otro array y comparar este con MovimientoEsferico[3].
En línea

(\/)4|\|r1 98
-Cuantos dálmatas había en la peli?
-101
-por el culo te la hinco
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Operador ternario
Java
Senior++ 2 2,238 Último mensaje 13 Julio 2012, 15:24 pm
por Senior++
Ayuda operador -> en C++
Programación C/C++
Zodiak98 3 4,756 Último mensaje 29 Abril 2013, 19:33 pm
por Ferno
Ayuda con el operador new
Programación C/C++
erest0r 1 1,715 Último mensaje 2 Octubre 2013, 08:40 am
por eferion
Problema operador asignación y operador asignación [struct] c++
Programación C/C++
luiggy2 2 3,045 Último mensaje 16 Octubre 2013, 23:35 pm
por luiggy2
[?] Necesito ayuda con sobrecarga de operador +=
Programación C/C++
solinac 1 1,778 Último mensaje 25 Noviembre 2013, 20:57 pm
por do-while
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines