אתגר: סכום מספרים
חלק מהיחידה יסודות במסלול ה-Dart של Coddy. שיעור 93 מתוך 94.
אתגר
קלבאתגר הזה תיצור פונקציה שמחשבת את סכום המספרים ברשימה לפי תנאים מסוימים.
יש לך רשימה של מספרים שלמים, ועליך להשלים את הפונקציה 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;
}כל השיעורים ביחידה יסודות
7עבודה עם מחרוזות
שרשור מחרוזותאינטרפולציה של מחרוזותמחרוזות מרובות שורותמאפייני מחרוזותשיטות בסיסיות למחרוזות10אוספים - יסודות המפות
מהן מפות?יצירת מפהגישה לערכים לפי מפתחזוגות מפתח-ערךקבלת גודל המפהקבלת המפתחותקבלת הערכיםבדיקה אם מפתח קיים2משתנים וטיפוסי נתונים בסיסיים
מהם משתנים?מחרוזותמספרים שלמים (int)מספרים מסוג double (double)ערכים בוליאניים (bool)הסקת טיפוס באמצעות 'var'משתנים סופייםמשתנים קבועיםמוסכמות למתן שמותבטיחות בסיסית מול nullסיכום – הכרזה על משתנים8זרימת בקרה – לולאות
לולאת 'for'לולאת 'while'לולאת 'do-while'שימוש ב-'break' בלולאותשימוש ב-'continue' בלולאותסיכום – חזרה על קוד3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמיםאופרטור מודולוהגדלה והקטנהקיצורי השמהסיכום - חישובים פשוטים6זרימת בקרה - קבלת החלטות
הוראת 'if'הוראת 'else'הוראת 'else if'חזרה - החלטות פשוטותהוראות 'if' מקוננותהוראת 'switch'9אוספים - יסודות הרשימות
מהן רשימות?יצירת רשימהגישה לפי אינדקסקבלת אורך הרשימההוספת איבריםהסרת איבריםבדיקה אם הרשימה ריקהמעבר על רשימהתרגלו בעצמכם: קומפיילר Dart אונליין