Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Matriz Simétrica em Java - Um programa Java que testa se uma matriz quadrada é uma matriz simétrica - Exercícios Resolvidos de Java

Quantidade de visualizações: 354 vezes
Pergunta/Tarefa:

Antes de fazermos a resolução deste exercício de matrizes em Java, é importante revermos alguns conceitos sobre a matriz simétrica.

O que é uma matriz simétrica

Uma matriz simétrica é toda matriz cuja matriz transposta é igual à própria matriz, ou seja, A = At. Para compreender o que é uma matriz simétrica, é importante revermos o que é uma matriz transposta.

Matriz transposta: quando invertemos as linhas e colunas de uma matriz, ou seja, dada a matriz A, a matriz transposta de A, representada por At, terá em sua primeira coluna a primeira linha da matriz A; já a segunda coluna da matriz transposta será a segunda linha da matriz A, e assim sucessivamente. Veja a figura:



Matriz simétrica: sabendo o que é uma matriz transposta, dada a matriz A, quando calculamos a matriz transposta de A e encontramos a própria matriz A, ou seja, A = At, então essa matriz é simétrica.

Escreva um programa Java que declara uma matriz de inteiros de 3 linhas e 3 colunas e peça para o usuário informar os valores de cada elemento. Em seguida mostre a matriz informada e indique se a matriz é uma matriz simétrica ou não.

Sua saída deverá ser parecida com:

Elemento na linha 1 e coluna 1: 5
Elemento na linha 1 e coluna 2: 1
Elemento na linha 1 e coluna 3: 2
Elemento na linha 2 e coluna 1: 1
Elemento na linha 2 e coluna 2: 6
Elemento na linha 2 e coluna 3: 3
Elemento na linha 3 e coluna 1: 2
Elemento na linha 3 e coluna 2: 3
Elemento na linha 3 e coluna 3: 8

5 1 2 
1 6 3 
2 3 8 

A matriz informada é uma matriz simétrica.
Resposta/Solução:

Veja a resolução comentada deste exercício em Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    int n = 3; // ordem da matriz quadrada
    int matriz[][] = new int[n][n]; // matriz quadrada
 
    // para efetuar a leitura do usuário
    Scanner entrada = new Scanner(System.in);
     
    // vamos pedir para o usuário informar os elementos da matriz
    for (int i = 0; i < n; i++){
      for (int j = 0; j < n; j++) {
        System.out.print("Elemento na linha " + (i + 1) +
          " e coluna " + (j + 1) + ": ");
        matriz[i][j] = Integer.parseInt(entrada.nextLine());
      }
    }
     
    // agora verificamos se a matriz é simétrica
    boolean simetrica = true;
    for (int i = 0; (i < n) && (simetrica); i++) {
      for (int j = 0; (j < i) && (simetrica); j++) {
        // os elementos em posicoes simetricas sao iguais?
        if (matriz[i][j] != matriz[j][i]){
          simetrica = false;
        }
      }
    }
     
    // agora mostramos a matriz lida
    System.out.printf("\n");
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) {
        System.out.printf("%d ", matriz[i][j]);
      }
      System.out.printf("\n");
    }
 
    if (simetrica){
       System.out.printf("\nA matriz informada é uma matriz simétrica.\n");
    }
    else{
      System.out.printf("\nA matriz informada não é uma matriz simétrica.\n");
    }
  }
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Fundamentos da Linguagem ::: Tipos de Dados

Como usar o tipo de dados char da linguagem Java

Quantidade de visualizações: 25265 vezes
O tipo de dados char é usado para representar um único caractere. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    char letra1 = 'A';
    char letra2 = 'B';     

    System.out.println("As letras são: "
      + letra1 + " e " + letra2);
    System.exit(0);
  }
}

Observe que um literal string deve estar entre aspas duplas, enquanto que um literal do tipo caractere deve estar entre aspas simples. Desta forma, "H" é uma string e 'H' é um caractere.

O tipo char é integral mas sem sinal. A faixa de uma variável deste tipo vai de 0 à 65536. Os caracteres em Java são codificados em Unicode, que é um codificação de 16 bits capaz de representar uma larga faixa de caracteres internacionais. Se os 9 bits mais significantes de um char forem todos 0, então a codificação será a mesma que o ASCII de 7 bits.

É possível atribuir literais inteiros à uma variável do tipo char. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    char letra = 98;  

    System.out.println("A letra é: "
      + letra);
    System.exit(0);
  }
}

Este código exibirá o caractere 'b'. Veja um exemplo no qual imprimimos todas as letras do alfabeto minúsculo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    for(char i = 97; i <= 122; i++){    
      System.out.print(i + " ");
    } 
    
    System.exit(0);
  }
}

