Skip to content

Instantly share code, notes, and snippets.

@cami-la
Created October 11, 2022 16:07
Show Gist options
  • Save cami-la/9cdc6e61fae45a7b956cd0d130c60e99 to your computer and use it in GitHub Desktop.
Save cami-la/9cdc6e61fae45a7b956cd0d130c60e99 to your computer and use it in GitHub Desktop.
Lista de Exercícicios Para Treinar Pensamento Computacional e POO

Lista de Exercícios POO

  1. Crie uma classe que modele um aluno de academia:
    • Atributos: Nome, data de nascimento, peso e altura.
    • Métodos: Calcula idade.
  2. Crie uma classe que modele uma avaliação física de academia:
    • Atributos: Id matricula, data da matrícula, aluno e avaliações físicas.
    • Informações do aluno, informações da última avaliação e informações de uma avaliação qualquer.
  3. Crie uma classe que modele uma conta corrente:
    • Atributos: número da conta, nome do correntista e saldo.
    • Métodos: alterar nome, depósito e saque.
      No construtor, o saldo é opcional, com o valor default zero e os demais atributos são obrigatórios.
  4. Faça um programa que simule um televisor criando-o como um objeto:
    • O usuário deve ser capaz de informar o número do canal e aumentar ou diminuir o volume.
    • Certifique-se de que o número do canal e o nível do volume permanecem dentro de faixas válidas.
  5. Crie uma classe que modele um macaco:
    • Atributos: Nome e bucho (estômago).
    • Métodos: Comer, verBucho e digerir.
    • Faça um programa e teste interativamente:
      • Crie 2 macacos
      • Alimente-os com 3 alimentos diferentes e verificando o conteúdo do estômago a cada refeição.
      • Experimente fazer com que um macaco coma o outro. É possível criar um macaco canibal?
  6. Crie uma classe que modele uma bomba de combustível:
    • Atributos: tipo de combustível, valor do litro, quantidade do combustível.
    • Métodos:
      1. Abastecer por valor: método onde é informado o valor a ser abastecido e mostra a quantidade de litros que foi colocada no veículo.
      2. Abastecer por litro: método onde é informado a quantidade em litros de combustível e mostra o valor a ser pago pelo cliente.
      3. Alterar o valor do litro do combustível: altera o valor do litro do combustível.
      4. Alterar quantidade de combustível: altera a quantidade de combustível restante na bomba.
      5. Sempre que acontecer um abastecimento é necessário atualizar a quantidade de combustível total na bomba. A bomba inicia com 100 L de combustível.
  7. Faça uma classe contaInvestimento que seja semelhante a classe ContaBancaria, com a diferença de que se adicione um atributo taxaJuros.
    • Forneça um construtor que configure tanto o saldo inicial com a taxa de juros
    • Forneça um método adicioneJuros (sem parâmetro explícito) que adicione juros à conta
    • Escreva um programa que construa uma poupança com um saldo inicial de R$1.000,00 e uma taxa de juros de 10%
    • Depois aplique o método adicioneJuros() cinco vezes e imprima o saldo resultante
  8. Crie uma classe que modele um funcionário.
    • Um empregado tem um nome (String) e um salário (Double)
    • Escreva um construtor com dois parâmetros (nome e salário)
    • Métodos para devolver nome, salário, aumentar salário (porcentualDeAumento) que aumente o salário do funcionário em uma certa porcentagem.
    • Escreva um pequeno programa que teste sua classe.
  9. Identifique as classes e implemente um programa para a seguinte especificação: “O supermercado vende diferentes tipos de produtos. Cada produto tem um preço e uma quantidade em estoque. Um pedido de um cliente é composto de itens, onde cada item especifica o produto que o cliente deseja e a respectiva quantidade. Esse pedido pode ser pago em dinheiro, cheque ou cartão.”
  10. Faça um programa para controle de empréstimo de livros, com as classes Emprestimo, Livro e Pessoa.
  11. Faça um programa que calcule a área de uma figura geométrica. Aceite quatro tipos de figura geométrica: quadrado, retângulo, triângulo e círculo. Use herança e polimorfismo.
  12. Escreva uma classe que represente um país. Um país é representado através dos atributos: código ISO 3166-1 (ex.: BRA), nome (ex.: Brasil), população (ex.: 193.946.886) e a sua dimensão em Km2 (ex.: 8.515.767,049). Além disso, cada país mantém uma lista de outros países com os quais ele faz fronteira. Escreva a classe em Java e forneça os seus membros a seguir:
    1. Construtor que inicialize o código ISO, o nome e a dimensão do país;
    2. Métodos de acesso (getter/setter) para as propriedades código: ISSO, nome, população e dimensão do país;
    3. Um método que permita verificar se dois objetos representam o mesmo país (igualdade semântica). Dois países são iguais se tiverem o mesmo código ISO;
    4. Um método que informe se outro país é limítrofe do país que recebeu a mensagem;
    5. Um método que retorne a densidade populacional do país;
    6. Um método que receba um país como parâmetro e retorne a lista de vizinhos comuns aos dois países.
    7. Considere que um país tem no máximo 40 outros países com os quais ele faz fronteira.
  13. Escreva em Java uma classe Continente. Um continente possui um nome e é composto por um conjunto de países. Forneça os membros de classe a seguir:
    1. Construtor que inicialize o nome do continente;
    2. Um método que permita adicionar países aos continentes;
    3. Um método que retorne a dimensão total do continente;
    4. Um método que retorne a população total do continente;
    5. Um método que retorne a densidade populacional do continente;
    6. Um método que retorne o país com maior população no continente;
    7. Um método que retorne o país com menor população no continente;
    8. Um método que retorne o país de maior dimensão territorial no continente;
    9. Um método que retorne o país de menor dimensão territorial no continente;
    10. Um método que retorne a razão territorial do maior pais em relação ao menor país.
  14. Escreva uma classe Pessoa que representa uma pessoa numa árvore genealógica. A pessoa possui um nome, um pai e uma mãe (que também são pessoas). Forneça os seguintes membros para a classe:
    1. Construtores sobrecarregados que:
      1. Inicialize o nome da pessoa, bem como seus antecessores (pai e mãe);
      2. Inicialize o nome da pessoa, e coloque seus antecessores para null;
    2. Um método que verifique a igualdade semântica entre duas pessoas (as pessoas são iguais se possuem o mesmo nome e a mesma mãe);
    3. Um método que verifique se duas pessoas são irmãs;
    4. Um método que verifique se uma pessoa é antecessora da pessoa que recebeu a mensagem (é seu pai ou sua mãe, ou antecessor do pai ou antecessor da mãe).
@ArielyCamargo
Copy link

Olá Camila. Muito interessante os exercícios. Estou escrevendo uma cartilha sobre C++ e para complementar vou anexar nele um vídeo. Pensei em utilizar alguns desses exercícios e resolvê-los no vídeo. Tudo bem para você?

@cami-la
Copy link
Author

cami-la commented May 30, 2023

Oie, tudo certo! Fique à vontade. Pode usar sim, sem problemas.

Só dá os créditos e se possível me manda aqui para eu ver seu curso? Também vou resolve-los em Java, Kotlin em TypeScript.
Aproveito e divulgo o seu material também. (:

Bons estudos!

@ArielyCamargo
Copy link

Obrigada! Mando sim!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment