Mudanças entre as edições de "Pensamento Computacional - Arrays Multidimensionais no Java"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 13: Linha 13:
  
  
==Exercícios==
+
==Exemplo 1 - Soma de Matrizes==
  
  
  
## <br  />Implementar um programa para calcular a média de todos elementos da matriz C do exemplo acima.
+
>Implementar um programa para calcular a média de todos elementos da matriz C do exemplo acima.
  
{{collapse top | solução média}}<br  /><br  /><br  />{{collapse bottom}}
+
{{collapse top | solução média}}
 +
<syntaxhighlight lang=java>
  
 +
public class SomaMatrizes {
 +
    public static void main(String[] args) {
 +
        // Exemplo de matrizes
 +
        int[][] matrizA = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
 +
        int[][] matrizB = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}};
  
 +
        // Chamando o método para somar as matrizes
 +
        int[][] matrizC = somarMatrizes(matrizA, matrizB);
  
## <br  />Implementar um programa para ler uma matriz quadrada NxN pelo teclado e armazená-la em uma matriz matA. Defina matA com um tamanho máximo ''matA''[N_MAX][N_MAX].
+
        // Exibindo a matriz resultante
 +
        System.out.println("Matriz Resultante:");
 +
        imprimirMatriz(matrizC);
 +
    }
  
{{collapse top | solução preenchimento Matriz}}<br  /><br  /><br  /><br  />{{collapse bottom}}
+
    // Método para somar duas matrizes
 +
    public static int[][] somarMatrizes(int[][] matrizA, int[][] matrizB) {
 +
        int linhas = matrizA.length;
 +
        int colunas = matrizA[0].length;
 +
 
 +
        // Verificando se as matrizes têm as mesmas dimensões
 +
        if (linhas != matrizB.length || colunas != matrizB[0].length) {
 +
            throw new IllegalArgumentException("As matrizes devem ter as mesmas dimensões para serem somadas.");
 +
        }
 +
 
 +
        int[][] resultado = new int[linhas][colunas];
 +
 
 +
        // Iterando sobre as matrizes e realizando a soma
 +
        for (int i = 0; i < linhas; i++) {
 +
            for (int j = 0; j < colunas; j++) {
 +
                resultado[i][j] = matrizA[i][j] + matrizB[i][j];
 +
            }
 +
        }
 +
 
 +
        return resultado;
 +
    }
 +
 
 +
    // Método para imprimir uma matriz
 +
    public static void imprimirMatriz(int[][] matriz) {
 +
        for (int i = 0; i < matriz.length; i++) {
 +
            for (int j = 0; j < matriz[0].length; j++) {
 +
                System.out.print(matriz[i][j] + " ");
 +
            }
 +
            System.out.println();
 +
        }
 +
    }
 +
}
 +
</syntaxhighlight>
 +
{{collapse bottom}}

Edição das 15h04min de 4 de dezembro de 2023

Como definir e operar com matrizes no Java

Na aula anterior estudamos os vetores, que são estruturas de dados que permitem organizar os dados tal como
se fossem uma tabela unidimensional. O acesso a cada elemento do vetor é realizado pela indexação do mesmo, ou seja , um número inteiro que permite identificar a posição de um determinado vetor.

De forma similar ao vetor, pode-se criar arranjos multidimensionais. Por exemplo, uma matriz bidimensional pode ser definida usando um nome seguido de suas dimensões (de uma dupla de colchetes para indicar linha e a coluna). Os elementos da matriz serão todos de um mesmo tipo.

Um Exemplo de Soma de Matrizes da Matemática

A soma de duas matrizes na matemática é realizada pela soma dos elementos de mesma linha e coluna.
A dimensão das matrizes deve ser a mesma. Podemos usar os arranjos bidimensionais no Java para acomodar estas matrizes.
OBSERVAR que a operação de soma deve ser realizada elemento por elemento. Dois loops aninhados serão usados para iterar sobre as linhas e colunas.

Vejamos o exemplo abaixo.

PROBLEMA: Definir duas matrizes de inteiros de dimensão 2x3 e computar a soma das mesmas. As matrizes serão iniciadas na definição.
:Dados de Entrada: Matrizes mA[2][3] e mB[2][3] de inteiros. Por questões de facilidade, já serão iniciadas na definição.
:Dados de Saída: Matriz mC[2][3] resultante da soma de mA com mB


PRG29002-MatrizC.png


Exemplo 1 - Soma de Matrizes

>Implementar um programa para calcular a média de todos elementos da matriz C do exemplo acima.

solução média
public class SomaMatrizes {
    public static void main(String[] args) {
        // Exemplo de matrizes
        int[][] matrizA = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
        int[][] matrizB = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}};

        // Chamando o método para somar as matrizes
        int[][] matrizC = somarMatrizes(matrizA, matrizB);

        // Exibindo a matriz resultante
        System.out.println("Matriz Resultante:");
        imprimirMatriz(matrizC);
    }

    // Método para somar duas matrizes
    public static int[][] somarMatrizes(int[][] matrizA, int[][] matrizB) {
        int linhas = matrizA.length;
        int colunas = matrizA[0].length;

        // Verificando se as matrizes têm as mesmas dimensões
        if (linhas != matrizB.length || colunas != matrizB[0].length) {
            throw new IllegalArgumentException("As matrizes devem ter as mesmas dimensões para serem somadas.");
        }

        int[][] resultado = new int[linhas][colunas];

        // Iterando sobre as matrizes e realizando a soma
        for (int i = 0; i < linhas; i++) {
            for (int j = 0; j < colunas; j++) {
                resultado[i][j] = matrizA[i][j] + matrizB[i][j];
            }
        }

        return resultado;
    }

    // Método para imprimir uma matriz
    public static void imprimirMatriz(int[][] matriz) {
        for (int i = 0; i < matriz.length; i++) {
            for (int j = 0; j < matriz[0].length; j++) {
                System.out.print(matriz[i][j] + " ");
            }
            System.out.println();
        }
    }
}