Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços

A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo Java - Lista de Exercícios Resolvidos de Java

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

A concessionária de veículos "CARANGO VELHO" está vendendo os seus veículos com descontos. Faça um algoritmo Java que calcule e exiba o valor do desconto e o valor a ser pago pelo cliente de vários carros. O desconto deverá ser calculado de acordo com o ano do veículo.

Até o ano 2000 o desconto é 12%, e acima de 2000 o desconto é de 7%. Seu código deverá solicitar o valor do carro e o seu ano e aplicar o desconto correspondente. Além disso o sistema deverá perguntar se deseja continuar calculando descontos até que a resposta seja: "(N) Não". Informar o total de carros com ano até 2000 e o total geral a ser pago pelo cliente.

Sua saída deve ser parecida com:

Informe o valor do carro sem desconto: 25000
Informe o ano do carro: 2010
Desconto concedido: 1750
Valor do carro com desconto: 23250
Deseja adicionar mais carros? [S, N]: S

Informe o valor do carro sem desconto: 30500
Informe o ano do carro: 1985
Desconto concedido: 3660
Valor do carro com desconto: 26840
Deseja adicionar mais carros? [S, N]: S

Informe o valor do carro sem desconto: 16800
Informe o ano do carro: 1990
Desconto concedido: 2016
Valor do carro com desconto: 14784
Deseja adicionar mais carros? [S, N]: N

Total de carros com ano até 2000: 2
Total geral a pagar: 64874
Resposta/Solução:

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
    double valor_carro, valor_desconto, valor_carro_desconto;
    double total_geral = 0.0;
    int ano, total_carros_ano_2000 = 0;
    char resposta;    

    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);

    // repete até que o usuário informe o valor "N"
    do {
      // vamos ler o valor do carro sem desconto
      System.out.print("Informe o valor do carro sem desconto: ");
      valor_carro = Double.parseDouble(entrada.nextLine());
      
      // vamos ler o ano do carro
      System.out.print("Informe o ano do carro: ");
      ano = Integer.parseInt(entrada.nextLine());

      // o ano é menor ou igual a 2000
      if (ano <= 2000) {
        valor_desconto = valor_carro * (12.0 / 100.0);
        // vamos somar mais este carro
        total_carros_ano_2000 = total_carros_ano_2000 + 1;
      }
      else {
        valor_desconto = valor_carro * (7.0 / 100.0);
      }

      // calculamos o valor do carro com o desconto
      valor_carro_desconto = valor_carro - valor_desconto;
      System.out.println("Desconto concedido: " + valor_desconto);
      System.out.println("Valor do carro com desconto: " + 
        valor_carro_desconto);

      // somamos mais este valor ao total geral
      total_geral = total_geral + valor_carro_desconto;

      // perguntamos se o usuário deseja adicionar mais carros
      System.out.print("Deseja adicionar mais carros? [S, N]: ");
      resposta = entrada.nextLine().charAt(0);
      System.out.println();
    } while ((resposta != 'N') && (resposta != 'n'));  

    // mostramos os resultados
    System.out.println("Total de carros com ano até 2000: " +
      total_carros_ano_2000);
    System.out.println("Total geral a pagar: " + total_geral);
  }
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Dicas & Truques ::: Recursão (Recursividade)

Java Avançado - Como listar o conteúdo de um diretório recursivamente

Quantidade de visualizações: 10964 vezes
Nesta dica mostrarei como podemos usar recursividade (recursão) para listar todo o conteúdo de um diretório. Este é um exercício para melhorar o seu entendimento de funções recursivas em Java.

Veja o código completo para o exemplo:

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

package arquivodecodigos;

import java.io.*;
import java.util.*;

public class Estudos {
  static int indentLevel = -1;

  public static void main(String[] args) {
    listPath(new File("c:\\estudos_c"));
  }

