Menu
Coddy logo textTech

אתגר: סכום מספרים

חלק מהיחידה יסודות במסלול ה-Dart של Coddy. שיעור 93 מתוך 94.

challenge icon

אתגר

קל

באתגר הזה תיצור פונקציה שמחשבת את סכום המספרים ברשימה לפי תנאים מסוימים.

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

הפונקציה צריכה:

  • לחשב את סכום כל המספרים ברשימה שגדולים מהערך threshold
  • להפסיק להוסיף מספרים מיד לאחר שהסכום עולה על הערך maxSum (הסכום הסופי עשוי להיות גדול מ־maxSum)
  • להחזיר את הסכום הסופי

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

דוגמה: אם המספרים שגדולים מ־threshold הם [15, 20, 25, 30] ו־maxSum הוא 50:

  • הוסף 15: sum = 15 (ממשיכים)
  • הוסף 20: sum = 35 (ממשיכים)
  • הוסף 25: sum = 60 (עולה על 50, ולכן עוצרים כאן)
  • תוצאה: 60 (לא 50)

נסו בעצמכם

void main() {
  // מקרי בדיקה
  List<int> numbers = [5, 10, 15, 20, 25, 30];
  
  // סכמו מספרים הגדולים מ-12, עד לסכום מרבי של 50
  int result = sumWithCondition(numbers, 12, 50);
  print('Sum of numbers > 12 (max 50): $result');
  
  // סכמו מספרים הגדולים מ-8, עד לסכום מרבי של 100
  result = sumWithCondition(numbers, 8, 100);
  print('Sum of numbers > 8 (max 100): $result');
}

// TODO: השלימו את הפונקציה הזו כדי לסכום מספרים בהתאם לתנאים
int sumWithCondition(List<int> numbers, int threshold, int maxSum) {
  int sum = 0;
  
  // TODO: עברו בלולאה על הרשימה numbers
  // TODO: הוסיפו לסכום רק מספרים הגדולים מ-threshold
  // TODO: הפסיקו להוסיף אם sum עולה על maxSum
  
  return sum;
}

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

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