☕ Calculadora De Matriz En Java
Categorías: Java

☕ Calculadora De Matriz En Java

Anteriormente había compartido una sencilla interfaz de calculadora de matriz en Java, pero el ejercicio esta algo incompleto, ya que no cuenta con alguna operación, funcional. En este articulo complementare el ejercicio 😉 Para que puedas ver las re utilización de código en Java, usare los métodos de otras fuentes para realizar las operaciones, claro, usando mi propia interfaz 🙂

Operaciones En Calculadora De Matriz En Java

¿Que encontrarás en este articulo? Tendrás una calculadora de matriz en Java totalmente funcional, en la cual podrás realizar suma, resta y multiplicación entre dos matrices, multiplicación de una matriz por un escalar, además de tener la opción de limpiar las operaciones que hayas realizado con la calculadora de matriz en Java.

Lo Que Tendrás

Como se ha dicho, se ha usado un anterior ejemplo con el cual solo se tenia la interfaz de la calculadora, en este articulo ya funcionara la calculadora, como se puede ver en la siguiente imagen:

Desbloquea el contenido con una acción social...

Comparte este articulo y obtén el contenido premium!

Facebook
Twitter
Linkedin0

O te dejo el siguiente vídeo, donde te explico como funciona el código que encontrarás en este articulo 😉

Código De Calculadora De Matriz En Java

No es bueno alargar esto de compartir el código, verdad? Pues bien, al igual que el ejercicio de la interfaz de calculadora de matriz en Java, este ejemplo cuenta con las mismas clases, además de tener una adicional donde se manejan las operaciones, claro, espero que al igual que como lo hice, respeten la fuente de los métodos necesarios para las operaciones con las matrices.

Clase Principal: Contiene el método main y el código necesario para dar un diseño dependiendo si se ejecuta en Windows ó Linux.
Clase Interfaz:   Contiene el código necesario para mostrar una ventana con sus respectivos elementos, además de manejar los eventos de cada objetos como un botón ó un choice.
Clase Operaciones:  Contiene los métodos necesarios para realizar las respectivas operaciones, si deseas añadir mas funciones a la calculadora, solo tendrías que añadir los métodos a esta clase.

