Menu
Coddy logo textTech

מה לקנות

חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 86 מתוך 86.

challenge icon

אתגר

קל
כתבו פונקציה whatToBuy שמקבלת את itemNames, את itemPrices ואת budget, ומחזירה מערך של שמות פריטים שאפשר לקנות במסגרת התקציב.

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

היגיון:

  1. התחילו בסכום מצטבר של 0.0 ובמערך תוצאות ריק
  2. עברו בלולאה על כל פריט לפי האינדקס שלו
  3. אם הסכום המצטבר בתוספת מחיר הפריט הנוכחי קטן מהתקציב או שווה לו, הוסיפו את שם הפריט לתוצאות ועדכנו את הסכום המצטבר
  4. אם הוספת הפריט תחרוג מהתקציב, דלגו עליו והמשיכו לפריט הבא
  5. החזירו את מערך שמות הפריטים שאפשר לקנות

פרמטרים:

  • itemNames ([String]): מערך של שמות פריטים
  • itemPrices ([Double]): מערך של המחירים המתאימים (באורך זהה ל-itemNames)
  • budget (Double): הסכום המרבי שאפשר להוציא

ערך מוחזר: מערך של שמות הפריטים שאפשר לקנות במסגרת התקציב, לפי הסדר שבו הם מופיעים ([String])

דוגמה:

// itemNames: ["Apple", "Bread", "Milk"]
// itemPrices: [2.0, 3.5, 4.0]
// budget: 6.0
// Result: ["Apple", "Bread"]
// (Apple costs 2.0, Bread costs 3.5, total is 5.5 which is within budget)
// (Milk would make total 9.5, which exceeds 6.0, so it's skipped)

נסו בעצמכם

func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
    // כתבו כאן קוד
}

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

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