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

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

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

المصفوفة ثنائية الأبعاد (2D array) هي مصفوفة تكون عناصرها مصفوفات بحد ذاتها. تمثل كل مصفوفة داخلية صفاً في شبكة.

cinema = [
  [true,  true],   # الصف 0
  [false, true]    # الصف 1
]

يمثل هذا شبكة 2×2، صفين، كل منهما بعمودين.

لإنشاء شبكة 3×4 من الأعداد الصحيحة:

matrix = [
  [ 1,  2,  3,  4],
  [ 5,  6,  7,  8],
  [ 9, 10, 11, 12]
]

يمكنك بناء شبكة مملوءة بقيمة افتراضية باستخدام Array.new مرتين، مرة للصفوف ومرة للأعمدة:

grid = Array.new(3) { Array.new(4, 0) }
# 3 صفوف، 4 أعمدة، جميعها أصفار

صيغة الكتلة البرمجية ({ Array.new(4, 0) }) مهمة، فهي تنشئ مصفوفة داخلية جديدة لكل صف. وبدونها، سيشير كل صف إلى نفس المصفوفة.

challenge icon

التحدي

سهل

اقرأ عددين صحيحين (سطران من الإدخال): rows و cols. قم ببناء مصفوفة ثنائية الأبعاد (2D array) بهذا الحجم حيث تساوي كل خلية row * cols + col + 1 (بحيث يبدأ الصف الأول بالعد من 1، وتتم تعبئة الشبكة بترتيب القراءة).

اطبع الشبكة باستخدام inspect على المصفوفة الخارجية، في سطر واحد.

بالنسبة للمدخلات 2 ثم 3، يكون المخرج هو:

[[1, 2, 3], [4, 5, 6]]

ورقة مرجعية

المصفوفات ثنائية الأبعاد هي مصفوفات من المصفوفات، حيث كل مصفوفة داخلية تمثل صفاً:

matrix = [
  [1, 2, 3],
  [4, 5, 6]
]

قم ببناء شبكة بقيمة افتراضية باستخدام Array.new مع كتلة (تضمن الكتلة أن كل صف عبارة عن مصفوفة منفصلة):

grid = Array.new(3) { Array.new(4, 0) }
# 3 صفوف، 4 أعمدة، جميعها أصفار

جرّب بنفسك

rows = gets.to_i
cols = gets.to_i

# TODO: قم ببناء الشبكة وطباعتها باستخدام inspect
quiz iconاختبر نفسك

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

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