Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

Problema do cálculo e consulta do IMC de uma pessoa. Escrever um programa que cadastre o nome, a altura, o peso, o CPF e sexo de algumas pessoas - Desafio de Programação Resolvido em Java

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

Problema do cálculo e consulta do IMC de uma pessoa. Escrever um programa em Java que cadastre o nome, a altura, o peso, o CPF e sexo de algumas pessoas. Com os dados cadastrados, em seguida localizar uma pessoas através do seu CPF e imprimir o seu IMC.

Seu código deverá obrigatoriamente usar uma classe Java chamada Pessoa.

Sua saída deverá ser parecida com:

LEITURA DAS PESSOAS:

Nome da Pessoa 1: OSMAR J SILVA
Sexo da Pessoa 1: M
Peso da Pessoa 1: 102
Atura da Pessoa 1: 1,87
CPF da Pessoa 1: 1234

Informe o CPF da pessoa a ser localizada: 1234

DADOS DA PESSOA ENCONTRADA:

Nome: OSMAR J SILVA
Sexo: M
Peso: 102,00
Altura: 1,87
IMC: 29,17
Resposta/Solução:

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

Código para a classe Pessoa.java:

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

package estudos;

// definição da classe Pessoa
public class Pessoa {
  String nome; // nome da pessoa
  char sexo;  // 'M' = masculino; 'F' = feminino
  double peso; // peso da pessoa
  double altura; // altura da pessoa
  long cpf; // CPF da pessoa
}

Código para a classe principal:

