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 JavaQuantidade 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 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"); } } } |
![]() |
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 matrizQuantidade 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 JavaQuantidade 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 - Como comparar os primeiros n caracteres de duas strings usando a função strncmp() da linguagem C |
Códigos Fonte |
![]() 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 |
![]() 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 |