برمج: رسم القائمة بالمحارف

يريد أحمد إظهار عناصر القائمة داخل خلايا، مع الفهرس الموجب فوق كل خلية والفهرس السالب تحتها.

النتيجة

اكتب الدالة draw_list(items) لتعيد رسمًا نصيًا باستخدام محارف ASCII. عند عرض ناتج draw_list(list("ABCDEFG")) يظهر:

  • المدخل قائمة من صفر إلى تسعة عناصر. كل عنصر محرف ASCII ظاهر واحد، دون | أو + أو محارف الأسطر الجديدة.
  • أبقِ ترتيب العناصر وتكرارها، ولا تغيّر القائمة الأصلية.
  • إذا كان عدد العناصر n، فالفهارس الموجبة من 0 إلى n - 1، والسالبة من -n إلى -1. لا ترسم فهرسًا بعد آخر عنصر.
  • ابدأ كل سطر من الحدّين وسطر العناصر بمسافة واحدة. عرض داخل الخلية ثلاثة محارف: مسافة، ثم العنصر، ثم مسافة.
  • في سطر الفهارس الموجبة، ضع كل عدد بمحاذاة اليمين في حقل عرضه محرفان، وافصل الحقول بمسافتين. افصل الفهارس السالبة بمسافتين أيضًا.
  • أعد الأسطر الخمسة في نص واحد، دون مسافات في نهايات الأسطر ودون سطر جديد في نهاية النص. للقائمة الفارغة أعد "".
  • الدالة تعيد النص؛ لا تطبعه داخلها.

شرح الحل