  static void listPath(File path) {
    File files[];
    indentLevel++;

    files = path.listFiles();

    Arrays.sort(files);

    for (int i = 0, n = files.length; i < n; i++) {
      for (int indent = 0; indent < indentLevel; indent++) {
        System.out.print("  ");
      }
      
      System.out.println(files[i].getName());
      
      if(files[i].isDirectory()) {
        listPath(files[i]);
      }
    }
    indentLevel--;
  }
}

Ao executar este código nós teremos o seguinte resultado:

DICA.txt
estudos
  .vs
    estudos
      v16
        .suo
        Browse.VC.db
        ipch
          AutoPCH
            1dcb307edee5acf8
              ORIGEM.ipch
  Debug
    estudos.exe
    estudos.exe.recipe
    estudos.ilk
    estudos.log
    estudos.pdb
    estudos.tlog
      CL.command.1.tlog
      CL.read.1.tlog
      CL.write.1.tlog
      estudos.lastbuildstate
      link.command.1.tlog
      link.read.1.tlog
      link.write.1.tlog
    estudos.vcxproj.FileListAbsolute.txt
    Origem.obj
    vc142.idb
    vc142.pdb
  estudos.sln
  estudos.vcxproj
  estudos.vcxproj.filters
  estudos.vcxproj.user
  Origem.cpp
Estudos_C.dev
Estudos_C.exe
Estudos_C.layout
main.c
main.o
Makefile.win



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas

Exercícios Resolvidos de Java - Como remover no início de uma lista ligada em Java - Escreva um programa Java que cria uma lista dinamicamente encadeada

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

Escreva um programa Java que cria uma lista dinamicamente encadeada (lista singularmente encadeada) e peça para o usuário inserir 5 elementos do tipo inteiro. Em seguida faça a remoção do nó no início da lista ligada e retorne o seu valor.

Sua saída deve ser parecida com:

Inserindo 5 valores na lista

Informe o 1.o valor: 3
Informe o 2.o valor: 8
Informe o 3.o valor: 4
Informe o 4.o valor: 7
Informe o 5.o valor: 6

Valores na lista: 3 -> 8 -> 4 -> 7 -> 6 -> null

Removendo no início da lista
O nó removido foi: 3

Valores na lista novamente: 8 -> 4 -> 7 -> 6 -> null
Resposta/Solução:

Na saída podemos ver que a lista contém os valores 3, 8, 4, 7 e 6. Depois que o nó no início é removido, os elementos da lista ficam 8, 4, 7 e 6.

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;

// classe interna usada para representar um
// nó na lista ligada
class No {
  int valor; // valor do nó
  No proximo; // aponta para o novo nó
 
  // construtor cheio da classe No
  public No(int valor, No proximo) {
    this.valor = valor;
    this.proximo = proximo;
  }
  
  // construtor vazio da classe No
  public No() {
    this.valor = 0;
    this.proximo = null;
  }
}

public class Estudos { 
  // vamos criar uma referência para o início da lista
  static No inicio = null;
  
  public static void main(String args[]){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos inserir 5 valores inteiros na lista ligada
    int valor;
    System.out.println("Inserindo 5 valores na lista\n");
    for (int i = 0; i < 5; i++) {
      System.out.print("Informe o " + (i + 1) + ".o valor: ");
      valor = Integer.parseInt(entrada.nextLine());
      // vamos inserir este valor no final da lista
      inserirFinal(valor);
    }
    
    // vamos exibir os valores na lista ligada
    System.out.print("\nValores na lista: ");
    exibirLista();
    
    // vamos remover o nó no início da lista ligada
    System.out.println("\nRemovendo no início da lista");
    No removido = removerInicio();
    System.out.println("O nó removido foi: " +
      removido.valor);
    
    // vamos exibir os valores na lista ligada
    System.out.print("\nValores na lista novamente: ");
    exibirLista();
  }
  