----------------------------------------------------------------------
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{ 
  // define a quantidade de pessoas que serão lidas
  static final int QUANT_PESSOAS = 1;
  
  public static void main(String args[]){ 
    // vamos usar a classe Scanner para a leitura dos dados
    Scanner entrada = new Scanner(System.in);
    
    Pessoa pessoas[] = new Pessoa[QUANT_PESSOAS]; // vetor de pessoas
    
    // vamos efetuar a leitura dos dados das pessoas
    System.out.println("LEITURA DAS PESSOAS:\n");
     
    for(int i = 0; i < QUANT_PESSOAS; i++){
      // cria uma nova pessoa
      pessoas[i] = new Pessoa();

      // vamos ler o nome da pessoa
      System.out.print("Nome da Pessoa " + (i + 1) + ": ");
      pessoas[i].nome = entrada.nextLine();
      // vamos ler o sexo
      System.out.print("Sexo da Pessoa " + (i + 1) + ": ");
      pessoas[i].sexo = Character.toUpperCase(entrada.nextLine().charAt(0));
      // vamos ler o peso
      System.out.print("Peso da Pessoa " + (i + 1) + ": ");
      pessoas[i].peso = Double.parseDouble(entrada.nextLine());
      // vamos ler a altura
      System.out.print("Altura da Pessoa " + (i + 1) + ": ");
      pessoas[i].altura = Double.parseDouble(entrada.nextLine());
      // vamos ler o CPF
      System.out.print("CPF da Pessoa " + (i + 1) + ": ");
      pessoas[i].cpf = Long.parseLong(entrada.nextLine());
    }
    
    // agora vamos ler o CPF a ser pesquisado
    System.out.print("\nInforme o CPF da pessoa a ser localizada: ");
    long cpfPesquisa = Long.parseLong(entrada.nextLine());
    
    // vamos varrer o vetor de pessoas para encontrar a pessoa
    // cujo CPF foi informado
    boolean encontrado = false; // para marcar se encontramos a pessoa
    for(int i = 0; i < QUANT_PESSOAS; i++){
      if(pessoas[i].cpf == cpfPesquisa){
        encontrado = true; // marca como encontrado
        // calcula o IMC
        double imc = pessoas[i].peso / (pessoas[i].altura *
          pessoas[i].altura);
        // mostramos os dados da pessoa encontrada
        System.out.println("\nDADOS DA PESSOA ENCONTRADA:\n");
        System.out.println("Nome: " + pessoas[i].nome);
        System.out.println("Sexo: " + pessoas[i].sexo);
        System.out.println("Peso: " + pessoas[i].peso);
        System.out.println("Altura: " + pessoas[i].altura);
        System.out.println("IMC: " + imc);
      }
    }
    
    // a pessoa não foi encontrada?
    if(!encontrado){
      System.out.println("\nPessoa não encontrada.\n\n");
    }
  } 
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de Java - Escreva um programa Java que efetue a soma dos elementos da diagonal principal de uma matriz

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

Em álgebra linear, a diagonal principal de uma matriz A é a coleção das entradas Aij em que i é igual a j. A diagonal principal de uma matriz quadrada une o seu canto superior esquerdo ao canto inferior direito (conforme mostrado na saída do problema proposto abaixo).

Escreva um programa Java que declara uma matriz 3x3 e pede ao usuário para informar seus valores. Em seguida mostre todos os valores da matriz e a soma dos elementos da diagonal principal. Sua saída deverá ser parecida com a imagem abaixo:



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[]){ 
    // vamos usar a classe Scanner para a leitura dos dados
    Scanner entrada = new Scanner(System.in);
    
    int matriz[][] = new int[3][3]; // uma matriz de três linhas e três colunas
    int soma_diagonal = 0; // guarda a soma dos elementos na diagonal principal

    // vamos ler os valores para os elementos da matriz
    for(int i = 0; i < 3; i++){ // linhas
      for(int j = 0; j < 3; j++){ // colunas
        System.out.print("Valor para a linha " + i + " e coluna " + j + ": ");
        matriz[i][j] = Integer.parseInt(entrada.nextLine());       
      }        
    }
  
    // vamos mostrar a matriz da forma que ela foi informada
    System.out.println("\nValores na matriz\n");
    
    for(int i = 0; i < 3; i++){
      for(int j = 0; j < 3; j++){
        System.out.printf("%5d ", matriz[i][j]);   
      }
    
      // passa para a próxima linha da matriz
      System.out.println();       
    }
  
    // vamos calcular a soma dos elementos da diagonal principal
    for(int i = 0; i < 3; i++){
      for(int j = 0; j < 3; j++){
        if(i == j){
          soma_diagonal = soma_diagonal + matriz[i][j];
        }
      }
    }
  
    System.out.println("\nA soma dos elementos da diagonal principal é: " + 
      soma_diagonal);
  }
}



Java ::: Estruturas de Dados ::: Lista Ligada Simples

Estruturas de dados em Java - Como criar uma lista singularmente ligada, inserindo e exibindo os valores contidos em cada nó

Quantidade de visualizações: 11994 vezes
Em dicas posteriores você aprendeu sobre listas singularmente e duplamente ligadas. Nesta dica você aprenderá a criar uma lista singularmente ligada (com referências apenas para o próximo nó), inserir alguns nós (sempre no final da lista) e usará um laço while para visitar todos os nós e exibir seus valores.

A classe usada para representar cada nó é a seguinte (No.java):

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

// classe No
public class No{
  public int valor;
  public No proximo;
}
// fim da classe No

Note que cada nó contém apenas um valor inteiro e uma referência para o próximo nó. Ao analisar o código você perceberá que tanto a inserção quanto a exibição dos nós são feitas usando métodos. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Veja o código para a lista ligada (Lista.java):

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

public class Lista{
  No inicio; // início da lista  

  // função que permite exibir os valores de
  // todos os nós da lista
  public void exibir(){
    if(inicio != null){
      do{
        System.out.println(inicio.valor);
        inicio = inicio.proximo;
      }while(inicio != null);
    }
    else
      System.out.println("A lista esta vazia\n\n");
  }

