Menu
Coddy logo textTech

יסודות המערכים הדו־ממדיים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Ruby של Coddy. שיעור 10 מתוך 56.

מערך דו־ממדי הוא מערך שהאיברים שלו הם בעצמם מערכים. כל מערך פנימי מייצג שורה ברשת.

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. בנו מערך דו־ממדי בגודל הזה, שבו כל תא שווה ל־row * cols + col + 1 (כך שהשורה הראשונה נספרת החל מ־1, והרשת מתמלאת לפי סדר הקריאה).

הדפיסו את הרשת באמצעות inspect על המערך החיצוני, בשורה אחת.

עבור הקלט 2 ואז 3, הפלט הוא:

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

נסו בעצמכם

rows = gets.to_i
cols = gets.to_i

# TODO: בנו את הרשת והדפיסו אותה באמצעות inspect
quiz iconבחנו את עצמכם

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

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

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