Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: darkxxx en 30 Junio 2007, 04:52 AM

Título: como lo hago ??
Publicado por: darkxxx en 30 Junio 2007, 04:52 AM
bueno señores mi pregunta es la siguiente estoy trabajando con matrices en java y lo que quiero es que me sume por ejemplo la segunda fila luego pase a sumar la segunda fila y la tercera pero solamente la suma de cada fila porque los que he hecho o suma toda la matriz o suma la primera fila pero lo suma con el resultado de la segunda fila y asi sucesivamente que tengo que hacer para que me sume la primera fila de la segunda y de la tercera

gracias y se los agradezco
Título: Re: como lo hago ??
Publicado por: »~^~«CkNU!»~^~« en 1 Julio 2007, 09:34 AM
te juro que lo leí varias veces y no pude entender lo que querés hacer. Podés explicar un poquito más detalladamente y tratando de no ser tan entreverado? :D
Título: Re: como lo hago ??
Publicado por: coolfrog en 1 Julio 2007, 23:49 PM
dun't underestand lo que dices
Título: Re: como lo hago ??
Publicado por: darkxxx en 2 Julio 2007, 01:45 AM
jeje tienen razon creo que no me di a entender muy bien que digamos aqui le vuelvo a explicar ejemplo yo tengo una matriz 3*3 y lo que quiero es un programa que me sume las filas de esa matriz ejemplo

5-4-2
3-4-8
3-7-3

esa es la matriz ahora lo que yo quiero es que me aparezcan la suma de cada fila es decir

11
15
13

y hasta ahora lo que he hecho me suma toda la matriz o si no me muestra el resultado de la suma de la primera fila 11 pero me la suma a la segunda es decir 26 y la tercera fila la suma me da la suma de todas las filas es decir 39 y lo que quiero es que sume cada fila es decir que me la muestre

11
15
13

espero que me hayan entendido saludos
Título: Re: como lo hago ??
Publicado por: alvk4r en 2 Julio 2007, 16:17 PM
Bueno hermano, creo que lo que necesitas es una array multidimensional. No te pongo el ejemplo,  aqui, para no andar duplicando contenidos , la respuesta que buscas esta en http://foro.elhacker.net/index.php/topic,170168.msg805600.html#msg805600.  Lo acabo de hacer, compilar y probar y funciona.





Título: Re: como lo hago ??
Publicado por: coolfrog en 3 Julio 2007, 02:22 AM
El codigo puede ser algo asi,  con dos for's se puede mejorar.
Código (java) [Seleccionar]

//declaras el array
int filas=2;
int columnas=2;
int matrix[][]=new int[2][2];
//luego llenas la matriz
//recorres el array para filas y columnas
int sumas[]=new int[];
//y llenas otro vector con las sumas recpectivas de cada fila
int aux=0;
for(int i=0;i<=filas;i++){
for(int j=0;j<=columnas;j++){
    sumas[i]+=matrix[i][j];       
}
}
//luego ya tienes las sumas de cada fila en el vector sumas


Código (xml) [Seleccionar]
Saludos
Título: Re: como lo hago ??
Publicado por: darkxxx en 3 Julio 2007, 04:46 AM
gracias pana coolfrog por tu respuesta pero tengo varios problemas con ese codigo que colocastes primero para que es el aux=0; segundo de que tamaño declaras el tamaño del vector ahora cuando lo trate de hacer con un ejercicio que tenia no me corrio este es el que yo tengo

public static void ventpro(int ma[][],String pro[]) {
int x,y,tv=0;

int sumas[]=new int[];

for(int i=0;i<=ma.length;i++) {
for(int j=0;j<=ma[0].length;j++) {   
sumas[i]+=ma[i][j];
System.out.println(sumas[i]);         
}
}

}
}


pero me salen cosas raras y problemas con el array ah y otra cosa hagase notar que estoy haciendo el ejercicio usando metodos

para alvk4r pana lo que pasa es que ese metodo que tu colocastes hay que declarar muchas variables y lo que yo queria era hacerlo usando un for

igualmente saludos
Título: Re: como lo hago ??
Publicado por: coolfrog en 3 Julio 2007, 05:11 AM
no te lo hice todo el codigo por que no tengo tiempo, si la variable aux esta demas (es  que primero pense almacenar cada suma en variables pero mejor con otro vector) y me olvide de borrar la variable. El tamaño del vector donde vas a tener tus sumas puedes definirlo como el numero de filas de la matriz asi:

int sumar =new int[matrix.length];




Título: Re: como lo hago ??
Publicado por: »~^~«CkNU!»~^~« en 3 Julio 2007, 13:38 PM
Esto te tendría que funcionar...

int sumas[]=new int[ma.length];
for(int i=0; i<=ma.length; i++)
{
for(int j=0; j<=ma.length; j++)
{   
sumas[i]+=ma[i][j];         
}
System.out.println(sumas[i]);
}
Título: Re: como lo hago ??
Publicado por: darkxxx en 4 Julio 2007, 03:25 AM
gracias panas y gracias a todos lo unico que tuve que modificar fue el <= de los for i y j porque me daba error de index out of bond por solo < de verdad se los agradezco bastante

solo una pregunta porque se tuvo que crear un vector y que hace ese vector que sabe que despues de la suma de la primera fila la guarda y empieza desde 0 a sumar la segunda fila y asi con la tercera ??

gracias y saludos
Título: Re: como lo hago ??
Publicado por: alvk4r en 5 Julio 2007, 14:58 PM
de nada pana, se que se puede mejorar, posiblemente trabaje en eso... pero bueno, me sumaba las filas.... XD Ahora hice una modificacion, usando un bucle para imprimir los resultados....
Título: Re: como lo hago ??
Publicado por: Hadess_inf en 5 Julio 2007, 17:26 PM
Bueno ...
Citarsolo una pregunta porque se tuvo que crear un vector y que hace ese vector que sabe que despues de la suma de la primera fila la guarda y empieza desde 0 a sumar la segunda fila y asi con la tercera ??

Lo que sucede que en la matriz tienes filas, y segun el indice de mismas sabes que inicializaras en 0. Es decir ....

1-4-2    i=[0]
2-3-4    i=[1]
2-6-5    i=[2]

f=3         =  filas
c=3        =  columnas
M[f][c]    = Matrix 3x3
S[f]        = suma de las filas
inicializar vector S
el bucle for para recorres filas y columnas

For f=0 to 2
  for c=0 to 2
     S[f]=S[f] + M[f][c]
  next
next

Espero haber entendido bien la pregunta,
y disculpen por la mezcla de lenguajes XD