トラック
/
Ruby
Ruby
/
演習
/
貯蓄口座
貯蓄口座

貯蓄口座

学習演習

はじめに

モジュール

これまで見てきた演習は、すべてクラスを使ってきました。 状態を持つオブジェクトを作る手間が不要なこともあります。そんなときは、代わりにmoduleを使います。

モジュールはクラスとよく似ています(実際、オブジェクト階層ではModuleはClassの親です)。主な違いは、インスタンスメソッドではなくクラスメソッドを使うことです。 クラスメソッドはself.で始まり、モジュールに対して直接呼び出します。

たとえば、次のようになります。

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

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

ループ

Rubyでループを書く方法はいくつかありますが、一般にはループよりもイテレーションを使うことが多いため、おそらく最もよく見かけるループはwhileループでしょう。

counter = 0

while counter < 5
  counter += 1
end

その兄弟分であるuntilも使えます。

counter = 0

until counter == 5
  counter += 1
end

説明

この演習では、貯蓄口座を扱います。貯蓄口座の残高は、毎年、利率に基づいて更新されます。銀行が適用する利率は、口座に入っている金額(残高)によって決まります。

  • 残高が0以上で1000ドル未満の場合は0.5%。
  • 1000ドル以上5000ドル未満の正の残高の場合は1.621%。
  • 5000ドル以上の正の残高の場合は2.475%。
  • 残高が負の場合は3.213%(利子も負になります)。

ここには3つのタスクがあり、それぞれが残高とその利率を扱います。

1. 利率を計算する

指定された残高に基づいて利率を計算するSavingsAccount.interest_rateメソッドを実装しましょう。

SavingsAccount.interest_rate(200.75)
#=> 0.5

戻り値がFloatのインスタンスであることに注意してください。

2. 年間の残高更新を計算する

利率を考慮して、年間の残高更新を計算するSavingsAccount.annual_balance_updateメソッドを実装しましょう。

SavingsAccount.annual_balance_update(200.75)
#=> 201.75375

戻り値がFloatのインスタンスであることに注意してください。

3. 目標の残高に到達するまでの年数を計算する

目標の残高に到達するために必要な最小年数を計算するSavingsAccount.years_before_desired_balanceメソッドを実装しましょう。

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

戻り値がIntegerのインスタンスであることに注意してください。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Ruby Exercism

貯蓄口座を始める準備はできましたか?

Exercismに登録すれば、21個のコンセプト121個の演習、そして本物の人間によるメンタリングとともに、Rubyを学んでマスターできます。すべて無料です。