Você está aqui: Java ::: Lista de Exercícios Resolvidos (Algorítmos Resolvidos) ::: Java Básico

Exercícios Resolvidos de Java - Java Básico - Lendo a nota de um aluno e classificando-a com as letras A, B, C, D ou E

Quantidade de visualizações: 1124 vezes
Exercício Resolvido de Java - Java Básico - Lendo a nota de um aluno e classificando-a com as letras A, B, C, D ou E

Pergunta/Tarefa:

Escreva um programa Java que lê a nota de um aluno e a classifica de acordo com as seguintes regras:

1) Maior ou igual a 9,00 - A
2) Maior ou igual a 8,0 e menor que 9,0 - B
3) Maior ou igual a 7,0 e menor que 8,0 - C
4) Maior ou igual a 6,0 e menor que 7,0 - D
5) Menor que 6,0 - E

Sua saída deverá ser parecida com:



Resposta/Solução:

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

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
    
    // vamos solicitar que o usuário informe a nota do aluno
    System.out.print("Informe a nota do aluno: ");
    double nota = Double.parseDouble(entrada.nextLine());
    char letra = 'A'; // vai guardar a letra de classificação
    
    // a nota está dentro da faixa esperada?
    if((nota < 0) || (nota > 10)){
      System.out.println("A nota esta fora da faixa esperada.");  
    }
    else{
      if(nota < 6.0){
        letra = 'E';  
      }
      else if((nota >= 6.0) && (nota < 7.0)){
        letra = 'D';  
      }
      else if((nota >= 7.0) && (nota < 8.0)){
        letra = 'C';  
      }
      else if((nota >= 8.0) && (nota < 9.0)){
        letra = 'B';  
      }
      else{
        letra = 'A';  
      }
    }
    
    // vamos mostrar a classificação
    System.out.println("A classificação desta nota é: " + letra);
    
    System.out.println("\n");
  }
}



Java ::: Dicas & Truques ::: Matemática e Estatística

Como calcular porcentagem em Java - Como efetuar cálculos de porcentagem usando Java

Quantidade de visualizações: 40612 vezes
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em Java.

Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas.

Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em Java:

public class Estudos{
  public static void main(String args[]){
    double valor = 178.00; // valor original
    double percentual = 15.0 / 100.0; // 15%
    double valor_final = valor + (percentual * valor);

    System.out.println("O valor final do produto é: " +
      valor_final);   

    // O resultado será 204,70

    System.exit(0);
  }
} 

Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em Java:

public class Estudos{
  public static void main(String args[]){
    double valor = 250.00; // valor original
    double percentual = 8.0 / 100.0; // 8%
    double valor_final = valor - (percentual * valor);

    System.out.println("O valor final do produto é: " +
      valor_final);   

    // O resultado será 230,00

    System.exit(0);
  }
} 

Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em Java:

public class Estudos{
  public static void main(String args[]){
    double perguntas = 90.0;
    double acertos = 72.0;

    System.out.println("Porcentagem de acertos: " +
      ((acertos / perguntas) * 100) + "%");

    System.out.println("Porcentagem de erros: " +
      (((perguntas - acertos) / perguntas) * 100) + "%");   

    // Os resultados serão 80% e 20%

    System.exit(0);
  }
}

Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 240,00. Qual foi a porcentagem de lucro na transação? Veja o código em Java:

public class Estudos{
  public static void main(String args[]){
    double v_ant = 300.0; // valor anterior
    double v_nov = 340.0; // valor novo
    double p_lucro = 0.0; // porcentagem de lucro

    while(v_ant + ((p_lucro / 100.0) * v_ant) < v_nov){
      p_lucro = p_lucro + 0.1;
    } 

    System.out.println("A porcentagem de lucro foi de: " +
      p_lucro + "%");   

    // O resultado será 13,39

    System.exit(0);
  }
} 

Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em Java:

public class Estudos{
  public static void main(String args[]){
    double valor = 70.0; // valor do produto
    double porcent = 5.0 / 100.0; // 5%  

    double comissao = porcent * valor;

    System.out.println("O valor repassado ao vendedor e: " +
      comissao); 

    // O resultado será 3,5

    System.exit(0);
  }
}



Java ::: Classes e Componentes ::: JList

Java Swing para iniciantes - Como adicionar itens a uma JList em tempo de execução

