Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الوصول إلى عناصر المصفوفات ثنائية الأبعاد

جزء من قسم المنطق وتدفق العمليات في رحلة Ruby على Coddy — الدرس 11 من 56.

لقراءة خلية واحدة أو تحديثها في مصفوفة ثنائية الأبعاد، قم بربط عمليتي بحث عن الفهرس: الأولى تختار الصف، والثانية تختار العمود.

matrix = [
  [10, 20, 30],
  [40, 50, 60],
  [70, 80, 90]
]

puts matrix[0][0]   # 10  (أعلى اليسار)
puts matrix[1][2]   # 60  (الصف 1، العمود 2)
puts matrix[2][0]   # 70  (أسفل اليسار)

يستخدم تحديث الخلية نفس الصيغة على الجانب الأيسر:

matrix[0][1] = 99
puts matrix[0].inspect   # [10, 99, 30]

استعلامان مفيدان عن الشكل:

puts matrix.length         # 3 (عدد الصفوف)
puts matrix[0].length      # 3 (الأعمدة في الصف 0)

تبدأ الفهارس من 0 وتصل إلى length - 1. والذهاب إلى ما بعد النهاية يعيد nil بدلاً من إثارة خطأ.

challenge icon

التحدي

مبتدئ

المصفوفة ثنائية الأبعاد matrix معطاة. اقرأ ثلاثة أعداد صحيحة (ثلاثة أسطر): r1، و c1، ثم v. ثم:

  1. اطبع القيمة الموجودة في matrix[r1][c1]
  2. اجعل matrix[r1][c1] = v
  3. اطبع كامل المصفوفة matrix المحدثة باستخدام inspect

للمدخلات 1 / 2 / 99، المخرجات هي:

60
[[10, 20, 30], [40, 50, 99], [70, 80, 90]]

ورقة مرجعية

الوصول إلى الخلايا وتحديثها في مصفوفة ثنائية الأبعاد باستخدام الفهارس المتسلسلة [row][col]:

matrix = [
  [10, 20, 30],
  [40, 50, 60]
]

puts matrix[1][2]    # 60
matrix[1][2] = 99    # تحديث الخلية
puts matrix.inspect  # [[10, 20, 30], [40, 50, 99]]

استعلامات الشكل:

matrix.length      # عدد الصفوف
matrix[0].length   # عدد الأعمدة في الصف 0

تبدأ الفهارس من 0؛ الوصول إلى خارج الحدود يعيد nil.

جرّب بنفسك

matrix = [
  [10, 20, 30],
  [40, 50, 60],
  [70, 80, 90]
]

r1 = gets.to_i
c1 = gets.to_i
v  = gets.to_i

# TODO: اطبع matrix[r1][c1]، ثم قم بتعيين v، ثم اطبع المصفوفة كاملة
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق العمليات