מה לקנות
חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 86 מתוך 86.
אתגר
קלכתבו פונקציה whatToBuy שמקבלת את itemNames, את itemPrices ואת budget, ומחזירה מערך של שמות פריטים שאפשר לקנות במסגרת התקציב.
עברו על הפריטים לפי הסדר. עבור כל פריט, בדקו אם הוספת המחיר שלו לסכום המצטבר תישאר במסגרת התקציב. אם כן, הוסיפו את שם הפריט לרשימת הקניות ועדכנו את הסכום. אם פריט כלשהו יחרוג מהתקציב, דלגו עליו והמשיכו לבדוק את הפריטים הנותרים.
היגיון:
- התחילו בסכום מצטבר של
0.0ובמערך תוצאות ריק - עברו בלולאה על כל פריט לפי האינדקס שלו
- אם הסכום המצטבר בתוספת מחיר הפריט הנוכחי קטן מהתקציב או שווה לו, הוסיפו את שם הפריט לתוצאות ועדכנו את הסכום המצטבר
- אם הוספת הפריט תחרוג מהתקציב, דלגו עליו והמשיכו לפריט הבא
- החזירו את מערך שמות הפריטים שאפשר לקנות
פרמטרים:
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] {
// כתבו כאן קוד
}
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסי
פונקציית ההדפסהאינטרפולציה של מחרוזותקלט באמצעות ReadLineהמרת טיפוסיםחזרה – עד 120חזרה – אמת או שקר3ערכים אופציונליים
מהם ערכים אופציונלייםשליפת ערך באמצעות If LetGuard Letאופרטור איחוד עם Nilסיכום – שליפה בטוחה של ערך9לולאות
לולאת For-Inלולאת Whileלולאת Repeat-WhileBreakContinueחזרה – עצרתטווחים בלולאותלולאה מקוננתחזרה – קלט דינמיתרגלו בעצמכם: Swift אונליין