Quantidade de visualizações: 18118 vezes
Este exemplo mostra como inserir itens em uma JList do Java Swing em tempo de execução. O valor a ser inserido é informado em um JTextField. Veja que estamos usando a classe DefaultListModel e seu método addElement() para adicionar os novos itens.

Veja a janela JFrame e os componentes usados para exemplificar esta funcionalidade:



E agora veja o código Java Swing completo para o exemplo:

package arquivodecodigos;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class Estudos extends JFrame{
  JList lista;
  JTextField campo;  
 
  public Estudos() {
    super("A classe JList");
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
     
    // Cria um novo DefaultListModel
    DefaultListModel modelo = new DefaultListModel();
     
    // Cria a JList
    lista = new JList();
  
    // Atribui o DefaultListModel à JList
    lista.setModel(modelo);
  
    // Um botão que permite adicionar itens na JList
    JButton btn = new JButton("Adicionar na JList");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          String valor = campo.getText();
           
          if(valor.length() != 0){
            ((DefaultListModel)(lista.getModel()))
               .addElement(valor);
            campo.setText("");
            campo.requestFocus();
          }
        }
      }
    );
 
    // Adiciona a lista à janela
    c.add(new JScrollPane(lista));
 
    // Cria um JTextField e o adiciona à janela
    campo = new JTextField(10);
    c.add(campo);
 
    // Adiciona o botão à janela
    c.add(btn);  
 
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Java ::: Dicas & Truques ::: Gráficos

Computação gráfica em Java - Como obter a cor atual do contexto de desenho usando o método getColor() da classe Graphics do Java

Quantidade de visualizações: 6660 vezes
Antes de efetuar qualquer desenho na superfície de um componente, é importante saber qual cor está definida no momento, assim podemos alterá-la se necessário. Para isso podemos usar o método getColor() da classe Graphics. Este método retorna um objeto da classe Color.

Veja um exemplo no qual obtemos a cor usada atualmente para desenhar na superfície de um JLabel:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Estudos extends JFrame{
  JLabel label;  

  public Estudos() {
    super("Desenhando");
    
    Container c = getContentPane();
    c.setLayout(new BorderLayout());

    // Cria um JLabel
    label = new JLabel();
    c.add(label, BorderLayout.CENTER);

    // Cria um botão
    JButton btn = new 
      JButton("Obter a cor do contexto");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          
          Graphics graphics = label.getGraphics();
          
          // obtém a cor usada para desenhar no
          // contexto de desenho
          Color cor = graphics.getColor();
          JOptionPane.showMessageDialog(null,
            "A cor usada atualmente é " +
            cor.toString());
        }
      }
    );
    
    // Adiciona o botão à janela
    c.add(btn, BorderLayout.SOUTH);

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Java ::: Lista de Exercícios Resolvidos (Algorítmos Resolvidos) ::: Estruturas de Dados - Árvores Binárias e Árvores Binárias de Busca

Estruturas de Dados - Árvores Binárias e Árvores Binárias de Busca - Exercícios Resolvidos 2 - Um método recursivo que permite pesquisar um valor em uma árvore binária de busca

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

Escreva um método recursivo que permite pesquisar um valor em uma árvore binária de busca. Se o valor for encontrado, uma referência ao nó da árvore (um objeto da classe NoArvore, por exemplo) deverá ser retornado. Caso contrário, o valor null deverá ser retornado para indicar que não há nós na árvore contendo tal valor.

Sua saída deverá ser parecida com:



Resposta/Solução:

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

Código para NoArvore.java:

package estudos;

public class NoArvore {
  private int valor; // valor armazenado no nó
  private NoArvore esquerdo; // filho esquerdo
  private NoArvore direito; // filho direito

  // construtor do nó
  public NoArvore(int valor){
    this.valor = valor;
  }

  public int getValor() {
    return valor;
  }

  public void setValor(int valor) {
    this.valor = valor;
  }

  public NoArvore getEsquerdo() {
    return esquerdo;
  }

  public void setEsquerdo(NoArvore esquerdo) {
    this.esquerdo = esquerdo;
  }

  public NoArvore getDireito() {
    return direito;
  }

  public void setDireito(NoArvore direito) {
    this.direito = direito;
  }
}

Código para ArvoreBinariaBusca.java:

package estudos;

public class ArvoreBinariaBusca {
  private NoArvore raiz; // referência para a raiz da árvore
  
