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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: [1]
1  Programación / Java / Re: Devolver vector en Java en: 19 Octubre 2012, 18:11 pm
Acabo de modificarlo. Está tal como lo dijiste.
Tienes razón. No hay necesidad de llamar varias veces a la función. Gracias

VPL es Visual Programming Language. Es una aplicación (Entorno de Desarrollo) desarrollada por Microsoft, programada en java (Como la mayoría). La diferencia es que esta está soportada por el servidor de docencia de la universidad. Curiosamente se usa en el navegador, aunque yo no la consideraría "entorno de desarrollo"
2  Programación / Java / Re: Devolver vector en Java en: 19 Octubre 2012, 15:19 pm
No, no. No quiero que me hagas el ejercicio, sería contaproducente para mi, por lo que te lo agradezco.

Código:
	private final int tamaño (Polinomio p2){
int tam = 0;
if (p2.p.length>p.length){
tam = p2.p.length;
} else {
tam = p.length;
}
return tam;
}


Como puedes ver, he comprobado qué tamaño es mayor.
Siempre se suman los índices, por lo que nunca superará el tamaño inicial.
Creo que el error está en el constructor.
Voy a intentar solventarlo. Desde que lo solucione, os aviso.

Lo curioso es que el error lo muestra VPL, el calificador... pero compila...

3  Programación / Java / Re: Devolver vector en Java en: 18 Octubre 2012, 21:19 pm
Efectivamente, me has ayudado mucho.
Lo que no se, MonMa, es si puede aplicarse al enunciado. Es muy ambiguo, fíjate:
Cita de: PROFESORES
Un método llamado coeficientes que devuelve un vector de enteros, de tamaño grado+1, que representa los coeficientes del Polinomio desde el de menor grado al de mayor grado. Modificar el vector devuelto no debe modificar el polinomio.

Es curioso. Tal vez haya interpretado mal y "devolver" lo haya confundido con imprimir.

Tu respuesta me agrada, sinceramente.
Una cosa más (pertenece al mismo código). Verás, estoy haciendo algunas  pruebas de resta y suma de polinomios. Parte del código de la clase UsaPolinomio es este:

Código:
public class UsaPolinomio {
public static void main(String[] args){
int[] p= {1,2,3,0,6,7};
int[] p2={5,0,0,5,6};
Polinomio polinomio = new Polinomio(p);
Polinomio polinomio2 = new Polinomio(p2);

System.out.println("El grado del polinomio actual es "+polinomio.grado());
System.out.println("El valor del polinomio, para x = 3, es: "+polinomio.valor(3));
System.out.println("La suma de su polinomio y el polinomio p2 es: "+polinomio.suma(polinomio2));
System.out.println("La resta de su polinomio y el polinomio p2 es: "+polinomio.resta(polinomio2));
}
}

La clase Polinomio, tiene la siguiente estructura para los métodos requeridos:
NOTA IMPORTANTE: Los grados de los polinomios equivalen a su índice.

Código:

public class Polinomio {
private int grade;
private int[] p={};

public Polinomio (){
grade = 0;
ind = 0;
}

public Polinomio (int[] p){
this.p = p;

// GRADO DEL POLINOMIO EN CUESTIÓN
for (int i = p.length-1; i > 0; i--){
if (p[i] != 0){
this.grade=i;
break;
}
}
}

// GRADO
public int grado (){
return grade;
}

// SUMA
public Polinomio suma (Polinomio p2){
int[] pres = new int [tamaño(p2)];
for (int i = 0; i<tamaño(p2); i++){
pres[i] = p[i] + p2.p[i];
if (tamaño(p2)==p.length && i == p2.p.length-1){
i++;
while (i<tamaño(p2)){
pres[i] = p[i];
i++;
}
} else if (tamaño(p2)==p2.p.length && i == p.length-1){
i++;
while (i<tamaño(p2)){
pres[i] = p2.p[i];
i++;
}
}
}
return new Polinomio (pres);
}


// RESTA
public Polinomio resta (Polinomio p2){
int[] pres = new int [tamaño(p2)];
for (int i = 0; i<tamaño(p2); i++){
pres[i] = p[i] - p2.p[i];
if (tamaño(p2)==p.length && i == p2.p.length-1){
i++;
while (i<tamaño(p2)){
pres[i] = p[i];
i++;
}
} else if (tamaño(p2)==p2.p.length && i == p.length-1){
i++;
while (i<tamaño(p2)){
pres[i] = p2.p[i];
i++;
}
}
}
return new Polinomio (pres);
}
}

Bien. He conseguido que haga unas perfectas sumas y restas. Al menos aparentemente. Por ejemplo, la consola devuelve:
(Recordad el orden de lo coeficientes.

(Hice un método toString qu eno puedo poner aquí para evitar copias DENTRO de la propia facultad.

Aparentemente está bien, pero desgraciadamente no es así para VPL....



Si por casualidad sabéis el por qué de la excepción... sería genial.
De todos modos intentaré solventarlo, aunque llevo días con esto.
Por cierto, empezamos con Java hace tan solo un mes....
4  Programación / Java / Devolver vector en Java en: 18 Octubre 2012, 16:56 pm
Buenas.
Necesito ayuda con respecto a un ejercicio de la facultad.
Debo devolver en un método, un vector de enteros (o array), de los elementos pasados por parámetro en la clase principal.
Ese es el método de la clase Polinomio:
Código:
	//COEFICIENTES
public int[] coeficientes(){
for (int i = 0; i<grade+1; i++){
vector[i]=p[i];
}
return vector;
}
Vector ha sido declarado en la clase Polinomio, y este s un método de dicha clase.
La variable vector es:
Código:
	int[] vector = new int [grade+1];

Las variables que parecen extrañas (como grade) han sido declaradas previamente y debidamente introducidas, luego no hay problema con ellas
Esto es lo que devuelve: [I@5e8fce95
Es curioso, pues los elementos que tiene p[] son los siguientes:
Código:
		int[] p= {1,2,3,4};

Desconozco lo que debo hacer. Según tengo entendido, un vector NO puede devolverse tal cual. ¿Alguien puede ayudarme?
Gracias.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines