مسیرها
/
C#
C#
/
تمرین‌ها
/
بهره جالب است
بهره جالب است

بهره جالب است

تمرین یادگیری

مقدمه

اعداد ممیز شناور

عدد ممیز شناور عددی است که صفر یا چند رقم پس از جداکننده‌ی اعشار دارد. نمونه‌ها عبارت‌اند از -2.4، 0.1، 3.14، 16.984025 و 1024.0.

انواع مختلف ممیز شناور می‌توانند تعداد متفاوتی رقم را پس از جداکننده ذخیره کنند؛ به این ویژگی، دقت می‌گویند.

C# سه نوع ممیز شناور دارد:

  • float: ۴ بایت (حدود ۶ تا ۹ رقم دقت). به‌صورت 2.45f نوشته می‌شود.
  • double: ۸ بایت (حدود ۱۵ تا ۱۷ رقم دقت). این رایج‌ترین نوع است. به‌صورت 2.45 یا 2.45d نوشته می‌شود.
  • decimal: ۱۶ بایت (۲۸ تا ۲۹ رقم دقت). معمولاً هنگام کار با داده‌های پولی استفاده می‌شود، چون دقت آن احتمال خطاهای گرد کردن را کاهش می‌دهد. به‌صورت 2.45m نوشته می‌شود.

همان‌طور که می‌بینید، هر نوع می‌تواند تعداد متفاوتی رقم ذخیره کند. برای مثال، اگر عدد پی را در یک float ذخیره کنید، تنها ۶ رقم اعشار اول ذخیره می‌شود (و آخرین رقم ذخیره‌شده گرد می‌شود).

حلقه‌ی While

در این تمرین ممکن است بخواهید از یک حلقه استفاده کنید. راه‌های مختلفی برای نوشتن حلقه در C# وجود دارد، اما حلقه‌ی while در اینجا مناسب‌تر است:

int x = 23;

while (x > 10)
{
    // Execute logic if x > 10
    x = x - 2;
}

حلقه‌ی Do While

اگر باید کد داخل حلقه دست‌کم یک بار اجرا شود، می‌توان از حلقه‌ی do/while استفاده کرد:

int x = 23;

do
{
    // Execute body, repeating only if x > 10
    x = x - 2;
} while (x > 10);

دستورالعمل‌ها

در این تمرین با حساب‌های پس‌انداز کار می‌کنید. هر سال، موجودی حساب پس‌انداز شما بر اساس نرخ بهره‌ی آن به‌روزرسانی می‌شود. نرخ بهره‌ای که بانک به شما می‌دهد به مقدار پولی که در حساب شماست (یعنی موجودی آن) بستگی دارد:

  • ۳٫۲۱۳٪ برای موجودی منفی (موجودی منفی‌تر می‌شود).
  • ۰٫۵٪ برای موجودی مثبت کمتر از 1000 دلار.
  • ۱٫۶۲۱٪ برای موجودی مثبت بزرگ‌تر یا مساوی 1000 دلار و کمتر از 5000 دلار.
  • ۲٫۴۷۵٪ برای موجودی مثبت بزرگ‌تر یا مساوی 5000 دلار.

چهار کار پیش رو دارید که هر کدام به موجودی حساب و نرخ بهره‌ی آن می‌پردازد.

1. محاسبه‌ی نرخ بهره

متد (static) SavingsAccount.InterestRate() را پیاده‌سازی کنید تا نرخ بهره را بر اساس موجودی داده‌شده محاسبه کند:

SavingsAccount.InterestRate(balance: 200.75m)
// 0.5f

توجه کنید که مقدار بازگشتی از نوع float است.

2. محاسبه‌ی بهره

متد (static) SavingsAccount.Interest() را پیاده‌سازی کنید تا بهره را بر اساس موجودی داده‌شده محاسبه کند:

SavingsAccount.Interest(balance: 200.75m)
// 1.00375m

توجه کنید که مقدار بازگشتی از نوع decimal است.

3. محاسبه‌ی به‌روزرسانی سالانه‌ی موجودی

متد (static) SavingsAccount.AnnualBalanceUpdate() را پیاده‌سازی کنید تا موجودی به‌روزرسانی‌شده‌ی سالانه را با در نظر گرفتن نرخ بهره محاسبه کند:

SavingsAccount.AnnualBalanceUpdate(balance: 200.75m)
// 201.75375m

توجه کنید که مقدار بازگشتی از نوع decimal است.

4. محاسبه‌ی سال‌های لازم تا رسیدن به موجودی مورد نظر

متد (static) SavingsAccount.YearsBeforeDesiredBalance() را پیاده‌سازی کنید تا کمترین تعداد سال لازم برای رسیدن به موجودی مورد نظر را با بهره‌ی مرکب سالانه محاسبه کند:

SavingsAccount.YearsBeforeDesiredBalance(balance: 200.75m, targetBalance: 214.88m)
// 14

توجه کنید که مقدار بازگشتی از نوع int است.

Note

وقتی بهره‌ی ساده را به موجودی اصل اعمال می‌کنید، موجودی در نرخ بهره ضرب می‌شود و حاصل‌ضرب این دو، مقدار بهره است.

در مقابل، بهره‌ی مرکب با اعمال بهره به‌صورت دوره‌ای محاسبه می‌شود. در هر بار اعمال، مقدار بهره محاسبه و به موجودی اصل افزوده می‌شود تا محاسبات بعدی بهره روی موجودی اصل بزرگ‌تری انجام شود.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
C# Exercism

آماده‌اید بهره جالب است را شروع کنید؟

در Exercism ثبت‌نام کنید تا C# را همراه با 62 مفهوم178 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.