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

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

سهل

التعليمات

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

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

  • إضافة اسم طالب إلى قائمة الطلاب الخاصة بصف معيّن
    • "أضف 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 يحمل تسلسلًا من النوع Student، وهو صف يتكوّن من string وint لتخزين اسم الطالب ومستواه الدراسي.

إليك بعض الكود الخاص بهذه الأنواع، وقد يفيدك عند البدء:

type
  Student* = tuple[name: string, grade: int]
  School* = object
    students*: seq[Student]

المصدر

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

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

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