Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços |
Para a cobrança das contas dos seus consumidores, uma empresa de fornecimento de energia elétrica faz a leitura mensal dos medidores de consumo - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 421 vezes |
Pergunta/Tarefa: Para a cobrança das contas dos seus consumidores, uma empresa de fornecimento de energia elétrica faz a leitura mensal dos medidores de consumo. Para cada leitura são registrados os seguintes dados: número da unidade consumidora, quantidade de kWh consumidos durante o mês e tipo de consumidor (residencial, comercial ou industrial). Sabendo-se que o preço, em reais, do kWh é de R$ 0,53224 para o consumidor residencial, de R$ 0,73214 para o consumidor comercial e de R$ 0,84322 para o consumidor industrial, faça um programa em Java que leia estes dados e calcule e imprima: a) número da unidade consumidora, a conta mensal e a categoria de cada consumidor; b) média de consumo dos consumidores industriais; c) número da unidade consumidora de maior consumo entre os consumidores comerciais; d) valor total a ser recebido pela empresa de seus consumidores. A leitura dos consumidores deverá ser interrompida quando o valor 0 for informado para o número da unidade consumidora. Assuma o valor 1 para o tipo residencial, 2 para o comercial e 3 para industrial. Seu programa Java deverá exibir uma saída parecida com: Informe a Unidade Consumidora: 1 Quantidade de kWh consumidos: 300 Residencial, Comercial ou Industrial [1, 2, 3] : 1 Unidade Consumidora: 1 Conta Mensal: 159.67200000000003 Categoria: Residencial Informe a Unidade Consumidora: 2 Quantidade de kWh consumidos: 150 Residencial, Comercial ou Industrial [1, 2, 3] : 2 Unidade Consumidora: 2 Conta Mensal: 109.821 Categoria: Comercial Informe a Unidade Consumidora: 3 Quantidade de kWh consumidos: 250 Residencial, Comercial ou Industrial [1, 2, 3] : 3 Unidade Consumidora: 3 Conta Mensal: 210.80499999999998 Categoria: Industrial Informe a Unidade Consumidora: 4 Quantidade de kWh consumidos: 280 Residencial, Comercial ou Industrial [1, 2, 3] : 3 Unidade Consumidora: 4 Conta Mensal: 236.1016 Categoria: Industrial Informe a Unidade Consumidora: 5 Quantidade de kWh consumidos: 320 Residencial, Comercial ou Industrial [1, 2, 3] : 2 Unidade Consumidora: 5 Conta Mensal: 234.28480000000002 Categoria: Comercial Informe a Unidade Consumidora: 0 Média Consumo Industrial: 223.45329999999998 Unidade Maior Consumo Comercial: 5 Valor total a ser recebido: 950.6844 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) { // variáveis usadas na resolução do problema int unidade, quant_kwh_consumidos, tipo_consumidor; int unid_maior_consumo_comer = 0, quant_industriais = 0; double conta_mensal, media_industriais, soma_industriais = 0; double maior_consumo_comercial = 0; double valor_total = 0; // para a leitura da entrada do usuário Scanner entrada = new Scanner(System.in); do { // vamos ler os dados de cada consumidor System.out.print("\nInforme a Unidade Consumidora: "); unidade = Integer.parseInt(entrada.nextLine()); // a unidade é diferente de 0? if(unidade != 0){ System.out.print("Quantidade de kWh consumidos: "); quant_kwh_consumidos = Integer.parseInt(entrada.nextLine()); System.out.print("Residencial, Comercial ou Industrial [1, 2, 3] : "); tipo_consumidor = Integer.parseInt(entrada.nextLine()); // vamos calcular a conta mensal e exibir os dados desse consumidor System.out.println("\nUnidade Consumidora: " + unidade); if(tipo_consumidor == 1){ // Residencial conta_mensal = quant_kwh_consumidos * 0.53224; System.out.println("Conta Mensal: " + conta_mensal); System.out.println("Categoria: Residencial"); } else if(tipo_consumidor == 2){ // Comercial conta_mensal = quant_kwh_consumidos * 0.73214; System.out.println("Conta Mensal: " + conta_mensal); System.out.println("Categoria: Comercial"); // temos que registrar a unidade de maior consumo // comercial if(conta_mensal > maior_consumo_comercial){ unid_maior_consumo_comer = unidade; maior_consumo_comercial = conta_mensal; } } else { // Industrial conta_mensal = quant_kwh_consumidos * 0.84322; System.out.println("Conta Mensal: " + conta_mensal); System.out.println("Categoria: Industrial"); // vamos contar mais este cliente industrial quant_industriais = quant_industriais + 1; // temos também que somar mais essa conta soma_industriais = soma_industriais + conta_mensal; } // vamos somar mais esta conta ao valor total valor_total = valor_total + conta_mensal; } } while(unidade != 0); // vamos mostrar a média de consumo dos clientes industriais if(quant_industriais > 0){ media_industriais = soma_industriais / quant_industriais; System.out.println("\nMédia Consumo Industrial: " + media_industriais); } else{ System.out.println("\nNão houve consumo industrial"); } // vamos mostrar o número da unidade consumidora de maior // consumo entre os consumidores comerciais; System.out.println("Unidade Maior Consumo Comercial: " + unid_maior_consumo_comer); // vamos mostrar o valor total System.out.println("Valor total a ser recebido: " + valor_total); } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como pesquisar um nó em uma árvore binária de busca usando um método recursivo usando JavaQuantidade de visualizações: 2379 vezes |
Nesta dica mostraremos um exemplo completo de como pesquisar um valor em uma árvore binária de busca em Java. Note que o exemplo usa apenas inteiros, mas você não terá dificuldades para modificar a classe Nó para os dados que você precisar. Código para No.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arvore_binaria; public class No { private int valor; // valor armazenado no nó private No esquerdo; // filho esquerdo private No direito; // filho direito // construtor do nó public No(int valor){ this.valor = valor; this.esquerdo = null; this.direito = null; } public int getValor() { return valor; } public void setValor(int valor) { this.valor = valor; } public No getEsquerdo() { return esquerdo; } public void setEsquerdo(No esquerdo) { this.esquerdo = esquerdo; } public No getDireito() { return direito; } public void setDireito(No direito) { this.direito = direito; } } Código para ArvoreBinariaBusca.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arvore_binaria; public class ArvoreBinariaBusca { private No 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 No(valor); // cria um novo nó } else{ // localiza o nó pai do novo nó No pai = null; No noAtual = raiz; // começa a busca pela raiz // enquanto o nó atual for diferente de null while(noAtual != null){ // o valor sendo inserido é menor que o nó atual? if(valor < noAtual.getValor()) { pai = noAtual; // vamos inserir do lado esquerdo noAtual = noAtual.getEsquerdo(); } // o valor sendo inserido é maior que o nó atual else if(valor > noAtual.getValor()){ pai = noAtual; // vamos inserir do lado direito noAtual = noAtual.getDireito(); } else{ return false; // um nó com este valor foi encontrado } } // cria o novo nó e o adiciona como filho do nó pai if(valor < pai.getValor()){ pai.setEsquerdo(new No(valor)); } else{ pai.setDireito(new No(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 No 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 No pesquisar(No 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 finalmente o 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 arvore_binaria; import java.util.Scanner; public class ArvoreBinariaTeste { 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 No 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 ::: Fundamentos da Linguagem ::: Tipos de Dados |
Apostila de Java para iniciantes - Como usar o tipo de dados int da linguagem JavaQuantidade de visualizações: 12306 vezes |
O tipo de dados int pode ser usado quando queremos armazenar valores inteiros na faixa ?2.147.483.648 até 2.147.483.647 (acima de dois milhões). Veja um exemplo:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos{ static int valor = 1500; public static void main(String args[]){ System.out.println("O valor da variável é: " + valor); System.exit(0); } } O tipo de dados int 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) ---------------------------------------------------------------------- int -> long -> float -> double Se precisarmos converter o tipo int para os tipos char, byte ou short, teremos que lançar mão de uma coerção (cast). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- short valor2 = (short)(valor); |
Java ::: Java para Engenharia ::: Física - Mecânica |
Como calcular a velocidade de um corpo dado sua massa e sua energia cinética usando a linguagem JavaQuantidade de visualizações: 1001 vezes |
A Energia cinética é uma das formas da energia mecânica e definida como a energia de movimento, pois está relacionada com o estado de movimento de um corpo. Variando de acordo com o movimento e a massa do corpo, esse tipo de energia tem sua existência condicionada à velocidade, uma vez que nos corpos em repouso ela não existe, pois a velocidade é nula. Essa vertente de energia depende da relação entre corpo e o ponto referencial do observador. Se houver velocidade, haverá energia cinética. Portanto, não trata-se de uma energia invariável, mas sim de um tipo de energia mecânica que é determinada em função da massa do corpo em movimento, medida em quilogramas (kg), e da velocidade desenvolvida por ele, medida em metros por segundo (m/s). A fórmula para obtenção da velocidade de um corpo, quando temos a sua energia cinética e a sua massa é: \[\text{v} = \sqrt{\frac{E_c}{\frac{1}{2}\text{m}}}\] Onde: m ? massa do corpo (em kg). Ec ? energia cinética (em joule, J). v ? velocidade do corpo (em m/s). Vamos ver um exemplo agora? Observe o seguinte enunciado: 1) Determine qual é a velocidade em que se move um corpo de 20kg cuja energia cinética é igual a 400J. Note que o exercício já nos dá os valores em suas unidades de medidas no SI (Sistema Internacional de Medidas). Tudo que temos a fazer é converter a fórmula para código Java. Veja: ---------------------------------------------------------------------- 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[]){ // energia cinética double energia_cinetica = 400; // em joule // massa do corpo double massa = 20; // em kg // e então calculamos a velocidade do corpo double velocidade = Math.sqrt(energia_cinetica / (0.5 * massa)); // mostramos o resultado System.out.println("A velocidade do corpo é: " + velocidade + "m/s"); } } Ao executar este código Java nós teremos o seguinte resultado: A velocidade do corpo é: 6.324555320336759m/s Não se esqueça de que a velocidade retornada estará em metros por segundo. |
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 |