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

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

تمرين تعلّمي

مقدمة

الأعداد ذات الفاصلة العائمة

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

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

تحتوي C# على ثلاثة أنواع من الأعداد ذات الفاصلة العائمة:

  • float: 4 بايت (دقة تبلغ نحو 6-9 أرقام). يُكتب على الصورة 2.45f.
  • double: 8 بايت (دقة تبلغ نحو 15-17 رقمًا). هذا هو النوع الأكثر شيوعًا. يُكتب على الصورة 2.45 أو 2.45d.
  • decimal: 16 بايت (دقة تبلغ نحو 28-29 رقمًا). يُستخدم عادةً عند التعامل مع البيانات النقدية، لأن دقته تقلل من احتمال حدوث أخطاء التقريب. يُكتب على الصورة 2.45m.

كما ترى، يمكن لكل نوع تخزين عدد مختلف من الأرقام. على سبيل المثال، عند محاولة تخزين باي في float، لن يُخزَّن سوى أول 6 منازل عشرية (مع تقريب آخر رقم مخزَّن).

حلقات 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);

التعليمات

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

  • 3.213% لرصيد سالب (يصبح الرصيد أكثر سلبية).
  • 0.5% لرصيد موجب أقل من 1000 دولار.
  • 1.621% لرصيد موجب أكبر من أو يساوي 1000 دولار وأقل من 5000 دولار.
  • 2.475% لرصيد موجب أكبر من أو يساوي 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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.