المسارات
/
C#
C#
/
التمارين
/
سيارات، تجمّعوا!
سيارات، تجمّعوا!

سيارات، تجمّعوا!

تمرين تعلّمي

مقدمة

الأعداد

يوجد في C# نوعان مختلفان من الأعداد:

  • الأعداد الصحيحة: أعداد لا توجد فيها أي أرقام بعد الفاصلة العشرية (الأعداد الكاملة). أمثلة عليها: -6، 0، 1، 25، 976 و500000.
  • الأعداد العشرية: أعداد تحتوي على صفر أو أكثر من الأرقام بعد الفاصلة العشرية. أمثلة عليها: -2.4، 0.1، 3.14، 16.984025 و1024.0.

النوعان الرقميان الأكثر شيوعًا في C# هما int وdouble. فالنوع int عدد صحيح بطول 32 بت، والنوع double عدد عشري بطول 64 بت.

تُجرى العمليات الحسابية باستخدام عوامل الحساب القياسية. ويمكن مقارنة الأعداد باستخدام عوامل المقارنة الرقمية القياسية، إضافة إلى عاملي المساواة (==) وعدم المساواة (!=).

يوجد في C# نوعان من تحويلات الأعداد:

  1. التحويلات الضمنية: لا تُفقد أي بيانات ولا يلزم أي تركيب إضافي.
  2. التحويلات الصريحة: قد تُفقد البيانات ويلزم تركيب إضافي على شكل تحويل قسري.

ولأن النوع int أقل دقة من النوع double، فإن التحويل من int إلى double آمن، ولذلك يُعدّ تحويلًا ضمنيًا. أما التحويل من double إلى int فقد يعني فقدان بيانات، لذلك يتطلب تحويلًا صريحًا.

int softCool = 1358938113;
double notLost = 4.8151623;

// implicit cast: no loss of information
double macDebug = softCool;         // 1358938113.0

// explicit cast: possible loss of information 
int somethingLost = (int)notLost;   // 4

الجمل الشرطية

في هذا التمرين عليك تنفيذ منطق بشكل شرطي. والأسلوب الأكثر شيوعًا لفعل ذلك في C# هو استخدام جملة if/else:

int x = 6;

if (x == 5)
{
    // Execute logic if x equals 5
}
else if (x > 7)
{
    // Execute logic if x greater than 7
}
else
{
    // Execute logic in all other cases
}

يجب أن يكون شرط الجملة الشرطية if من النوع bool. ولا يوجد في C# مفهوم للقيم التي تُعدّ صحيحة.

التعليمات

في هذا التمرين ستكتب كودًا لتحليل إنتاج خط تجميع في مصنع سيارات. يمكن أن تتراوح سرعة خط التجميع من 0 (متوقف) إلى 10 (الحد الأقصى).

عند أدنى سرعة (1)، تُنتَج 221 سيارة كل ساعة. ويزيد الإنتاج خطيًا مع زيادة السرعة. لذا عند ضبط السرعة على 4، ينبغي أن ينتج 4 * 221 = 884 سيارة في الساعة. غير أن السرعات الأعلى تزيد احتمال إنتاج سيارات معيبة، لا بد من التخلص منها بعد ذلك.

لديك ثلاث مهام.

1. حساب معدل النجاح

نفّذ الطريقة (static) AssemblyLine.SuccessRate() لحساب نسبة إنتاج قطعة دون خطأ عند سرعة معيّنة. يوضح الجدول التالي كيف تؤثر السرعة في معدل النجاح:

  • 0: معدل نجاح 0%.
  • 1 إلى 4: معدل نجاح 100%.
  • 5 إلى 8: معدل نجاح 90%.
  • 9: معدل نجاح 80%.
  • 10: معدل نجاح 77%.
AssemblyLine.SuccessRate(10)
// => 0.77

2. حساب معدل الإنتاج في الساعة

نفّذ الطريقة (static) AssemblyLine.ProductionRatePerHour() لحساب معدل إنتاج خط التجميع في الساعة، مع مراعاة معدل نجاحه:

AssemblyLine.ProductionRatePerHour(6)
// => 1193.4

لاحظ أن القيمة المُرجَعة من النوع double.

3. حساب عدد القطع الصالحة المنتَجة في الدقيقة

نفّذ الطريقة (static) AssemblyLine.WorkingItemsPerMinute() لحساب عدد السيارات الصالحة المنتَجة في الدقيقة:

AssemblyLine.WorkingItemsPerMinute(6)
// => 19

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

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

مستعد لبدء سيارات، تجمّعوا!؟

سجّل في Exercism لتتعلّم وتتقن C# عبر 62 مفهومًا178 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.