Menu
Coddy logo textTech

חיתוך מערכים באמצעות אינדקסים

חלק מהיחידה יסודות במסלול ה-Ruby של Coddy. שיעור 70 מתוך 88.

Ruby מציעה דרך נוספת לחתוך מערכים באמצעות אינדקס התחלתי ואורך. במקום לציין טווח, מספקים שני מספרים: היכן להתחיל וכמה איברים לחלץ.

התחביר משתמש בפסיק כדי להפריד בין אינדקס ההתחלה לבין הכמות:

numbers = [10, 20, 30, 40, 50]
slice = numbers[1, 3]

puts slice  # פלט: 20, 30, 40

פעולה זו מחלצת 3 איברים החל ממיקום 1. המספר הראשון הוא מיקום ההתחלה, והשני מציין כמה איברים רוצים.

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

letters = ["a", "b", "c", "d", "e"]
first_two = letters[0, 2]

puts first_two  # פלט: a, b

אינדקסים שליליים עובדים גם כאן. אפשר להתחיל מסוף המערך:

colors = ["red", "green", "blue", "yellow"]
last_two = colors[-2, 2]

puts last_two  # פלט: blue, yellow

אם תבקש יותר איברים מכפי שזמינים, Ruby פשוט תחזיר את מה שקיים בלי להעלות שגיאה:

nums = [1, 2, 3]
slice = nums[1, 10]

puts slice  # פלט: 2, 3

בחרו בשיטה הזאת כשאתם יודעים את מספר האיברים הנדרש, והשתמשו בטווחים כשאתם יודעים את המיקומים המדויקים.

challenge icon

אתגר

קל

קרא שלושה קלטים:

  1. שורה אחת של מספרים שלמים המופרדים בפסיקים (לדוגמה, 5,10,15,20,25,30,35,40)
  2. אינדקס התחלה (מספר שלם)
  3. מספר האיברים שיש לחלץ (מספר שלם)

פצל את הקלט הראשון למערך של מספרים שלמים. השתמש באינדקס ההתחלה ובמספר האיברים כדי לחתוך את המערך באמצעות תחביר אינדקס ואורך, ואז הדפס כל איבר מהמקטע שנחתך בשורה נפרדת.

לדוגמה, אם הקלטים הם 5,10,15,20,25,30,35,40, 2 ו-4, הפלט צריך להיות:

15
20
25
30

אם הקלטים הם 100,200,300,400,500, 0 ו-2, הפלט צריך להיות:

100
200

אם הקלטים הם a,b,c,d,e,f,g, -3 ו-2, הפלט צריך להיות:

e
f

אם הקלטים הם 10,20,30, 1 ו-10, הפלט צריך להיות:

20
30

נסו בעצמכם

# קראו את הקלטים
input_line = gets.chomp
start_index = gets.chomp.to_i
count = gets.chomp.to_i

# פצלו את הקלט למערך
arr = input_line.split(',')

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

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

כל השיעורים ביחידה יסודות

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