Menu
Coddy logo textTech

מתודות של טווחים

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

טווחים כוללים מתודות שימושיות שחוסכות לך את הצורך לכתוב לולאות ידנית.

include? בודקת אם ערך נמצא בתוך הטווח:

range = 1..10
puts range.include?(5)   # true
puts range.include?(11)  # false

min, max ו-size פועלים ישירות על טווחים:

puts (1..10).min   # 1
puts (1..10).max   # 10
puts (1..10).size  # 10

step עובר על הטווח בקפיצות בגודל קבוע, שימושי כשלא רוצים לכלול כל ערך:

(0..10).step(2) do |n|
  puts n
end
# 0, 2, 4, 6, 8, 10

וגם each פועל בדיוק כמו במערכים:

(1..3).each { |n| puts n * n }
# 1
# 4
# 9
challenge icon

אתגר

קל

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

קרא שתי שורות:

  1. שני מספרים שלמים המופרדים ברווח: start ו-end_value
  2. רשימה של ניחושים של מספרים שלמים, מופרדים בפסיקים

באמצעות הטווח start..end_value, הדפס:

  1. Hit: <n>, כאשר n הוא מספר הניחושים שנמצאים בתוך הטווח (השתמש ב-include?)
  2. Span: <n>, כאשר n הוא ה-size של הטווח
  3. Multiples of 3 sum: <n>, כאשר n הוא סכום כל הכפולות של 3 בטווח (השתמש ב-step החל מהכפולה הראשונה של 3 ששווה ל-start או גדולה ממנו)

עבור הקלט 1 10 בשורה הראשונה ו-3,5,11,7,-2 בשורה השנייה, הפלט הוא:

Hit: 3
Span: 10
Multiples of 3 sum: 18

(הניחושים שפגעו: 3, 5, 7. כפולות של 3 בתחום 1..10: 3+6+9 = 18.)

נסו בעצמכם

start, end_value = gets.chomp.split.map(&:to_i)
guesses = gets.chomp.split(",").map(&:to_i)

# TODO: ספירת פגיעות באמצעות include?, אורך הטווח באמצעות size, סכום הכפולות של 3 באמצעות step
quiz iconבחנו את עצמכם

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

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

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