Suma de Matriz (Array)

Ir abajo

Suma de Matriz (Array)

Mensaje  Admin (Viruz) el Mar Oct 09, 2012 7:45 pm

Hola amigos después de tanto tiempo que no he subido un programa en Java hoy les traigo un programa muy interesante, como todos los programadores conocemos las matrices y vectores en java ya que son de mucha ayuda con el paso del tiempo. En esta ocasión haremos la suma de toda una matriz en Java, esto quiere decir que se suman las filas y las columnas y se arroja el valor total de esta matriz.
Imágenes

[Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver este vínculo]
¿Como funciona el Programa?

  1. Corre el programa ya sea en NetBeans o con el .jar.
  2. Al iniciar el programa aparecerá nuestra ventana con su respectivo panel.
  3. Escoge de que dimensión quieres tu matriz (tanto en filas y columnas) y da clic en "Aceptar".
  4. En la Siguiente ventana llenarás tu matriz con valores que sean de tu gusto, al realizar todo el llenado de la matriz lo siguiente es sacar el resultado final.
  5. Inmediatamente hará la suma y desplegará en una etiqueta el resultado en la parte superior derecha.
Código

Clase Main
01 /**
02 *
03 * @author Jesus Ivan
04 */
05 public class Main {
06 public static void main ( String [] args){
07 SumaMatrizGUI ventanaInicial;
08 EntradaDatosGUI ventanaEntradaSalida;
09 Entidad entidad;
10 Coordinador coordinador;
11
12 ventanaInicial = new SumaMatrizGUI( "Viruz Blog: Suma de Matriz");
13 ventanaEntradaSalida = new EntradaDatosGUI ( );
14
15 entidad = new Entidad ( );
16 coordinador = new Coordinador ( );
17 ventanaInicial.setLocationRelativeTo(null);
18 ventanaEntradaSalida.setLocationRelativeTo(null);
19
20 ventanaInicial.setCoordinador ( coordinador );
21 ventanaEntradaSalida.setCoordinador ( coordinador );
22
23 coordinador.setVentanaInicial ( ventanaInicial );
24 coordinador.setVentanaEntradaSalida ( ventanaEntradaSalida );
25 coordinador.setEntidad ( entidad );
26 }
27 }

Clase Entidad
01 /**
02 *
03 * @author Jesus Ivan
04 */
05 public class Entidad{
06
07 //Metodo get regresa el calculo de suma
08 public int obtenerResultado(int datos [][]){
09 int i, j, suma;
10
11 suma = 0;
12
13 for ( i = 0; i < datos.length; i++ )
14 {
15 for ( j = 0; j < datos [ 0 ].length; j++ ){
16 suma += datos [ i ][ j ];
17 }
18 }
19 return suma;
20 }
21 }

Clase Coordinador
01 /**
02 *
03 * @author Jesus Ivan
04 */
05 public class Coordinador {
06 private SumaMatrizGUI miVentanaInicial;
07 private EntradaDatosGUI miVentanaEntradaSalida;
08 private Entidad miEntidad;
09
10 public void procesoVentanaEntrada ( ){
11 int datos [ ][ ], suma;
12
13 datos = miVentanaEntradaSalida.getMatriz();
14 //suma es igual ala referencia de la clase Entidad metodo obtenerResultados.
15 suma = miEntidad.obtenerResultado(datos);
16
17 miVentanaEntradaSalida.setResultado(suma);
18 }
19
20 public void procesoVentanaInicial(){
21 int numeroFilas, numeroColumnas;
22
23 numeroFilas = miVentanaInicial.getNumeroFilas ( );
24 numeroColumnas = miVentanaInicial.getNumeroColumnas ( );
25
26 miVentanaEntradaSalida.setDimensiones(numeroFilas, numeroColumnas);
27
28 miVentanaInicial.dispose();
29 miVentanaEntradaSalida.construyeVentana ("Viruz Blog: Entrada de Datos");
30 miVentanaEntradaSalida.setLocationRelativeTo(null);
31
32 }
33
34 //***METODOS SET***
35 public void setEntidad(Entidad nuevaEntidad ){
36 miEntidad = nuevaEntidad;
37 }
38
39 public void setVentanaInicial(SumaMatrizGUI nuevaVentana ){
40 miVentanaInicial = nuevaVentana;
41 }
42
43 public void setVentanaEntradaSalida(EntradaDatosGUI nuevaVentana){
44 miVentanaEntradaSalida = nuevaVentana;
45 }
46 }

