Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se um array possui valores repetidos em Java - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 1819 vezes |
Pergunta/Tarefa: Escreva um programa Java que declara, constrói um vetor de 10 posições e pede ao usuário para informar os valores de seus elementos. Em seguida, varra o vetor e informe a existência ou não de valores repetidos. Sua saída deverá ser parecida com: Informe o valor para o índice 0: 3 Informe o valor para o índice 1: 6 Informe o valor para o índice 2: 8 Informe o valor para o índice 3: 10 Informe o valor para o índice 4: 2 Informe o valor para o índice 5: 4 Informe o valor para o índice 6: 6 Informe o valor para o índice 7: 10 Informe o valor para o índice 8: 3 Informe o valor para o índice 9: 30 Há valores repetidos no vetor Veja a resolução comentada deste exercício usando 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) { Scanner entrada = new Scanner(System.in); // vamos declarar e construir um vetor de 10 elementos int valores[] = new int[10]; // vamos pedir que o usuário informe os valores for(int i = 0; i < valores.length; i++){ System.out.print("Informe o valor para o índice " + i + ": "); valores[i] = Integer.parseInt(entrada.nextLine()); } // agora vamos verificar se o vetor possui valores repetidos boolean repetidos = false; // percorremos todos os elementos do vetor for(int i = 0; i < valores.length; i++){ // para cada elemento em i nos verificamos os que estão nos indices seguintes for(int j = i + 1; j < valores.length; j++){ // encontramos algum repetido? if(valores[j] == valores[i]){ repetidos = true; break; // saímos do laço } } } if(repetidos){ System.out.println("Há valores repetidos no vetor"); } else{ System.out.println("Nao há valores repetidos no vetor"); } System.out.println("\n"); } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Java Reflection - Como obter um objeto Class usando os métodos getClass() e forName() da classe Class da linguagem JavaQuantidade de visualizações: 10177 vezes |
Uma das tarefas mais básicas que devemos fazer quando estamos usando reflexão em Java, é obter um objeto Class. Uma vez que tenhamos uma instância de Class, podemos obter várias informações sobre uma classe, até mesmo manipulá-la. Nesta dica veremos como usar o método getClass() para obter um objeto Class. Esta forma de obter um objeto Class é frequentemente útil em situações nas quais temos uma instância de uma classe, mas não sabemos a qual classe esta instância pertence (instanceOf). Há várias formas de se obter um objeto Class. Se você tiver uma classe para a qual o nome de tipo é conhecido em tempo de compilação, há uma forma ainda mais fácil de se obter uma intância da classe. Só precisamos usar a palavra chave do compilador .class. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Class classe = JButton.class; Se o nome da classe não foi conhecido em tempo de compilação, mas estiver disponível em tempo de execução (runtime), podemos usar o método forName() para obter um objeto Class. O código a seguir mostra como criar um objeto Class associado à classe javax.swing.JPanel: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- try{ Class classe = Class.forName("javax.swing.JPanel"); } catch(ClassNotFoundException e){ // trate os erros aqui } Podemos usar também o método getSuperClass() em um objeto Class para obter o objeto Class representando a superclasse da classe que está sofrendo introspecção. O trecho de código a seguir mostra como o objeto classe1 reflete a classe JTextField, e classe2 reflete a classe JTextComponent, uma vez que esta classe é a superclasse de JTextField: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- JTextField txtNome = new JTextField(); Class classe1 = txtNome.getClass(); Class classe2 = classe1.getSuperclass(); Esta dica foi revisada e atualizada para o Java 8. |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular o determinante de uma matriz 3x3 usando a regra de Sarrus em Java - Java para Álgebra LinearQuantidade de visualizações: 3183 vezes |
Como calcular o determinante de uma matriz 3x3 usando a Regra de Sarrus em Java - Java para Álgebra Linear Os estudos da Geometria Analítica e Álgebra Linear envolvem, em boa parte de seus cálculos, a magnitude de vetores, ou seja, o módulo, tamanho, comprimento ou intensidade dos vetores. E isso não é diferente em relação às matrizes. Quando uma matriz é envolvida nos cálculos, com muita frequência precisamos obter o seu determinante, que nada mais é que um número real associado à todas as matrizes quadradas. Nesta dica mostrarei como obter o determinante de uma matriz quadrada de ordem 3, ou seja, três linhas e três colunas, usando a regra de Sarrus (somente matrizes 3x3). Note que é possível obter o mesmo resultado com o Teorema de Laplace, que não está restrito às matrizes quadradas de ordem 3. Veja também que não considerei as propriedades do determinante, o que, em alguns casos, simplifica muito os cálculos. Então, vamos supor a seguinte matriz 3x3: O primeiro passo é copiarmos a primeira e a segunda colunas para o lado direito da matriz. Assim: Agora dividimos a matriz em dois conjuntos: três linhas diagonais descendentes e três linhas diagonais ascendentes: Agora é só efetuar cálculos. Multiplicamos e somamos os elementos de cada conjunto, subtraindo o segundo conjunto do primeiro. Veja: (1 x 5 x 9 + 2 x 6 x 7 + 3 x 4 x 8) - (7 x 5 x 3 + 8 x 6 x 1 + 9 x 4 x 2) = 0 Como podemos ver, o determinante dessa matriz é 0. E agora veja o código Java no qual declaramos e instanciamos uma matriz 3x3 de double e, em seguida, calculamos o seu determinante: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String[] args){ double m[][] = {{1, 2, 3}, {2, 5, 2}, {1, 3, 1}}; // calcula o determinante usando a Regra de Sarrus double det = ((m[0][0] * m[1][1] * m[2][2]) + (m[0][1] * m[1][2] * m[2][0]) + (m[0][2] * m[1][0] * m[2][1])) - ((m[2][0] * m[1][1] * m[0][2]) + (m[2][1] * m[1][2] * m[0][0]) + (m[2][2] * m[1][0] * m[0][1])); System.out.println("O determinante da matriz é: " + det); } } Ao executar este código Java nós teremos o seguinte resultado: O determinante da matriz é: 2.0 |
Java ::: Pacote java.awt.event ::: KeyEvent |
Java Swing - Como detectar as teclas Insert ou Delete usando o método getKeyCode() da classe KeyEvent do JavaQuantidade de visualizações: 3161 vezes |
Em algumas situações nós precisamos detectar o pressionamento das teclas Insert ou Delete. Para isso podemos usar o método getKeyCode() da classe KeyEvent e testar se o código equivale a uma das constantes KeyEvent.VK_INSERT (Ins) ou KeyEvent.VK_DELETE (Del). Veja um trecho de código no qual testamos se alguma destas duas teclas foi pressionada: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Janela extends JFrame implements KeyListener{ public Janela(){ super("Eventos do Teclado"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); // vamos adicionar o objeto listener addKeyListener(this); setSize(350, 250); setVisible(true); } @Override public void keyPressed(KeyEvent e){ // a tecla Insert foi pressionada? if(e.getKeyCode() == KeyEvent.VK_INSERT){ JOptionPane.showMessageDialog(null, "A tecla Insert foi pressionada"); } // a tecla Enter Delete pressionada? else if(e.getKeyCode() == KeyEvent.VK_DELETE){ JOptionPane.showMessageDialog(null, "A tecla Delete foi pressionada"); } else{ JOptionPane.showMessageDialog(null, "Outra tecla foi pressionada"); } } @Override public void keyReleased(KeyEvent e){ // sem implementação } @Override public void keyTyped(KeyEvent e){ // sem implementação } public static void main(String args[]){ Janela j = new Janela(); j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } É importante observar que as teclas Insert e Delete podem ser detectadas somente nos eventos keyPressed e keyReleased. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software 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 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 |