Menu
Coddy logo textTech

גישה לאיברים במערך דו־ממדי

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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]]

נסו בעצמכם

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בחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Ruby אונליין