Clase EntradaDatosGUI

01 /**
02 *
03 * @author Jesus Ivan
04 */
05 import java.awt.Container;
06 import java.awt.event.ActionEvent;
07 import java.awt.event.ActionListener;
08 import javax.swing.JButton;
09 import javax.swing.JFrame;
10 import javax.swing.JLabel;
11 import javax.swing.JTextField;
12
13 public class EntradaDatosGUI extends JFrame implements ActionListener{
14 private Coordinador miCoordinador;
15 private Container miContenedor;
16 private JTextField miCampoTexto [ ][ ];
17 private JLabel indices [ ][ ];
18 private JButton botonAceptar;
19 private JLabel miEtiqueta;
20 private int matriz [ ][ ];
21 private int numeroFilas;
22 private int numeroColumnas;
23
24 public void construyeVentana ( String titulo ){
25 int i, j;
26
27 miContenedor = getContentPane();
28 miContenedor.setLayout( null );
29
30 miCampoTexto = new JTextField [ numeroFilas ][ numeroColumnas ];
31 indices = new JLabel [ numeroFilas ][ numeroColumnas ];
32
33 matriz = new int [ numeroFilas ][ numeroColumnas ];
34
35 for ( i = 0; i < numeroFilas; i++ )
36 {
37 for ( j = 0; j < numeroColumnas; j++ ){
38 miCampoTexto [ i ][ j ] = new JTextField ( "0" );
39 indices [ i ][ j ] = new JLabel ( );
40 }
41 }
42
43 botonAceptar = new JButton( );
44 miEtiqueta = new JLabel( );
45 miEtiqueta.setBounds ( 100, 10, 120, 30 );
46
47 for ( i = 0; i < numeroFilas; i++ )
48 {
49 for ( j = 0; j < numeroColumnas; j++ ){
50 miCampoTexto [ i ][ j ].setBounds (j*50 +25, i*30 +50, 40, 25);
51 indices [ i ][ j ].setBounds (j*50 +5, i*30 +50, 15, 25);
52 indices [ i ][ j ].setText ( i + "" );
53 }
54 }
55 //Asigno nombre al Boton
56 botonAceptar.setText( "Aceptar" );
57 botonAceptar.setBounds ( 10, 10, 80, 30 );
58
59 for( i = 0; i < numeroFilas; i++ )
60 {
61 for( j = 0; j < numeroFilas; j++ ){
62 miContenedor.add ( miCampoTexto [ i ][ j ] );
63 miContenedor.add ( indices [ i ][ j ] );
64 }
65 }
66
67 //Agrega componentes al Contenedor
68 miContenedor.add ( miEtiqueta );
69 miContenedor.add ( botonAceptar );
70
71 setTitle ( titulo );
72 setSize ( 400,400 );
73 setLocation ( 100,100 );
74 setVisible (true);
75
76 botonAceptar.addActionListener ( this );
77 }
78
79 public void actionPerformed (ActionEvent e){
80 //Ejecuta de La Clase Coordinador el metodo ProcesoVentanaEntrada.
81 miCoordinador.procesoVentanaEntrada ( );
82 }
83
84 public int [ ][ ] getMatriz(){
85 int i, j;
86
87 for ( i = 0; i < numeroFilas; i++ )
88 {
89 for ( j = 0; j < numeroColumnas; j++ ){
90 matriz [ i ][ j ] = Integer.parseInt
91 ( miCampoTexto [ i ][ j ].getText());
92 }
93 }
94 return matriz;
95 }
96
97 //**METODOS SET****
98 public void setCoordinador ( Coordinador nuevoCoordinador ){
99 miCoordinador = nuevoCoordinador;
100 }
101 public void setDimensiones( int cantidadFilas, int cantidadColumnas){
102 numeroFilas = cantidadFilas;
103 numeroColumnas = cantidadColumnas;
104 }
105
106 public void setResultado( int resultado){
107 miEtiqueta.setText ( "La suma es : " + resultado );
108 }
109 }


Vídeo

[Tienes que estar registrado y conectado para ver este vínculo]

Descarga el Código
[Tienes que estar registrado y conectado para ver este vínculo]
Autor: Viruz study
Enlace: [Tienes que estar registrado y conectado para ver este vínculo]

_________________
[Tienes que estar registrado y conectado para ver esa imagen]
avatar
Admin (Viruz)
Admin

Mensajes : 148
Fecha de inscripción : 23/09/2012
Edad : 30
Localización : Desktop

http://viruz.foroactivo.mx

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.