domingo, 15 de marzo de 2009

OPERACIONES CON DOS VECTORES EN JAVA

AQUI LES DEJO EL COD. DE UN PROGRAMA QUE REALIZA OPERACIONES CON VECTORES DE TRES COORDENADAS: SUMA, RESTA, PROD. ESCALAR, UNITARIOS DE C/U, ANGULO FORMADO POR LOS DOS, Y MAGNITUD O MODULO DE C/U....
---------------------------------------------------------------------------
public static void main(String[] args) {
double [] a= new double[3];
double [] b= new double[3];
double [] c= new double[3];
int suma;
int resta;
int escalar;
double cruz;
double mag;
double mag2;
double angulo;
double ang;
double ang2;
a[0]=2; a[1]=6; a[2]=4;
b[0]=1; b[1]=3; b[2]=2;

//SUMA
for(int i=0; i<3; i++)
c[i]= a[i] + b[i];
for(int i=0; i<3; i++)
System.out.println("LA SUMA ES--> "+c[i]);

//RESTA
for(int i=0; i<3; i++)
c[i]= a[i] - b[i];
for(int i=0; i<3; i++)
System.out.println("LA RESTA ES--> "+c[i]);

//PROD. ESCALAR
escalar = 0;
for(int i=0; i<3; i++){
escalar += a[i] * b[i];
}
System.out.println("EL PRODUCTO ESCALAR ES--> "+ escalar);

//UNITARIOS
for(int i=0; i<3; i++)
c[i] = a[i]/escalar;
for(int i=0; i<3; i++)
System.out.println("EL UNITARIO DE A ES--> "+c[i]);
for(int i=0; i<3; i++)
c[i] = b[i]/escalar;
for(int i=0; i<3; i++)
System.out.println("EL UNITARIO DE B ES--> "+c[i]);


//ANGULO
ang= Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2));
ang2= Math.sqrt(Math.pow(b[0],2)+Math.pow(b[1],2)+Math.pow(b[2],2));
angulo= Math.acos(escalar/(ang*ang2));
System.out.println("EL ANGULO FORMADO POR LOS 2 VECTORES ES--> "+ angulo);

//MAGNITUD
mag= Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)+Math.pow(a[2],2));
System.out.println("LA MAGNITUD DEL VECTOR A ES--> "+mag);
mag2= Math.sqrt(Math.pow(b[0],2)+Math.pow(b[1],2)+Math.pow(b[2],2));
System.out.println("LA MAGNITUD DEL VECTOR B ES--> "+mag2);

//PROD. CRUZ
cruz = (((a[1] *b[2]) - (a[2] *b[1])) - ((a[0] *b[2]) - (b[0] *a[2])) +
((a[0] *b[1]) - (b[0] *a[1])));
System.out.println("El valor cruz es: " +cruz);
---------------------------------------------------------------------------

8 comentarios:

  1. Esta muy interesante el trabajo esta todo completo y muy claro el codigo y entendible...
    Utilizas funciones matematicas como pow y acos, solo el double cruz y el double unitario no los utilias en el codigo

    ResponderEliminar
  2. Esta muy bien tu deber, pero tienes variables que no utilizas en el código. seria conveniente que lo revises.

    Buen trabajo Jorge

    ResponderEliminar
  3. SALUDOS 10,muy bueno el trabajito, buen apoyo para la comunidad, el codigo es conciso y preciso, un 10 pa el blog del 10

    ResponderEliminar
  4. el programa esta bien simplificado.. lo veo completo utilizaste todas las fuinciones matematicas para sacar la magnitud y el angulo.. esta muy bien..

    ResponderEliminar
  5. los codigos estan muy bien pero a mi parecer no se encuentra la impresion de la suma, la resta..... bueno... exelente los codigos

    ResponderEliminar
  6. muyy bueno no sabes del apuro que me sacaste camarada bien hecho 10 para tu blog excelente

    ResponderEliminar
  7. amigo por que no colocas donde finalizas los ciclos seriaa de mejor entendimiento para nosotros

    GRACIAS

    ResponderEliminar
  8. El de la suma está mal, tedria que ser asi:

    //SUMA
    int deuda=0;
    int suma[]=new int [101];
    for (int i=100; i>0; i--){
    if (n1[0]==0&&n2[0]==0){//ambos positivos.
    if((n1[i]+n2[i])>9){
    suma[i]=((n1[i]+n2[i])%10)+deuda;
    deuda=1;
    }
    else{
    suma[i]=(n1[i]+n2[i])+deuda;
    deuda=0;
    } }

    De esta forma no desprecias el termino 10 en la suma y sale bien el resultado

    ResponderEliminar