الدرس 6 من 10

المصفوفات

هدف الدرس

length و Arrays.sort و Arrays.toString

01

الشرح

المصفوفة صفّ ثابت الطول من قيم نوع واحد: int[] scores = {70, 95, 81};، أو new int[5] بخمس خانات أصفار. تقرأ العنصر بموضعه والعدّ من الصفر: scores[0] الأول وscores[scores.length - 1] الأخير. وlength هنا حقل بلا أقواس، والموضع خارج الحدود يرمي ArrayIndexOutOfBoundsException.

وصنف Arrays من java.util يجمع أدواتها: Arrays.sort(a) ترتّب تصاعديًّا، وArrays.toString(a) تعطي نصًّا مقروءًا مثل [60, 70, 81]، وArrays.copyOf(a, n) تنسخ أول n من عناصرها في مصفوفة جديدة، وa.clone() تنسخها كاملة.

وفخّان: طباعة المصفوفة مباشرة تُظهر شيئًا مثل [I@1b6d3586 لا عناصرها. وArrays.sort ترتّب المصفوفة نفسها ولا تُرجع شيئًا. والمتغيّر لا يحمل المصفوفة بل مرجعًا إليها، فالدالة التي تستلمها تعمل على الأصل نفسه، وما ترتّبه داخلها يتغيّر عند المستدعي. انسخ أوّلًا إن أردت الأصل سليمًا.

02

المطلوب

average(a) تُرجع المتوسّط عشريًّا، و0 للمصفوفة الفارغة. وreversed(a) تُرجع مصفوفة جديدة بالترتيب المعكوس. وtop3(scores) تُرجع أعلى ثلاث درجات من الأعلى إلى الأدنى، أو كلها إن كانت أقلّ من ثلاث. ولا تمسّ أيٌّ منها المصفوفة الأصلية. ثم اطبع من main ناتج top3(scores) بالشكل [95, 88, 81].

معايير التصحيح

6 معايير
  1. average متوسّط عشري لا صحيح
  2. average لمصفوفة فارغة 0 لا NaN
  3. reversed تُرجع المصفوفة معكوسة
  4. reversed تُرجع مصفوفة جديدة ولا تمسّ الأصل
  5. top3 أعلى ثلاث من الأعلى، والأصل كما هو
  6. طُبع: [95, 88, 81]
Main.java
المخرجاتJava 13 · Judge0

يُترجَم الكود ويعمل على السيرفر…

–/6

يُترجَم الكود ويعمل على السيرفر…

6 معايير في بطاقة «المطلوب».