Vale muchas gracias, voy a mirar con calma lo que me dices. El problema que tengo es que quiero hacer lo mismo que he hecho para consola pero con arrays y en una GUI.
No hay ninguna direferencia en las operaciones, sean manejadas desde la consola o desde una interfaz; las cálculos, el contenido de las variables, etc. son exactamente los mismos. Lo único que tienes que cambiar es el modo de mostrar la informacion por pantalla, la introduccion de datos por parte del usuario, etc. y esos aspectos no afectan a la funcionalidad de tu programa.
Interfaces gráficas:
http://eui.upm.es/~jbobi/jbobi/LibroJava/193-246.pdfhttps://www.fdi.ucm.es/profesor/balta/traspasjava/12swing_gui.pdfAqui no estás indicando los índices:
for (i=0; i<10;i++){
System.
out.
print ("Introduce numero x: "); vectorx=sc.nextInt();
}
for (j=0; j<vectory.length;j++){
System.
out.
print ("Introduce numero y: "); vectory[j]=sc.nextInt();
}
for (i=0; i<vectorx.length;i++){
System.
out.
printf("%d\n",vectory
); }
Seria así:
for (i=0; i < vectorx.length; i++){
System.
out.
print ("Introduce numero x: "); vectorx[i] = sc.nextInt();
}
for (j=0; j < vectory.length; j++){
System.
out.
print ("Introduce numero y: "); vectory[j]=sc.nextInt();
}
for (i=0; i<vectorx.length; i++){
System.
out.
printf("%d\n",vectory
[i
]); }
*Revisa todo el código¿Por qué en el último bucle utilizas el tamaño de "vectorx" como condición de fin pero trabajas con "vectory"?; aunque el tamaño sea el mismo debes poner el que corresponda en cada momento para futuras modificaciones.
int xy1= vectorx[0]*vectory[0];
int xy2= vectorx[1]*vectory[1];
int xy3= vectorx[2]*vectory[2];
int xy4= vectorx[3]*vectory[3];
int xy5= vectorx[4]*vectory[4];
int xy6= vectorx[5]*vectory[5];
int xy7= vectorx[6]*vectory[6];
int xy8= vectorx[7]*vectory[7];
int xy9= vectorx[8]*vectory[8];
int xy10= vectorx[9]*vectory[9];
System.
out.
print("xy es: "+ xy1
+ "\n"); System.
out.
print("xy es: "+ xy2
+ "\n"); System.
out.
print("xy es: "+ xy3
+ "\n"); System.
out.
print("xy es: "+ xy4
+ "\n"); System.
out.
print("xy es: "+ xy5
+ "\n"); System.
out.
print("xy es: "+ xy6
+ "\n"); System.
out.
print("xy es: "+ xy7
+ "\n"); System.
out.
print("xy es: "+ xy8
+ "\n"); System.
out.
print("xy es: "+ xy9
+ "\n"); System.
out.
print("xy es: "+ xy10
+ "\n");
Esto se puede simplificar:
for(int i = 0; i < N; i++)
System.
out.
println("Posicion XY" + i
+ ": " + vectorx
[i
]*vectory
[i
]);
Creas un montón de variables que solo utilizas para mostrar su valor por pantalla, es un uso incorrecto de la memoria; debes imprimir directamente:
System.
out.
println(var1
+ var2
+ var3...
);
En vez de escribir 20 veces todo quiero usar bucles y en vez de consola introducir los 20 valores por dos textfield ( uno para X y otro para Y ) y meterlos en un array, luego hacer operaciones con esos valores introducidos. Es la variante de puntuaciones directas del coeficiente de correlación de Pearson.
Para el coeficiente de correlación de Pearson no necesitas más que 3 variables:
-Una para almacenar la covarianza entre X e Y.
-Otra para guardar la desviación típica de X.
-Y otra para la desviación típica de Y.
Crea un método al que le pases los vectores X e Y y te devuelva su covarianza. Del mismo modo implementa un método que calcule la desviación tipica de una variable aleatoria cuantitativa. Con los 3 valores que te devuelven esas funciones puedes calcular el coeficiente de correlación.
Utiliza las etiquedas GeSHi y manten el sangrado en todo el programa para que el código quede más claro de cara a otros foreros.
Un saludo.