المسارات
/
Factor
Factor
/
التمارين
/
المدرسة الابتدائية
المدرسة الابتدائية

المدرسة الابتدائية

متوسط

التعليمات

بالنظر إلى أسماء الطلاب مع الصف الدراسي لكل منهم، أنشئ سجلًا للمدرسة.

في النهاية، يجب أن تكون قادرًا على:

  • إضافة اسم طالب إلى سجل صف دراسي معيّن:
    • "أضف Jim إلى الصف 2."
    • "حسنًا."
  • الحصول على قائمة بجميع الطلاب المسجّلين في صف دراسي:
    • "أي الطلاب في الصف 2؟"
    • "ليس لدينا سوى Jim في الوقت الحالي."
  • الحصول على قائمة مرتّبة بجميع الطلاب في كل الصفوف الدراسية. يجب ترتيب الصفوف كما يلي: 1، 2، 3، إلخ، ويجب ترتيب الطلاب داخل كل صف أبجديًا حسب الاسم.
    • "من المسجّل في المدرسة الآن؟"
    • "دعني أفكر. لدينا Anna وBarb وCharlie في الصف 1، وAlex وPeter وZoe في الصف 2، وJim في الصف 5. إذن الجواب هو: Anna وBarb وCharlie وAlex وPeter وZoe وJim."

لاحظ أن جميع طلابنا لديهم اسم واحد فقط (إنها بلدة صغيرة، ماذا تريد؟)، ولا يمكن إضافة الطالب نفسه أكثر من مرة إلى صف دراسي أو إلى السجل. إذا حاول اختبار إضافة الطالب نفسه أكثر من مرة، فيجب أن يشير تنفيذك إلى أن هذا غير صحيح.

الكلمات

عرّف صفًا باسم school لحمل القائمة، وكيفية تخزين الطلاب داخله متروكة لك، ثم نفّذ الكلمات التالية.

  • <school> ( -- school ): لإنشاء مدرسة فارغة.
  • add-student ( school name grade -- ? ): تضيف name إلى grade. وتُرجع t عند النجاح، أو f إذا كان name قد أُضيف من قبل (إلى هذا الصف أو أي صف آخر)، وفي هذه الحالة تبقى القائمة دون تغيير.
  • roster ( school -- names ): جميع الطلاب، مرتّبين حسب الصف ثم أبجديًا حسب الاسم.
  • grade ( school n -- names ): الطلاب في الصف n، مرتّبين أبجديًا حسب الاسم.

المصدر

جلسة برمجة ثنائية مع Phil Battos في gSchool
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Factor Exercism

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

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