Foro de elhacker.net

Programación => 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
  1. //declaras el array
  2. int filas=2;
  3. int columnas=2;
  4. int matrix[][]=new int[2][2];
  5. //luego llenas la matriz
  6. //recorres el array para filas y columnas
  7. int sumas[]=new int[];
  8. //y llenas otro vector con las sumas recpectivas de cada fila
  9. int aux=0;
  10. for(int i=0;i<=filas;i++){
  11. for(int j=0;j<=columnas;j++){
  12.    sumas[i]+=matrix[i][j];        
  13. }
  14. }
  15. //luego ya tienes las sumas de cada fila en el vector sumas
  16.  

Código
  1. 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

Código:
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:
Código:
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...

Código:
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 ...
Citar
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 ??

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