Foros del Web » Programación para mayores de 30 ;) » Java »

Hola me gustaría poder hacer operacion con vectores en java!!

Estas en el tema de Hola me gustaría poder hacer operacion con vectores en java!! en el foro de Java en Foros del Web. Hola me gustaría poder hacer esta operacion con vectores: Sumar([1,2,3][4,5,6]) => Bien esta me sale perfecta Pero si en vez de dos vectores, le pongo ...
  #1 (permalink)  
Antiguo 28/03/2012, 17:08
 
Fecha de Ingreso: febrero-2010
Mensajes: 9
Antigüedad: 14 años, 2 meses
Puntos: 0
Hola me gustaría poder hacer operacion con vectores en java!!

Hola me gustaría poder hacer esta operacion con vectores:

Sumar([1,2,3][4,5,6]) => Bien esta me sale perfecta

Pero si en vez de dos vectores, le pongo un vector y otra suma, es decir:

Sumar([1,2,3],sumar([4,5,6][7,8,9))

Ya esto no me sale, me debería salir para todas las operaciones que yo pongo dentro del sumar.

Aqui pongo mi clase Instruccion para que me ayudeis

public class Instruccion {

public Instruccion(String cadena) {
// TODO Auto-generated constructor stub

String vectores = "";
String operacion = "";
String operacion2 = "";
String otraOperacion = "";
String resultado ="";

int contador = 0;

do{

operacion = operacion + cadena.charAt(contador);

contador ++;
} while (cadena.charAt(contador)!='(');

int nivel = 1;
int corchete=0;

// Tengo que comprobar si tiene un corchete o varios para meterme en el producto escalar y en el logaritmo
// tambien tendre que comprobar para cargar y salvar

String operando1 = "";
String operando2 = "";

List vector = new ArrayList();

for (int i = operacion.length()+1;i<cadena.length();i++){

String cadenaComprobar = "";


while (nivel!=0){

//toma el primer operando hasta la ,

if ((cadena.charAt(i)=='[') || (cadena.charAt(i)==']')){
operando1=operando1;
} else {
operando1=operando1+cadena.charAt(i);
}

if (cadena.charAt(i)=='('){
nivel++;
}else if(cadena.charAt(i+1)==')'){
nivel--;
}

if (cadena.charAt(i+1)==']'){
nivel=0;
}
i++;
}
nivel=1;
i=i+2;

char letra;
if (i<cadena.length()){
letra = cadena.charAt(i);
}
else {
letra = ')';
}

while (nivel!=0){
//toma el segundo operando hasta el final )

if ((isNumeric(letra)) || (letra==',')||(letra=='[')){

if ((cadena.charAt(i)=='[') || (cadena.charAt(i)==']')){
operando2=operando2;
} else {
operando2=operando2+cadena.charAt(i);
}
if (cadena.charAt(i)=='('){
nivel++;
}else if(cadena.charAt(i+1)==')'){
nivel--;
}

if (cadena.charAt(i+1)==']'){
nivel=0;
}

i++;
letra = cadena.charAt(i);

} else {
if (letra != ')'){
int indice = i;
while (indice<cadena.length()-1){
otraOperacion=otraOperacion + cadena.charAt(indice);
indice ++;
}
if(cadena.charAt(indice)==')'){
nivel --;
}

if (!otraOperacion.equals("")){

Instruccion instruccion = new Instruccion(otraOperacion);

// LLEVAR LA CUENTA DE LAS INSTRUCCIONES
}



// coger las letras y llamar a queFuncionEs
// me creo queFuncionEs para luego llamar a dicha funcion
}else{
nivel--;
}
}
}
}


operacion = operacion.toLowerCase();

if (operacion.equals("sumar")){

Suma sumar = new Suma();
//if (operando1.length()==operando2.length()){

resultado = sumar.operacion(operando1, operando2);

//}else if (operando1.length()<operando2.length()){
// resultado = sumar.operacion(operando1, resultado);
// }else if (operando1.length()>operando2.length()){
// resultado = sumar.operacion(resultado, operando2);
// }


if (resultado.equals("[False]")){
System.err.println("Error en el número de argumentos de alguno de los vectores");
} else {
System.out.println("El valor de la suma de los dos vectores es: " +resultado);
}

}

if (operacion.equals("restar")){

Resta restar = new Resta();
resultado = restar.operacion(operando1, operando2);

if (resultado.equals("[False]")){
System.err.println("Error en el número de argumentos de alguno de los vectores");
} else {
System.out.println("El valor de la resta de los dos vectores es: " +resultado);
}

}

if (operacion.equals("multiplicar")){

Multiplicacion multiplicar = new Multiplicacion();
resultado = multiplicar.operacion(operando1, operando2);

if (resultado.equals("[False]")){
System.err.println("Error en el número de argumentos de alguno de los vectores");
} else {
System.out.println("El valor de la multiplicación de los dos vectores es: " +resultado);
}

}

if (operacion.equals("producto escalar")){

ProductoEscalar producto = new ProductoEscalar();
resultado = producto.operacion(operando1);

if (resultado.equals("[False]")){
System.err.println("Error en el número de argumentos de alguno de los vectores");
} else {
System.out.println("El valor del producto escalar del vector es: " +resultado);
}

}

if (operacion.equals("logaritmo")){

Logaritmo logaritmo = new Logaritmo();
resultado = logaritmo.operacion(operando1);

if (resultado.equals("[False]")){
System.err.println("Error en el número de argumentos de alguno de los vectores");
} else {
System.out.println("El valor del logarítmo de del vector es: " +resultado);
}

}

if (operacion.equals("grabar")){

String ruta =operando1;
Grabar grabar = new Grabar();
grabar.grabacion(ruta);

}

if (operacion.equals("cargar")){

String ruta =operando1;
Cargar cargar = new Cargar();
cargar.cargando(ruta);

}


System.out.println(operacion);

}

private static boolean isNumeric(char letra){
if ((letra=='1')||(letra=='2')||(letra=='3')||(letra= ='4')||(letra=='5')||
(letra=='6')||(letra=='7')||(letra=='8')||(letra== '9')||(letra=='0')){
return true;
}else{
return false;
}
}
}

Me lo hace todo correcto, hasta que llamo a restar o sumar con un vector y dentro otra suma u otra resta. Se que tengo mas fallos en mi código, pero ésta es mi prioridad, por mil vueltas que le he dado y mil cosas que he intentado no me sale por mi mismo.

Un saludo y muchas gracias por adelantado!!!

Etiquetas: clase, operacion, poder, string, vectores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:52.