מתודות של טווחים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Ruby של Coddy. שיעור 7 מתוך 56.
טווחים כוללים מתודות שימושיות שחוסכות לך את הצורך לכתוב לולאות ידנית.
include? בודקת אם ערך נמצא בתוך הטווח:
range = 1..10
puts range.include?(5) # true
puts range.include?(11) # falsemin, max ו-size פועלים ישירות על טווחים:
puts (1..10).min # 1
puts (1..10).max # 10
puts (1..10).size # 10step עובר על הטווח בקפיצות בגודל קבוע, שימושי כשלא רוצים לכלול כל ערך:
(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אתגר
קלנתון לך טווח הכולל את שני הקצוות ורשימת ניחושים. חשב את הניקוד של הניחושים וסכם את הטווח.
קרא שתי שורות:
- שני מספרים שלמים המופרדים ברווח:
startו-end_value - רשימה של ניחושים של מספרים שלמים, מופרדים בפסיקים
באמצעות הטווח start..end_value, הדפס:
Hit: <n>, כאשרnהוא מספר הניחושים שנמצאים בתוך הטווח (השתמש ב-include?)Span: <n>, כאשרnהוא ה-sizeשל הטווח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
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מחרוזות לעומק
סקירה של מתודות למחרוזותאינטרפולציה של מחרוזותמעבר על מחרוזותפיצול וחיבורסיכום – שוזר המחרוזות4בלוקים, Procs ו־Lambdas
מהו בלוק?do..end לעומת סוגריים מסולסליםמילת המפתח yieldפרמטרים של בלוקProcs ו־Lambdasסיכום – איטרטור מותאם אישית7Hashes חלק 2
Hash.new עם ערכי ברירת מחדלמעבר על HashesHashes מקונניםמיזוג ושינויסיכום - מונה תדירויות10פרויקט - רשומות תלמידים
סקירת הפרויקטהוספת תלמיד5עוצמת Enumerable
Select ו־Rejectשרשור MapReduce / Injectcount, all?, any?, none?group_by ו־partitionsort_by, min_by, max_byסיכום - צינור נתוניםתרגלו בעצמכם: קומפיילר Ruby אונליין