Percursos
/
Go
Go
/
Exercícios
/
Os juros são interessantes
Os juros são interessantes

Os juros são interessantes

Exercício de aprendizagem

Introdução

Um número de vírgula flutuante é um número com zero ou mais algarismos depois do separador decimal. Por exemplo: -2.4, 0.1, 3.14, 5., 16.984025 e 1024.0.

Tipos de vírgula flutuante diferentes podem armazenar quantidades diferentes de algarismos depois do separador de algarismos; a isto chama-se precisão.

O Go tem dois tipos de vírgula flutuante:

  • float32: 32 bits (~6-9 algarismos de precisão).
  • float64: 64 bits (~15-17 algarismos de precisão). Este é o tipo de vírgula flutuante predefinido.

Como se pode ver, os dois tipos podem armazenar um número diferente de algarismos. Isto significa que tentar armazenar o PI num float32 só vai guardar os primeiros 6 a 9 algarismos (sendo o último arredondado).

Por predefinição, o Go usa float64 para os números de vírgula flutuante, a menos que o número de vírgula flutuante seja:

  1. atribuído a uma variável com o tipo float32, ou
  2. devolvido por uma função com tipo devolvido float32, ou
  3. passado como argumento à função float32().

O pacote math contém muitas funções matemáticas úteis.

Instruções

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

  • 3,213% para um saldo inferior a 0 dólares (o saldo fica ainda mais negativo).
  • 0,5% para um saldo maior ou igual a 0 dólares e inferior a 1000 dólares.
  • 1,621% para um saldo maior ou igual a 1000 dólares e inferior a 5000 dólares.
  • 2,475% para um saldo maior ou igual a 5000 dólares.

Tens quatro tarefas, cada uma delas vai lidar com o teu saldo e a sua taxa de juro.

1. Calcula a taxa de juro

Implementa a função InterestRate() para calcular a taxa de juro com base no saldo indicado:

InterestRate(200.75)
// => 0.5

Repara que o valor devolvido é um float32.

2. Calcula os juros

Implementa a função Interest() para calcular os juros com base no saldo indicado:

Interest(200.75)
// => 1.003750

Repara que o valor devolvido é um float64.

3. Calcula a atualização anual do saldo

Implementa a função AnnualBalanceUpdate() para calcular a atualização anual do saldo, tendo em conta a taxa de juro:

AnnualBalanceUpdate(200.75)
// => 201.75375

Repara que o valor devolvido é um float64.

4. Calcula os anos necessários até atingires o saldo pretendido

Implementa a função YearsBeforeDesiredBalance() para calcular o número mínimo de anos necessários para atingir o saldo pretendido, tendo em conta que, a cada ano, os juros são adicionados ao saldo. Isto significa que o saldo após um ano é: saldo inicial + juros do saldo inicial. O saldo após o segundo ano é: saldo após um ano + juros do saldo após um ano. E assim sucessivamente, até que o saldo do ano atual seja maior ou igual ao saldo pretendido.

balance := 200.75
targetBalance := 214.88
YearsBeforeDesiredBalance(balance, targetBalance)
// => 14

Repara que o valor devolvido é um int.

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

Estás pronto para começar Os juros são interessantes?

Inscreve-te no Exercism para aprenderes e dominares Go com 34 conceitos166 exercícios, e mentoria humana real, tudo grátis.