  // método usado para inserir um novo nó na árvore
  // retorna true se o nó for inserido com sucesso e false
  // se o elemento
  // não puder ser inserido (no caso de já existir um 
  // elemento igual)
  public boolean inserir(int valor){
    // a árvore ainda está vazia?
    if(raiz == null){
      // vamos criar o primeiro nó e definí-lo como a raiz da árvore
      raiz = new NoArvore(valor); // cria um novo nó
    }
    else{
      // localiza o nó pai
      NoArvore pai = null;
      NoArvore noAtual = raiz; // começa a busca pela raiz
 
      // enquanto o nó atual for diferente de null
      while(noAtual != null){
        if(valor < noAtual.getValor()) {
          pai = noAtual;
          noAtual = noAtual.getEsquerdo();
        }
        else if(valor > noAtual.getValor()){
          pai = noAtual;
          noAtual = noAtual.getDireito();
        }
        else{
          return false; // um nó com este valor foi encontrado
        }
      }
       
      // cria o novo nó e o adiciona ao nó pai
      if(valor < pai.getValor()){
         pai.setEsquerdo(new NoArvore(valor));
      }
      else{
        pai.setDireito(new NoArvore(valor));
      }
    }

    return true; // retorna true para indicar que o novo nó foi inserido
  }
  
  // método que permite pesquisar na árvore binária de busca
  public NoArvore pesquisar(int valor){
    return pesquisar(raiz, valor); // chama a versão recursiva do método
  }

  // sobrecarga do método pesquisar que recebe dois 
  // parâmetros (esta é a versão recursiva do método)
  private NoArvore pesquisar(NoArvore noAtual, int valor){
    // o valor pesquisado não foi encontrado....vamos retornar null
    if(noAtual == null){
      return null;
    }
 
    // o valor pesquisado foi encontrado?
    if(valor == noAtual.getValor()){
      return noAtual; // retorna o nó atual
    }  
    // ainda não encontramos...vamos disparar uma nova 
    // chamada para a sub-árvore da esquerda
    else if(valor < noAtual.getValor()){
      return pesquisar(noAtual.getEsquerdo(), valor);
    }
    // ainda não encontramos...vamos disparar uma nova 
    // chamada para a sub-árvore da direita
    else{
      return pesquisar(noAtual.getDireito(), valor);
    }
  }
}

E aqui está o código para a classe que permite testar a árvore:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
      
    // vamos criar um novo objeto da classe ArvoreBinariaBusca
    ArvoreBinariaBusca arvore = new ArvoreBinariaBusca();
   
    // vamos inserir 5 valores na árvore
    for(int i = 0; i < 5; i++){
      System.out.print("Informe um valor inteiro: ");
      int valor = Integer.parseInt(entrada.nextLine());
      
      // vamos inserir o nó e verificar o sucesso da operação
      if(!arvore.inserir(valor)){
        System.out.println("Não foi possível inserir. Um elemento já contém este valor.");  
      }
    }
    
    // vamos pesquisar um valor na árvore
    System.out.print("\nInforme o valor a ser pesquisado: ");
    int valorPesquisa = Integer.parseInt(entrada.nextLine());
    // obtém um objeto da classe NoArvore a partir do 
    // método pesquisar() da classe ArvoreBinariaBusca
    NoArvore res = arvore.pesquisar(valorPesquisa);
    // o valor foi encontrado?
    if(res != null){
      System.out.println("O valor foi encontrado na árvore");
    }
    else{
      System.out.println("O valor não foi encontrado na árvore");  
    }
    
    System.out.println("\n");
  }
}



Java ::: Classes e Componentes ::: JTable

Java Swing - Como alterar a cor de fundo dos títulos de uma JTable usando o método setBackground() da classe JTableHeader

Quantidade de visualizações: 10257 vezes
Nesta dica mostrarei como podemos chamar o método getTableHeader() da classe JTable para obter um objeto JTableHeader e usar seu método setBackground() para definir a cor de fundo dos títulos da tabela JTable.

Veja o trecho de código a seguir:

JTableHeader titulos = tabela.getTableHeader();
titulos.setBackground(Color.ORANGE);

Note que "tabela" é uma referência a um objeto da classe JTable.


Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Elétrica pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 15 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

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



© 2021 Arquivo de Códigos - Todos os direitos reservados | Versión en Español | Versão em Português