  // função que permite remover o nó no início de uma lista
  // dinamicamente ligada em Java
  public static No removerInicio() {
    // primeiro apontamos para o início da lista
    No no = inicio;
    
    // a lista está vazia?
    if (no != null) {
      // o início da lista aponta para o seu próximo
      inicio = inicio.proximo;
    }
    
    // retorna o nó removido ou null no caso da lista vazia
    return no;
  }

  // função que permite adicionar um nó no final da
  // lista ligada
  public static void inserirFinal(int valor) {
    // vamos apontar para o nó inicial
    No atual = inicio;
    // criamos um novo nó
    No novo = criarNo(valor);
  
    // a lista ligada ainda está vazia?
    if (atual == null){
      // inicio recebe o novo nó
      inicio = novo;
    }    
    else { // temos um ou mais nós na lista ligada
      // vamos localizar o último nó
      while (atual.proximo != null) {
        atual = atual.proximo;
      }
       
      // encontramos o último nó. Agora vamos inserir
      // o novo nó depois dele
      atual.proximo = novo;
    }
  }
  
  // função usada para construir e retornar um novo nó
  public static No criarNo(int valor) {
    // cria o novo nó
    No no = new No(valor, null);
    // retorna o nó criado
    return no;
  }
  
  // função usada para percorrer a lista ligada e
  // exibir os valores contidos em seus nós
  public static void exibirLista() {
    // vamos apontar para o início da lista
    No temp = inicio;
    
    // a lista está vazia?
    if (temp == null) {
      System.out.println("A lista está vazia.");
    }
    else {
      // esse laço se repete enquanto tempo for
      // diferente de null
      while (temp != null) {
        // vamos mostrar o valor desse nó
        System.out.print(temp.valor + " -> ");
        // avança para o próximo nó
        temp = temp.proximo;
      }
    
      // mostra o final da lista
      System.out.println("null");
    }
  }
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços

Exercícios Resolvidos de Java - Como calcular a tabuada de multiplicação para os números de 1 a 9 em Java

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

Escreva um programa Java que usa o laço for para calcular e exibir a tabuada de multiplicação dos números 1 a 9.

Sua saída deve ser parecida com:

        Tabuada de Multiplicação
----------------------------------------------
       1   2   3   4   5   6   7   8   9
----------------------------------------------
1  |   1   2   3   4   5   6   7   8   9
2  |   2   4   6   8  10  12  14  16  18
3  |   3   6   9  12  15  18  21  24  27
4  |   4   8  12  16  20  24  28  32  36
5  |   5  10  15  20  25  30  35  40  45
6  |   6  12  18  24  30  36  42  48  54
7  |   7  14  21  28  35  42  49  56  63
8  |   8  16  24  32  40  48  56  64  72
9  |   9  18  27  36  45  54  63  72  81
Resposta/Solução:

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

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

package estudos;

public class Estudos {
  public static void main(String[] args) {
    // mostra o título da tabela
    System.out.print("        Tabuada de Multiplicação");
    System.out.println("\n----------------------------------------------");
     
    // exibe os números na parte superior
    System.out.print("    ");
    for(int i = 1; i <= 9; i++){
      System.out.print("   " + i);  
    }
     
    System.out.println("\n----------------------------------------------");
     
    // mostra o corpo da tabuada
    for(int i = 1; i <= 9; i++){
      System.out.print(i + "  |");
      for(int j = 1; j <= 9; j++){
        System.out.printf("%4d", i * j);  
      }
      System.out.println();
    }
     
    System.out.println("\n");
  }
}



Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Vazão de projeto

O escoamento livre em condutos é caracterizado por ter uma superfície livre, cuja pressão atuante é a pressão atmosférica.

Considere o dimensionamento de um canal de drenagem em terra com vegetação rasteira nos taludes e fundo, possui: taludes 2H: 1V e declividade de fundo (So) de 20cm/km. Ele foi dimensionado para uma determinada vazão de projeto Q, tendo chegado a uma seção com largura de fundo (b) igual a 1,5m e altura da lâmina de água (yo) 1,30m. Determine qual a vazão Q do projeto e indique se a seção é de mínimo perímetro molhado.

Dados: 0,025 (cobertura vegetal rasteira).

A) Vazão de projeto de 2,45m3/s e satisfaz a condição de mínimo perímetro molhado.

