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

بهره جالب است

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

مقدمه

عدد اعشاری

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

F# سه نوع اعشاری دارد:

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

انواع مختلف اعداد اعشاری می‌توانند تعداد متفاوتی رقم بعد از جداکننده‌ی اعشار ذخیره کنند. به این ویژگی، دقت آن گفته می‌شود. یعنی اگر بخواهید عدد PI را در یک single ذخیره کنید، فقط ۶ تا ۹ رقم اول ذخیره می‌شود (و رقم آخر گرد می‌شود).

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

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

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

هر سال دولت به شما اجازه می‌دهد درصدی از پولتان را به‌صورت معاف از مالیات به امور خیریه اهدا کنید. چون آدم خوبی هستید، اگر موجودی شما در پایان سال مثبت باشد، درصد معاف از مالیات را برمی‌دارید و آن را دو برابر می‌کنید و به نزدیک‌ترین دلار کامل به پایین گرد می‌کنید. پرداخت مالیات روی نیمه‌ی دوم این اهدا برایتان مهم نیست.

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

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

تابع interestRate را پیاده‌سازی کنید تا نرخ سود را بر اساس موجودی داده‌شده محاسبه کند:

interestRate 200.75m
// => 0.5f

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

2. محاسبه‌ی سود

متد interest را پیاده‌سازی کنید تا سود را بر اساس موجودی داده‌شده محاسبه کند:

interest 200.75m
// => 1.00375m

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

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

تابع annualBalanceUpdate را پیاده‌سازی کنید تا به‌روزرسانی سالانه‌ی موجودی را با در نظر گرفتن نرخ سود محاسبه کند:

annualBalanceUpdate 200.75m
// => 201.75375m

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

4. محاسبه‌ی مقدار پولی که باید اهدا شود

تابع amountToDonate را پیاده‌سازی کنید تا بر اساس موجودی و درصد معاف از مالیاتی که دولت مجاز می‌داند، محاسبه کند چه مقدار پول باید به امور خیریه اهدا شود:

let balance = 550.5m
let taxFreePercentage = 2.5
amountToDonate balance taxFreePercentage
// => 27

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

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

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

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