الدرس 4 من 10
المصفوفات ودوالها
- 12 دقيقة
- 6 فحوص
- 3 تلميحات
- إلى المطلوب
هدف الدرس
أضف واحذف ورتّب
الشرح
المصفوفة قائمة مرتّبة من القيم مثل scores = [72, 95, 64]، وتقرأ كل عنصر فيها بموضعه، والعدّ يبدأ من الصفر، فـ scores[0] هي الأولى وscores[-1] هي الأخيرة، ولهما اسمان أوضح هما first وlast. وتسأل include?(x) هل القيمة موجودة، وتُرجع index(x) موضع أول ظهور لها، أو nil إذا لم تكن موجودة.
وبعض الدوال تعدّل المصفوفة نفسها، فـ << تضيف عنصرًا في آخرها، وpush مثلها لكنها تقبل أكثر من عنصر، وpop تحذف العنصر الأخير وتُرجعه، فتستطيع أن تحفظ ما حذفته إذا احتجت إليه.
أما sort وuniq فتُرجعان مصفوفة جديدة ولا تغيّران المصفوفة الأصلية، فإذا كتبت scores.sort وحدها في سطر رُتّبت القيم ثم ضاعت النتيجة، لذلك احفظها في متغيّر، أو استدعِ الدالتين واحدة بعد الأخرى مثل scores.uniq.sort.
المطلوب
وصلت درجتان متأخّرتان، فأضف 81 بـ << ثم 47 بـ push. ثم تبيّن أن الدرجة الأخيرة سُجّلت خطأً، فاحذفها بـ pop واحفظها في wrong. بعد ذلك اصنع ranked من الدرجات بلا تكرار ومرتّبة تصاعديًّا، وخذ منها lowest وhighest بـ first وlast. واجعل top_at موضع أول 95 في scores، واجعل has_full تبيّن هل فيها الدرجة 100.
الفحوص
6 فحوص- المصفوفة scores صحيحة بعد الإضافة والحذف وعلى ترتيبها الأصلي
- قيمة wrong هي الدرجة المحذوفة 47
- المصفوفة ranked بلا تكرار ومرتّبة تصاعديًّا
- المتغيّران lowest وhighest هما أدنى درجة وأعلاها
- المتغيّر top_at هو موضع أول 95، والعدّ من الصفر
- المتغيّر has_full يساوي false، فلا توجد درجة 100