B) Vazão de projeto de 2,72m3/s e satisfaz a condição de mínimo perímetro molhado.

C) Vazão de projeto de 3,94m3/s e satisfaz a condição de mínimo perímetro molhado.

D) Vazão de projeto de 3,54m3/s e não satisfaz a condição de mínimo perímetro molhado.

E) Vazão de projeto de 2,99m3/s e não satisfaz a condição de mínimo perímetro molhado.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Analise o seguinte trecho de código JavaScript

var valores = new Array(2, 4);

Este código

A) cria uma matriz chamada valores com 2 linhas e 4 colunas.

B) cria um array valores e atribui os valores 2 e 4 para valores[1] e valores[2].

C) cria um array valores e atribui os valores 2 e 4 para valores[0] e valores[1].

D) cria um array de três elementos com os índices variando de 2 até 4.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Postura ética profissional

Os engenheiros são profissionais responsáveis por criar soluções para situações do dia a dia que, de certa forma, pareciam impossíveis. Eles otimizaram as formas de transporte, de construção e, principalmente, de produção das indústrias. Diante dessas inovações, é comum que esses profissionais enfrentem situações éticas em que precisem decidir se avançam ou não com tais projetos.

Quanto ao conceito de ética na engenharia, é correto afirmar que:

A) A ética na engenharia é um aspecto que deve ser considerado em segundo lugar ante os benefícios que pode trazer à humanidade.

B) A ética engloba a avaliação racional de ganhos e riscos, definindo as responsabilidades individuais durante a execução de um projeto.

C) A ética engloba a avaliação social dos riscos e das responsabilidades coletivas durante a execução de um projeto.

D) A ética é um conceito que não se aplica à engenharia, somente à medicina, por esta área tratar diretamente da vida de um indivíduo.

E) A ética somente diz respeito à engenharia, pois as descobertas realizadas por tal área englobam um grande número de pessoas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

valores = [5, 2, 7, 1, 4, 9, 6]
contador = len(valores)
while contador >= 0:
  print(valores[contador], end="  ")
  contador = contador - 2

A) Erro IndexError: list index out of range na linha 4

B) 6 4 7 5

C) Erro SyntaxError: invalid syntax na linha 5

D) 2 1 9

E) 1 4 9 6
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Vazão de projeto

O escoamento livre em condutos é caracterizado por ter uma superfície livre, cuja pressão atuante é a pressão atmosférica.

Considere o dimensionamento de um canal de drenagem em terra com vegetação rasteira nos taludes e fundo, possui: taludes 2H: 1V e declividade de fundo (So) de 20cm/km. Ele foi dimensionado para uma determinada vazão de projeto Q, tendo chegado a uma seção com largura de fundo (b) igual a 1,5m e altura da lâmina de água (yo) 1,30m. Determine qual a vazão Q do projeto e indique se a seção é de mínimo perímetro molhado.

Dados: 0,025 (cobertura vegetal rasteira).

A) Vazão de projeto de 2,45m3/s e satisfaz a condição de mínimo perímetro molhado.

B) Vazão de projeto de 2,72m3/s e satisfaz a condição de mínimo perímetro molhado.

C) Vazão de projeto de 3,94m3/s e satisfaz a condição de mínimo perímetro molhado.

D) Vazão de projeto de 3,54m3/s e não satisfaz a condição de mínimo perímetro molhado.

E) Vazão de projeto de 2,99m3/s e não satisfaz a condição de mínimo perímetro molhado.
Verificar Resposta Estudar Cards Todas as Questões

Mais Desafios de Programação e 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: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 28 usuários muito felizes estudando em nosso site.