المسارات
/
Go
Go
/
التمارين
/
الفائدة مثيرة للاهتمام
الفائدة مثيرة للاهتمام

الفائدة مثيرة للاهتمام

تمرين تعلّمي

مقدمة

عدد الفاصلة العائمة هو عدد يحتوي على صفر أو أكثر من الأرقام بعد الفاصلة العشرية. من الأمثلة على ذلك -2.4 و0.1 و3.14 و5. و16.984025 و1024.0.

يمكن لأنواع مختلفة من أعداد الفاصلة العائمة تخزين أعداد مختلفة من الأرقام بعد الفاصلة العشرية، ويُشار إلى ذلك بالدقة.

يوفّر Go نوعين من أعداد الفاصلة العائمة:

  • float32: 32 بت (بدقة تبلغ نحو 6-9 أرقام).
  • float64: 64 بت (بدقة تبلغ نحو 15-17 رقمًا). هذا هو نوع الفاصلة العائمة الافتراضي.

وكما ترى، يمكن لكلا النوعين تخزين عدد مختلف من الأرقام. وهذا يعني أن محاولة تخزين PI في float32 ستخزّن أول 6 إلى 9 أرقام فقط (مع تقريب الرقم الأخير).

افتراضيًا، سيستخدم Go النوع float64 لأعداد الفاصلة العائمة، إلا إذا كان عدد الفاصلة العائمة:

  1. مُسنَدًا إلى متغير من النوع float32، أو
  2. مُرجَعًا من دالة نوع الإرجاع فيها float32، أو
  3. مُمرَّرًا كوسيط إلى الدالة float32().

تحتوي math package على العديد من الدوال الرياضية المفيدة.

التعليمات

في هذا التمرين، ستتعامل مع حسابات التوفير. كل عام، يتم تحديث رصيد حساب التوفير الخاص بك بناءً على معدل الفائدة. يعتمد معدل الفائدة الذي يمنحك إياه البنك على مقدار المال الموجود في حسابك (رصيده):

  • ‏3.213% لرصيد أقل من 0 دولار (يصبح الرصيد أكثر سلبية).
  • ‏0.5% لرصيد أكبر من أو يساوي 0 دولار، وأقل من 1000 دولار.
  • ‏1.621% لرصيد أكبر من أو يساوي 1000 دولار، وأقل من 5000 دولار.
  • ‏2.475% لرصيد أكبر من أو يساوي 5000 دولار.

لديك أربع مهام، تتعامل كل منها مع رصيدك ومعدل الفائدة عليه.

1. احسب معدل الفائدة

نفّذ الدالة InterestRate() لحساب معدل الفائدة بناءً على الرصيد المحدد:

InterestRate(200.75)
// => 0.5

لاحظ أن القيمة التي تُرجعها هي float32.

2. احسب الفائدة

نفّذ الدالة Interest() لحساب الفائدة بناءً على الرصيد المحدد:

Interest(200.75)
// => 1.003750

لاحظ أن القيمة التي تُرجعها هي float64.

3. احسب التحديث السنوي للرصيد

نفّذ الدالة AnnualBalanceUpdate() لحساب التحديث السنوي للرصيد، مع مراعاة معدل الفائدة:

AnnualBalanceUpdate(200.75)
// => 201.75375

لاحظ أن القيمة التي تُرجعها هي float64.

4. احسب عدد السنوات اللازمة للوصول إلى الرصيد المطلوب

نفّذ الدالة YearsBeforeDesiredBalance() لحساب الحد الأدنى من السنوات اللازمة للوصول إلى الرصيد المطلوب، مع مراعاة أن الفائدة تُضاف إلى الرصيد كل عام. هذا يعني أن الرصيد بعد سنة واحدة يساوي: الرصيد الابتدائي + فائدة الرصيد الابتدائي. والرصيد بعد السنة الثانية يساوي: الرصيد بعد سنة واحدة + فائدة الرصيد بعد سنة واحدة. وهكذا دواليك، حتى يصبح رصيد السنة الحالية أكبر من أو يساوي الرصيد المستهدف.

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

لاحظ أن القيمة التي تُرجعها هي int.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Go Exercism

مستعد لبدء الفائدة مثيرة للاهتمام؟

سجّل في Exercism لتتعلّم وتتقن Go عبر 34 مفهومًا166 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.