مسیرها
/
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.5% برای موجودی نامنفی کمتر از 1000 دلار.
  • 1.621% برای موجودی مثبت بزرگ‌تر یا مساوی 1000 دلار و کمتر از 5000 دلار.
  • 2.475% برای موجودی مثبت بزرگ‌تر یا مساوی 5000 دلار.
  • 3.213% برای موجودی منفی (که به بهره‌ی منفی منجر می‌شود).

سه وظیفه دارید که هر کدام به موجودی و نرخ بهره‌ی آن می‌پردازند.

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 ثبت‌نام کنید تا Ruby را همراه با 21 مفهوم121 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.