  // função que permite inserir nós na lista.
  // veja que a função recebe o valor a ser
  // armazenado em cada nó
  public void inserir(int v){
    No temp;

    // verifica se a lista está vazia
    if(inicio == null){
      // reserva memória para o novo nó
      inicio = new No();
      inicio.valor = v;
      // é o primeiro nó...não deve apontar para
      // lugar nenhum
      inicio.proximo = null;
    }
    else{ // não está vazia....vamos inserir o nó no final
      temp = inicio;
      // vamos varrer a lista até encontrar o último nó
      while(temp.proximo != null)
        temp = temp.proximo;

      // estamos no último nó...vamos criar um novo nó agora
      temp.proximo = new No();
      // atribui o valor do nó
      temp.proximo.valor = v;
      // define o campo proximo do nó como null
      temp.proximo.proximo = null;
    }
  }
}

Compile as classes No.java e Lista.java e vamos fazer o teste (TesteJava.java):

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

public class TesteLista{
  public static void main(String args[]){
    // vamos criar uma nova lista
    Lista lista = new Lista();

    // vamos inserir quatro valores na lista
    lista.inserir(45);
    lista.inserir(3);
    lista.inserir(98);
    lista.inserir(17);

    // exibe os valores na lista
    lista.exibir();

    System.exit(0);   
  }  
}



Java ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar o modificador final em classes, variáveis e métodos Java - Programação Orientada a Objetos em Java

Quantidade de visualizações: 13450 vezes
O modificador final pode ser usado com classes, variáveis e métodos. É claro que o significado varia dependendo do uso. Por exemplo, ao marcarmos uma variável com o modificador final, estamos na verdade criando uma constante, ou seja, uma variável cujo conteúdo não pode ser alterado durante a execução do programa. Veja:

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

public class Estudos{ 
  static final int VALOR = 45;  

  public static void main(String args[]){ 
    // vamos tentar alterar o valor da
    // constante
    VALOR = 10;
  } 
}

Ao tentarmos compilar este programa teremos a seguinte mensagem de erro:

Estudos.java:7: cannot assign a value to 
final variable VALOR
    VALOR = 10;
    ^
1 error


Tenha em mente, porém, que quando uma variável marcada como final é uma referência a um objeto, é a referência que não poderá ser alterada. As propriedades do objeto para a qual ela aponta poderão sofrer alterações, exceto se estes também estiverem marcados como final.

Quando aplicado a classes, o modificador final garante que a classe não poderá ser extendida, ou seja, não é possível criar uma classe derivada a partir de uma classe marcada como final. Veja:

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

// superclasse
final class Pessoa{
  public String nome;
}

// subclasse
class Aluno extends Pessoa{
  public String matricula;
}

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria um objeto da classe Aluno
    Aluno a = new Aluno();
  } 
}

Ao tentarmos compilar este código teremos a seguinte mensagem de erro:

Estudos.java:7: cannot inherit from 
final Pessoa
class Aluno extends Pessoa{
                    ^
1 error


Um método marcado como final não pode ser sobrescrito. Veja um exemplo:

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

// superclasse
class Pessoa{
  protected String nome;

  public final String getNome(){
    return this.nome;
  }
}

// subclasse
class Aluno extends Pessoa{
  // estamos sobrescrevendo o método
  // herdado da superclasse
  public final String getNome(){
    return "Aluno: " + this.nome;
  }
}

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria um objeto da classe Aluno
    Aluno a = new Aluno();
  } 
}

Ao tentarmos compilar este código teremos a seguinte mensagem de erro:

Estudos.java:14: getNome() in Aluno cannot 
override getNome() in Pessoa; overriden method is final
  public final String getNome(){
                      ^
1 error


Resumindo: variáveis marcadas com final não poder sofrer alterações. Classes marcadas como final não podem ter classes derivadas. Métodos marcados como final não podem ser sobrescritos.


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: C
6º lugar: Delphi
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á 103 usuários muito felizes estudando em nosso site.