Ver Código Clase Principal
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class CalculadoraMatrizJ {
   
    public static void main(String[] args) {        
                
        String ax = System.getProperty("os.name"); //variable que toma el nombre del sistema operativo que se tenga instalado
        
        if(ax.equals("Windows 7") || ax.equals("Windows")){//si es un sistema windows se aplica el skin que tiene java para windows
            try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            interfazMatriz1 objClasInteMat = new interfazMatriz1();
            // TODO code application logic here
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(CalculadoraMatrizJ.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                Logger.getLogger(CalculadoraMatrizJ.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(CalculadoraMatrizJ.class.getName()).log(Level.SEVERE, null, ex);
            } catch (UnsupportedLookAndFeelException ex) {
                Logger.getLogger(CalculadoraMatrizJ.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        if(ax.equals("Linux")){//si es un sistema linux se aplica el skin que tiene java para linux
            try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
            interfazMatriz1 objClasInteMat = new interfazMatriz1();            
            // TODO code application logic here
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(CalculadoraMatrizJ.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                Logger.getLogger(CalculadoraMatrizJ.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(CalculadoraMatrizJ.class.getName()).log(Level.SEVERE, null, ex);
            } catch (UnsupportedLookAndFeelException ex) {
                Logger.getLogger(CalculadoraMatrizJ.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
       
    }
}

Ver Codigo Interfaz
import java.awt.BorderLayout;
import java.awt.BorderLayout;
import java.awt.Choice;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class interfazMatriz1 implements ActionListener {

    JFrame winPrinInterMat;
    JMenuBar barraMenu;
    JMenu jMenu1;
    JMenuItem jMenu11;
    Panel jPMatriz1, jPMatriz2, jpEscalar, jPOperaciones;
    JLabel jlNumeroEscalar;
    JTextField jTMatriz1[][], jTMatriz2[][], jtEscalar;
    Choice chMatriz11, chMatriz12, chMatriz21, chMatriz22;
    JButton jbLimpiar, jbSuma, jbResta, jbMulti, jbMultiMulti;

    public interfazMatriz1() {
        winPrinInterMat = new JFrame("Calculadora De Matriz");

        winPrinInterMat.setLayout(new BorderLayout(2, 2));

        menuPrincipal();
        operaciones();
        matriz1();
        matriz2();

        winPrinInterMat.add(BorderLayout.NORTH, barraMenu);
        winPrinInterMat.add(BorderLayout.EAST, jPOperaciones);
        winPrinInterMat.add(BorderLayout.WEST, jPMatriz1);
        winPrinInterMat.add(BorderLayout.CENTER, jPMatriz2);

        winPrinInterMat.setSize(640, 480);
        winPrinInterMat.setPreferredSize(new Dimension(640, 480));
        winPrinInterMat.setLocation(80, 50);
        winPrinInterMat.setVisible(true);
        winPrinInterMat.setResizable(false);
        winPrinInterMat.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public void menuPrincipal() {

        //Barra de menu, contiene los menus que se muestran y los submenus
        barraMenu = new JMenuBar();

        //Menus
        jMenu1 = new JMenu("Ventana");

        //Opciones primer menu
        jMenu11 = new JMenuItem("Salir");

        //Añadir Item al menu 1        
        jMenu1.add(jMenu11);

        //Añadiendo menus a la barra de menu
        barraMenu.add(jMenu1);

        //añadiendo eventos de click        
        jMenu11.addActionListener(this);
    }

    public void operaciones() {

        jPOperaciones = new Panel();
        jPOperaciones.setLayout(null);

        jbLimpiar = new JButton(new ImageIcon("src/imagenes/limpiar.png"));
        jbSuma = new JButton(new ImageIcon("src/imagenes/suma.png"));
        jbResta = new JButton(new ImageIcon("src/imagenes/resta.png"));
        jbMulti = new JButton(new ImageIcon("src/imagenes/multiplicacion.png"));
        jbMultiMulti = new JButton(new ImageIcon("src/imagenes/multimulti.png"));

        jbLimpiar.setBounds(5, 60, 40, 33);
        jbSuma.setBounds(5, 100, 40, 33);
        jbResta.setBounds(5, 140, 40, 33);
        jbMulti.setBounds(5, 180, 40, 33);
        jbMultiMulti.setBounds(5, 220, 40, 33);

        jPOperaciones.add(jbLimpiar);
        jPOperaciones.add(jbSuma);
        jPOperaciones.add(jbResta);
        jPOperaciones.add(jbMulti);
        jPOperaciones.add(jbMultiMulti);

        jbLimpiar.addActionListener(this);
        jbSuma.addActionListener(this);
        jbResta.addActionListener(this);
        jbMulti.addActionListener(this);
        jbMultiMulti.addActionListener(this);

        jPOperaciones.setSize(60, 280);
        jPOperaciones.setVisible(true);
    }

    public void matriz1() {

        jPMatriz1 = new Panel();
        jPMatriz1.setLayout(null);

        int f, c;

        JLabel jlNomMat1 = new JLabel("Matriz 1");
        jlNomMat1.setFont(new Font("Verdana", Font.BOLD, 13));

        chMatriz11 = new Choice();
        chMatriz12 = new Choice();

        chMatriz11.addItem("");
        chMatriz12.addItem("");

        //Ciclo para añadir los numeros a los choice
        for (int i = 0; i < 6; i++) {
            chMatriz11.addItem("" + (i + 1));
            chMatriz12.addItem("" + (i + 1));
        }

        jlNomMat1.setBounds(114, 220, 80, 20);
        chMatriz11.setBounds(105, 255, 35, 20);
        chMatriz12.setBounds(145, 255, 35, 20);

        evenChoice evenCh = new evenChoice();

        chMatriz12.addItemListener(evenCh);

        jPMatriz1.add(jlNomMat1);
        jPMatriz1.add(chMatriz11);
        jPMatriz1.add(chMatriz12);

        jPMatriz1.setSize(290, 280);
        jPMatriz1.setVisible(true);
    }

    public void matriz2() {

        jPMatriz2 = new Panel();
        jPMatriz2.setLayout(null);

        int f, c, setX = 50, setY = 5;

        JLabel jlNomMat2 = new JLabel("Matriz 2");
        jlNomMat2.setFont(new Font("Verdana", Font.BOLD, 13));

        chMatriz21 = new Choice();
        chMatriz22 = new Choice();

        chMatriz21.addItem("");
        chMatriz22.addItem("");

        //Ciclo para añadir los numeros a los choice
        for (int i = 0; i < 6; i++) {
            chMatriz21.addItem("" + (i + 1));
            chMatriz22.addItem("" + (i + 1));
        }

        jTMatriz2 = new JTextField[6][6];

        /*ciclo para añadir el jtextfield bidimensional al panel 2, se uso dos variables
         * setX y setY, las cuales sirven para crear y configurar la posicion en cada iteracion,
         * por cada ciclo de j se suma 35 para dar el salto a la siguiente fila
         */        for (int i = 0; i < 6; i++) {
            for (int j = 0; j < 6; j++) {
                jTMatriz2[i][j] = new JTextField(" ");
                jTMatriz2[i][j].setBounds(setX, setY, 30, 30);
                jTMatriz2[i][j].setHorizontalAlignment(JTextField.RIGHT);
                setX += 35;
            }
            setX = 50;
            setY += 35;
        }

        /*ciclo para añadir los jtextfield al panel 2 y configurar la visibilidad*/        for (int i = 0; i < 6; i++) {
            for (int j = 0; j < 6; j++) {
                jPMatriz2.add(jTMatriz2[i][j]);
                jTMatriz2[i][j].setVisible(false);
            }
        }

        jlNomMat2.setBounds(114, 220, 80, 20);
        chMatriz21.setBounds(105, 255, 35, 20);
        chMatriz22.setBounds(145, 255, 35, 20);

        evenChoice evenCh = new evenChoice();

        chMatriz22.addItemListener(evenCh);

        jPMatriz2.add(jlNomMat2);
        jPMatriz2.add(chMatriz21);
        jPMatriz2.add(chMatriz22);

        jPMatriz2.setSize(290, 280);
        jPMatriz2.setVisible(true);
    }

    public void jpEscalar() {

        jpEscalar = new Panel();
        jpEscalar.setLayout(null);

        //creando componentes
        jlNumeroEscalar = new JLabel("* Escalar ");
        jtEscalar = new JTextField(4);

        //ubicando componentes
        jlNumeroEscalar.setBounds(10, 40, 100, 20);
        jtEscalar.setBounds(120, 40, 40, 20);

        //añadiendo componentes al panel
        jpEscalar.add(jlNumeroEscalar);
        jpEscalar.add(jtEscalar);

        jpEscalar.setVisible(false);
        jpEscalar.setSize(250, 150);
    }

    public void generarMat1(int f, int c) {
        //Metodo para posicionar cuadros de texto de la primera matriz

        int setX = 50, setY = 5;

        jTMatriz1 = new JTextField[f][c];

        /*ciclo para añadir el jtextfield bidimensional al panel 1, se uso dos variables
         * setX y setY, las cuales sirven para crear y configurar la posicion en cada iteracion,
         * por cada ciclo de j se suma 35 para dar el salto a la siguiente fila
         */        for (int i = 0; i < f; i++) {
            for (int j = 0; j < c; j++) {
                jTMatriz1[i][j] = new JTextField("");
                jTMatriz1[i][j].setBounds(setX, setY, 30, 30);
                jTMatriz1[i][j].setHorizontalAlignment(JTextField.RIGHT);
                setX += 35;
            }
            setX = 50;
            setY += 35;
        }

        /*ciclo para añadir los jtextfield al panel 2 y configurar la visibilidad*/        for (int i = 0; i < f; i++) {
            for (int j = 0; j < c; j++) {
                jPMatriz1.add(jTMatriz1[i][j]);
                jTMatriz1[i][j].setVisible(false);
            }
        }

        for (int i = 0; i < f; i++) {
            for (int j = 0; j < c; j++) {
                jTMatriz1[i][j].setVisible(true);
            }
        }
        winPrinInterMat.pack();
    }

    public void generarMat2(int f, int c) {
        //Metodo para posicionar cuadros de texto de la segunda matriz

        int setX = 50, setY = 5;

        jTMatriz2 = new JTextField[f][c];

        /*ciclo para añadir el jtextfield bidimensional al panel 1, se uso dos variables
         * setX y setY, las cuales sirven para crear y configurar la posicion en cada iteracion,
         * por cada ciclo de j se suma 35 para dar el salto a la siguiente fila
         */        for (int i = 0; i < f; i++) {
            for (int j = 0; j < c; j++) {
                jTMatriz2[i][j] = new JTextField("");
                jTMatriz2[i][j].setBounds(setX, setY, 30, 30);
                jTMatriz2[i][j].setHorizontalAlignment(JTextField.RIGHT);
                setX += 35;
            }
            setX = 50;
            setY += 35;
        }

        /*ciclo para añadir los jtextfield al panel 2 y configurar la visibilidad*/        for (int i = 0; i < f; i++) {
            for (int j = 0; j < c; j++) {
                jPMatriz2.add(jTMatriz2[i][j]);
                jTMatriz2[i][j].setVisible(false);
            }
        }

        for (int i = 0; i < f; i++) {
            for (int j = 0; j < c; j++) {
                jTMatriz2[i][j].setVisible(true);
            }
        }
        winPrinInterMat.pack();
    }

    public int[][] tomarValores(JTextField trin[][]) {

        int temp[][] = new int[trin.length][trin[0].length];

        for (int i = 0; i < trin.length; i++) {
            for (int j = 0; j < trin[0].length; j++) {
                temp[i][j] = Integer.parseInt(trin[i][j].getText());
            }
        }

        return temp;
    }

    @Override
    public void actionPerformed(ActionEvent e) {

        /*Usamos el getSource para saber si el evento fue hecho de determinado componente
         * para esto lo comparamos con el == y el nombre, en cada bloque se ejecuta lo que 
         * deseemos que haga la aplicacion deacuerdo al componente "seleccionado"
         */        int temp[][];

        if (e.getSource() == jMenu11) {
            System.exit(0);
        } else if (e.getSource() == jbSuma) { //cuando se presiona el boton de la suma
            if (chMatriz11.getSelectedItem().equals("") || chMatriz12.getSelectedItem().equals("")
                    || chMatriz21.getSelectedItem().equals("") || chMatriz22.getSelectedItem().equals("")) {
                JOptionPane.showMessageDialog(null, "Para Sumar dos matrices se deben seleccionarn"
                        + "valores en ambas matrices.");

            } else { //cuando se han seleccionado valores en los choice
                if ((chMatriz11.getSelectedIndex() == chMatriz21.getSelectedIndex())
                        && (chMatriz12.getSelectedIndex() == chMatriz22.getSelectedIndex())) {

                    temp = operaciones.sumarDosMatrices(tomarValores(jTMatriz1), tomarValores(jTMatriz2));

                    ventanaRespuesta resp = new ventanaRespuesta(temp);

                } else {
                    JOptionPane.showMessageDialog(null, "no se puede realizar la suma");
                }
            }
        } else if (e.getSource() == jbResta) {
            if (chMatriz11.getSelectedItem().equals("") || chMatriz12.getSelectedItem().equals("")
                    || chMatriz21.getSelectedItem().equals("") || chMatriz22.getSelectedItem().equals("")) {
                JOptionPane.showMessageDialog(null, "Para Restar dos matrices se deben seleccionarn"
                        + "valores en ambas matrices.");

            } else { //cuando se han seleccionado valores en los choice
                if ((chMatriz11.getSelectedIndex() == chMatriz21.getSelectedIndex())
                        && (chMatriz12.getSelectedIndex() == chMatriz22.getSelectedIndex())) {

                    temp = operaciones.restarDosMatrices(tomarValores(jTMatriz1), tomarValores(jTMatriz2));

                    ventanaRespuesta resp = new ventanaRespuesta(temp);

                } else {
                    JOptionPane.showMessageDialog(null, "No se puede realizar la Resta.");
                }
            }
        } else if (e.getSource() == jbMulti) {//evento boton para multiplicar una matriz por un escalar entero

            if (jTMatriz1 != null) {
                int escalar;

                escalar = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el escalar a multiplicar"));
                temp = operaciones.matrizPorEscalar(tomarValores(jTMatriz1), escalar);

                ventanaRespuesta resp = new ventanaRespuesta(temp);

            } else {
                JOptionPane.showMessageDialog(null, "La primera matriz debe existir npara realizar la multiplicacion.");
            }

        } else if (e.getSource() == jbMultiMulti) {//evento boton para multiplicar dos matrices

            if (jTMatriz1 != null && jTMatriz2 != null) {
                if (chMatriz12.getSelectedIndex() == chMatriz21.getSelectedIndex()) {
                                        
                    temp = operaciones.multiplicarDosMatrices(tomarValores(jTMatriz1), tomarValores(jTMatriz2));
                    ventanaRespuesta resp = new ventanaRespuesta(temp);

                } else {
                    JOptionPane.showMessageDialog(null, "La columna de la primer matriz, debe ser n"
                            + "igual al numero de filas de la segunda matriz.");
                }

            } else {
                JOptionPane.showMessageDialog(null, "Ambas matrices deben de estar activas n"
                        + "para poder realizar la multiplicacion.");
            }

        } else if (e.getSource() == jbLimpiar) {

            //evento para limpiar matriz para los numeros, ademas de setear los choice            
            if (jTMatriz1 != null && jTMatriz2 == null) {

                for (int i = 0; i < jTMatriz1.length; i++) {
                    for (int j = 0; j < jTMatriz1[0].length; j++) {
                        jTMatriz1[i][j].setVisible(false);
                    }
                }
                chMatriz11.select(0);
                chMatriz12.select(0);
                chMatriz11.repaint();
                chMatriz12.repaint();
            } else if (jTMatriz1 != null && jTMatriz2 != null) {

                for (int i = 0; i < jTMatriz1.length; i++) {
                    for (int j = 0; j < jTMatriz1[0].length; j++) {
                        jTMatriz1[i][j].setVisible(false);
                    }
                }
                for (int i = 0; i < jTMatriz2.length; i++) {
                    for (int j = 0; j < jTMatriz2[0].length; j++) {
                        jTMatriz2[i][j].setVisible(false);
                    }
                }
                jTMatriz1 = null;
                jTMatriz2 = null;
                chMatriz11.select(0);
                chMatriz12.select(0);
                chMatriz21.select(0);
                chMatriz22.select(0);
                chMatriz11.repaint();
                chMatriz12.repaint();
                chMatriz21.repaint();
                chMatriz22.repaint();
            }
        }
    }

    public class ventanaRespuesta { //clase que contiene la ventana para mostrar los resultados

        public ventanaRespuesta(int[][] ar) {//constructor, recibe como parametro el arreglo a mostrar

            JFrame ventanaRespuesta = new JFrame("RESPUESTA");
            ventanaRespuesta.setLocation(80, 140);

            JTextArea jtA = new JTextArea(10, 10);

            String ax = ""; //variable para guardar lo del arreglo a mostrar

            //ciclo para mostrar el arreglo que se recibe...
            for (int i = 0; i < ar.length; i++) {
                for (int j = 0; j < ar[i].length; j++) {
                    ax += ar[i][j] + "    ";
                }
                ax += "n";
            }

            jtA.setText(ax);

            ventanaRespuesta.add(jtA);

            ventanaRespuesta.setSize(200, 150);
            ventanaRespuesta.setResizable(false);
            ventanaRespuesta.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            ventanaRespuesta.setVisible(true);
        }
    }

    public class evenChoice implements ItemListener {

        @Override
        public void itemStateChanged(ItemEvent e) {

            int f, c;

            if (e.getSource() == chMatriz12) {
                if (chMatriz11.getSelectedIndex() != 0 && chMatriz12.getSelectedIndex() != 0) {
                    f = Integer.parseInt(chMatriz11.getSelectedItem());
                    c = Integer.parseInt(chMatriz12.getSelectedItem());

                    if (jTMatriz1 != null) {
                        for (int i = 0; i < jTMatriz1.length; i++) {
                            for (int j = 0; j < jTMatriz1[0].length; j++) {
                                jTMatriz1[i][j].setVisible(false);
                            }
                        }
                        jTMatriz1 = null;
                        generarMat1(f, c);
                    } else {
                        generarMat1(f, c);
                    }
                } else {
                    JOptionPane.showMessageDialog(null, "Ambos choice tienen que tener un valor!");
                }
            } else if (e.getSource() == chMatriz22) {
                if (chMatriz21.getSelectedIndex() != 0 && chMatriz22.getSelectedIndex() != 0) {
                    f = Integer.parseInt(chMatriz21.getSelectedItem());
                    c = Integer.parseInt(chMatriz22.getSelectedItem());

                    if (jTMatriz2 != null) {
                        for (int i = 0; i < jTMatriz2.length; i++) {
                            for (int j = 0; j < jTMatriz2[0].length; j++) {
                                jTMatriz2[i][j].setVisible(false);
                            }
                        }
                        jTMatriz2 = null;
                        generarMat2(f, c);
                    } else {
                        generarMat2(f, c);
                    }
                } else {
                    JOptionPane.showMessageDialog(null, "Ambos choice tienen que tener un valor!");
                }
            }
        }

    }

}

Ver Codigo Operaciones
public class operaciones {

    //Fuente de los siguientes metodos http://www.taringa.net/posts/ciencia-educacion/14534230/Algunos-Ejemplos-De-Matrices-Java.html
    public static int[][] sumarDosMatrices(int[][] a, int[][] b) {

        // En este metodo se supone que las 2 matrices tienen el mismo tamaño
        int matrizResultante[][];
        int i, j, filasA, columnasA;
        filasA = a.length;
        columnasA = a[0].length;

        matrizResultante = new int[filasA][columnasA];

        for (i = 0; i < filasA; i++) {
            for (j = 0; j < columnasA; j++) {
                matrizResultante[i][j] = a[i][j] + b[i][j];
            }
        }
        return matrizResultante;
    }

    public static int[][] restarDosMatrices(int[][] a, int[][] b) {

        // En este metodo se supone que las 2 matrices tienen el mismo tamaño
        int matrizResultante[][];
        int i, j, filasA, columnasA;

        filasA = a.length;
        columnasA = a[0].length;

        matrizResultante = new int[filasA][columnasA];

        for (i = 0; i < filasA; i++) {
            for (j = 0; j < columnasA; j++) {
                matrizResultante[i][j] = a[i][j] - b[i][j];
            }
        }
        return matrizResultante;
    }

    public static int[][] multiplicarDosMatrices(int[][] a, int[][] b) {
        
        int sum, c [][] = new int [a.length][b[0].length];

        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < b[0].length; j++) {
                sum=0;
                for(int k=0;k < a[0].length;k++){
                    sum += a[i][k]*b[k][j];
                }
                c[i][j]=sum;
            }
        }
        return c;

    }

    //Fin metodos de Taringa
    
    //el siguiente metodo se saco de la siguiente URL http://javayourmind.blogspot.com/2010/11/producto-de-una-matriz-por-un-escalar.html
    public static int[][] matrizPorEscalar(int[][] a, int b) {

        int[][] matrizResultado = new int[a.length][a[0].length];
        for (int i = 0; i != a.length; i++) {
            for (int j = 0; j != a[i].length; j++) {
                matrizResultado[i][j] = a[i][j] * b; //simplemente se multiplica cada valor de la matriz por el valor escalar.
            }
        }
        return matrizResultado;
    }

}

Posibles Problemas

Para ver las opciones que brinda la interfaz, se usaron algunas imágenes para los botones de las operaciones, es por esto que si copias, pegas y ejecutas los anteriores códigos, no podras ver los botones como son, para esto tendras dos opciones. 1. Tener tus propias imagenes, para esto, tendrán que tener un tamaño de 30 x 31 (ancho x alto). 2. Descargar el código fuente con las clases y las imágenes, este te sera útil si deseas añadir y ejecutar sin ningún problema.

Descargar El Código Fuente

Quieres la misma aplicación que he compartido sin ningún problema? Tranquilo, además de copiar y usar el anterior código fuente, podrás descargar el archivo del pequeño ejemplo. Pero antes que puedas descargarlo, te pediré una pequeña acción social, ya sea en Facebook, Twitter ó G+, con esto ayudarás a que otras personas conozcan este articulo 😉

Desbloquea el contenido con una acción social...

Comparte este articulo y obtén el contenido premium!

Facebook
Twitter
Linkedin0
WP Dev JaGonzalez

Hijo, esposo y padre de un hermoso niño. Amante de los animales, la tecnología, informática y programación. Si tienes alguna duda, inquietud, comentario o deseas comunicarte directamente conmigo, puedes enviarme un correo electrónico a admin@jagonzalez.org

Ver comentarios

  • NO me marco error ni nada, segui todos tus pasos pero no me compilo, no me aparece el recuadro

  • Chabots, no copien este proyecto para entregar yo me dare cuenta si lo hacen y les bajare 3 puntos de su calificacion de evidencia, asi que evitense la molestia.

    -ATTE: M.T.I Iracema Niltza Gonzalez

    • Hola, creo que antes de no fomentar la copia de código deberías de fomentar la innovación, es decir: Copien pero mejoren el código. Lo mejor es que modifiques las reglas, que el que se copie de este código, debe de incluir dos mejoras las cuales deben de ser explicadas en detalle y así saber si aplicaron lo que han aprendido, esto lo haría si fuera el docente.

  • Disculpen tengo un problema con el Programa si me puedes compartir el Programa que corra bien? Porfavor lo ocupo mucho
    Gracias

Compartir
Publicado por
WP Dev JaGonzalez

Entradas recientes

iPhone Hackeado: Qué Hacer para Proteger tu Dispositivo y Asegurar tu Seguridad

¿Has notado aplicaciones desconocidas o un drenaje inesperado de la batería? Estos podrían ser indicios…

3 semanas hace

Cómo Restablecer un iPhone a su Estado de Fábrica

Saber cómo Restablecer un iPhone a su Estado de Fábrica es clave para solucionar problemas…

3 semanas hace

Motorola planea lanzar al menos dos nuevos teléfonos Moto G en septiembre

Motorola ha confirmado el lanzamiento de Moto G84 5G y Moto G54 5G en India,…

1 año hace

El equipo de WizardLM afirma que un modelo de IA de terceros les robó el trabajo

Recuerde WizardCoder, ¿el codificador de IA que cubrimos recientemente aquí en Windows Report? Nos jactamos…

1 año hace

Las fallas del complemento Jupiter X Core amenazaron a 172.000 sitios web con apropiaciones de cuentas

Los investigadores han descubierto numerosos fallos de seguridad en el complemento WordPress Jupiter X Core…

1 año hace

Consola portátil Xbox: aquí tienes todo lo que necesitas saber al respecto

Para solucionar problemas del sistema de PC con Windows, necesitará una herramienta dedicada Fortect es…

1 año hace