O tipo char pode ser convertido (sem a necessidade de cast) para os seguintes tipos:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

char -> int -> long -> float -> double

Não é possível converter um char em um short ou byte. Caso isso seja realmente necessário, temos que fazer uma coerção (cast). Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    char letra = 57;
    byte valor = (byte)(letra); 
    
    System.exit(0);
  }
}

É fácil entender porque um char não pode ser convertido implicitamente em um byte. Um char possui 16 bits enquanto um byte possui apenas 8 bits. Mas, um short possui 16 bits. Assim, o que impede a conversão implicita de um char para um short? É simples. Como o tipo short possui sinal (aceita valores negativos) e o tipo char é sem sinal, o resultado é que o tipo short possui um bit a menos (reservado para o sinal) e portanto, não pode acomodar os 16 bits do tipo char.


Java ::: Coleções (Collections) ::: Stack

Java Collections - Como remover o elemento no topo de uma Stack usando seu método pop()

Quantidade de visualizações: 9379 vezes
Uma estrutura do tipo pilha (representada aqui por um objeto da classe Stack) permite que seus elementos sejam removidos sempre na ordem contrária em que foram inseridos, ou seja, o último elemento inserido é sempre o primeiro a sair. Veja no trecho de código abaixo como usar o método pop() para remover e retornar o elemento no topo da pilha:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria uma Stack de String
    Stack<String> pilha = new Stack<String>();
    
    // adiciona três elementos na pilha
    pilha.push("Cuiabá");
    pilha.push("Goiânia");
    pilha.push("Belo Horizonte");

    // remove os elementos, sempre removendo o 
    // elemento do topo primeiro
    while(!pilha.empty()){
      String elem = pilha.pop();
      System.out.println("Elemento removido: " + elem);
    }    
  } 
}

Ao executar este código nós teremos o seguinte resultado:

Elemento removido foi: Belo Horizonte
Elemento removido foi: Cuiabá
Elemento removido foi: Goiânia


Java ::: Dicas & Truques ::: Internacionalização e Localização (Internationalization, i18n, Localization, l10n)

Como usar os construtores da classe Locale em seus programas Java

Quantidade de visualizações: 9594 vezes
A classe Locale, na versão 1.6 do Java, apresenta 3 construtores. Aprender a usá-los corretamente trará muito mais flexibilidade aos seus códigos.

Veja o primeiro construtor:

Locale(String language)


Este construtor requer como argumento um código de língua válido, ou seja, um dos códigos de duas letras minúsculas definidos pelo ISO-639. Assim, "pt" é para o português, "en" para o inglês, e assim por diante. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import java.util.*;
import java.text.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // criamos um locale para o Brasil
    Locale localeBR = new Locale("pt");
    
    // vamos obter a data e hora atual
    Calendar agora = Calendar.getInstance();

    // vamos formatar de acordo com o formato de
    // data longa no português brasileiro
    DateFormat df = DateFormat.getDateInstance(
      DateFormat.FULL, localeBR);

    // vamos exibir o resultado
    System.out.println(df.format(agora.getTime())); 
  } 
}

Veja o segundo construtor:

Locale(String language, String country)


Este construtor requer a língua (language) e o país (country). O argumento country deve ser um código de país válido, ou seja, um dos códigos de duas letras maiúsculas definidos pelo ISO-3166. Assim, "BR" é para o Brasil, "PT" para Portugal, "US" para United States, e assim por diante. Este construtor que aceita o código da língua e o código do país é o mais frequentemente usado, uma vez que Brasil e Portugal possuem o mesmo código de língua, mas códigos de paises diferentes. Além disso, há países cujas regiões falam línguas diferentes, por exemplo, o Canadá. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import java.util.*;
import java.text.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // criamos um locale para o Brasil
    Locale localeBR = new Locale("pt", "BR");
    
    // vamos obter a data e hora atual
    Calendar agora = Calendar.getInstance();

    // vamos formatar de acordo com o formato de
    // data longa no português brasileiro
    DateFormat df = DateFormat.getDateInstance(
      DateFormat.FULL, localeBR);

    // vamos exibir o resultado
    System.out.println(df.format(agora.getTime())); 
  } 
}

Vejamos agora o terceiro construtor:

Locale(String language, String country, String variant)


Este construtor requer a língua, o país e a variante de localização. O argumento variante é um código específico relacionado ao fornecedor do sistema ou browser. Por exemplo: WIN para Windows, MAC para Macintosh, etc. Este último construtor não é usado comumente, razão pela qual o exemplo de seu uso fica pendente até a próxima revisão desta dica.


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 34 usuários muito felizes estudando em nosso site.