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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Java / Re: Devolver vector en Java en: 19 Octubre 2012, 15:31 pm
Hola Seruk,

perdona, pero qué es VPL?

Otra cosa, sin tener que ver con tu problema principal, más una cuestión de eficiencia. En lugar de llamar tantas veces a la función tamaño(Polinomio p) dentro de suma() y resta() yo la llamaría sólo una vez al inicio de la función y asignaría su valor a una variable del ámbito de la función (e.g. int tam = tamaño(p2);). En el caso que muestras el tiempo que gasta la función es cuasi despreciable, pero en otros casos con operaciones más complejas (que la función incluya bucles, por ejemplo) puedes llegar a ganar varios órdenes de magnitud en eficiencia del algoritmo.

Saludos!
2  Programación / Java / Re: Devolver vector en Java en: 19 Octubre 2012, 11:48 am
Hola Seruk,

no te haré el ejercicio, pero intentaré darte una pista por lo que he visto en el código...  ;D

Antes decir que la función tamaño(p2) no se que hace (no la veo declarada en ningún lado en el código que has pasado) aunque entiendo que es similar a grado() (y si es así no se porque no haces p2.grado()).

El error que te da es porque llamas a un índice del array que no existe (presumiblemente de pres). Te has planteado que pasaría si el tamaño del Polinomio que estás tratando fuese mayor que el de p2 a la hora de crear el array pres?

A ver si esto te ayuda :)

Un saludo!
3  Programación / Java / Re: Devolver vector en Java en: 18 Octubre 2012, 19:15 pm
Hola Seruk,

lo que estás viendo es la posición de memoria que ocupa vector. Seguro que lo que has hecho es un System.out.println(vector);. Para imprimir los elementos de un array debes iterar sobre el array.

Otra cosa. No tiene sentido declarar una función que devuelve un int[] (o cualquier otra cosa) y devolver una variable global de la clase. Simplemente no estás devolviendo nada a la práctica, si no que lo que haces es modificar el valor de la propia variable global de clase.

He hecho una clase de test que creo resuelve tu problema (fíjate que int[] vector... está declarado en la propia función).

Código:
public class DevolverVector {

int grade = 3;
int[] p= {1,2,3,4};

//COEFICIENTES
public int[] coeficientes(){
int[] vector = new int[grade+1];
for (int i = 0; i<grade+1; i++){
vector[i]=p[i];
}
return vector;
}


public static void main(String[] args) {
DevolverVector dv = new DevolverVector();

int[] test = dv.coeficientes();

System.out.println( "Posición de memoria en la VM:" );
System.out.println( test );

System.out.println();
System.out.println( "Elementos del array:" );
for (int i = 0 ; i < test.length ; i++ ) {
System.out.print(test[i]);
if ( i < test.length - 1 ) {
System.out.print(",");
}
}

}

}

El resultado es:
Código:
Posición de memoria en la VM:
[I@3487a5cc

Elementos del array:
1,2,3,4

Espero haberte ayudado.

Un saludo!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines