Percursos
/
Ruby
Ruby
/
Exercícios
/
Conta poupança
Conta poupança

Conta poupança

Exercício de aprendizagem

Introdução

Módulos

Até agora, todos os exercícios que viste usavam classes. Por vezes não precisamos do custo de criar um objeto com estado, por isso usamos antes module.

Um módulo é muito semelhante a uma classe (na verdade, Module é o pai de Class na hierarquia de objetos). A principal diferença é que, em vez de usarmos métodos de instância, usamos métodos de classe. Os métodos de classe começam por self. e são chamados diretamente num módulo.

Por exemplo:

module Speaker
  def self.echo(something)
    "#{something} ... #{something}"
  end
end

Speaker.echo("Hello")   #=> "Hello ... Hello"

Ciclos

Há várias formas de escrever ciclos em Ruby, mas como tendemos a usar enumeração em vez de ciclos em geral, o ciclo mais comum é talvez o while:

counter = 0

while counter < 5
  counter += 1
end

Também podes usar o seu irmão until:

counter = 0

until counter == 5
  counter += 1
end

Instruções

Neste exercício vais trabalhar com contas poupança. Todos os anos, o saldo de uma conta poupança é atualizado com base na taxa de juro. A taxa de juro que o banco oferece depende da quantidade de dinheiro na conta (o seu saldo):

  • 0,5% para um saldo não negativo inferior a 1000 dólares.
  • 1,621% para um saldo positivo maior ou igual a 1000 dólares e inferior a 5000 dólares.
  • 2,475% para um saldo positivo maior ou igual a 5000 dólares.
  • 3,213% para um saldo negativo (resulta em juro negativo).

Tens três tarefas, cada uma delas sobre o saldo e a respetiva taxa de juro.

1. Calcula a taxa de juro

Implementa o método SavingsAccount.interest_rate para calcular a taxa de juro com base no saldo indicado:

SavingsAccount.interest_rate(200.75)
#=> 0.5

Repara que o valor devolvido é uma instância de Float.

2. Calcula a atualização anual do saldo

Implementa o método SavingsAccount.annual_balance_update para calcular a atualização anual do saldo, tendo em conta a taxa de juro:

SavingsAccount.annual_balance_update(200.75)
#=> 201.75375

Repara que o valor devolvido é uma instância de Float.

3. Calcula os anos necessários para atingir o saldo pretendido

Implementa o método SavingsAccount.years_before_desired_balance para calcular o número mínimo de anos necessários para atingir o saldo pretendido:

SavingsAccount.years_before_desired_balance(200.75, 214.88)
#=> 14

Repara que o valor devolvido é uma instância de Integer.

Editar via GitHub A ligação abre numa nova janela ou separador
Ruby Exercism

Estás pronto para começar Conta poupança?

Inscreve-te no Exercism para aprenderes e dominares Ruby com 21 conceitos121 exercícios, e mentoria humana real, tudo grátis.