Menu
Coddy logo textTech

תנאים באמצעות 'every'

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Dart של Coddy. שיעור 14 מתוך 65.

בעוד ש־any() בודקת אם לפחות איבר אחד עומד בתנאי, לפעמים צריך לוודא שכל האיברים ברשימה עומדים בדרישה מסוימת. המתודה every() מספקת את הפונקציונליות הזו באמצעות בדיקת כל איבר ואיבר מול התנאי שלך, ומחזירה true רק אם כולם עומדים בו.

השיטה every() מקבלת פונקציית בדיקה שמחזירה true או false עבור כל איבר. אם איבר כלשהו נכשל בבדיקה, every() מחזירה מיד false. היא מחזירה true רק כאשר כל האיברים עוברים את הבדיקה.

List<int> examScores = [75, 82, 68, 91, 77];

// בדקו אם כל התלמידים עברו (score > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed);  // true

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

challenge icon

אתגר

קל

צרו תוכנית שמנהלת מערכת בקרת איכות באמצעות בדיקה שכל המוצרים באצווה עומדים בתקנים הנדרשים. התוכנית שלכם צריכה:

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

לדוגמה, אם שם המפעל הוא "Electronics Factory", ציוני האיכות הם 85, 92, 78, 88, 95, והסף המינימלי הוא 75, התוכנית שלכם צריכה להציג:

Factory: Electronics Factory
Quality scores: [85, 92, 78, 88, 95]
Minimum standard: 75
Checking if all scores >= 75
All products passed: true
Status: Batch approved for shipment

אם שם המפעל הוא "Textile Mill", ציוני האיכות הם 68, 82, 74, 91, והסף המינימלי הוא 70, התוכנית שלכם צריכה להציג:

Factory: Textile Mill
Quality scores: [68, 82, 74, 91]
Minimum standard: 70
Checking if all scores >= 70
All products passed: false
Status: Batch rejected - quality improvement required

אם שם המפעל הוא "Food Processing", ציוני האיכות הם 95, 98, 92, והסף המינימלי הוא 90, התוכנית שלכם צריכה להציג:

Factory: Food Processing
Quality scores: [95, 98, 92]
Minimum standard: 90
Checking if all scores >= 90
All products passed: true
Status: Batch approved for shipment

התוכנית שלכם חייבת להשתמש בשיטה every() כדי לוודא שכל ציוני האיכות גדולים מהסף המינימלי או שווים לו. הציגו "Batch approved for shipment" אם כל המוצרים עומדים בתקן, או "Batch rejected - quality improvement required" אם מוצר כלשהו אינו עומד בדרישה המינימלית.

נסו בעצמכם

import 'dart:io';

void main() {
  // קראו את שם המפעל
  String? factoryName = stdin.readLineSync();
  
  // קראו את ציוני האיכות עד שמופיע -1
  List<int> qualityScores = [];
  while (true) {
    int score = int.parse(stdin.readLineSync()!);
    if (score == -1) {
      break;
    }
    qualityScores.add(score);
  }
  
  // קראו את סף המינימום
  int minThreshold = int.parse(stdin.readLineSync()!);
  
  // TODO: כתבו את הקוד שלכם למטה
  // השתמשו במתודה every() כדי לבדוק אם כל הציונים עומדים בתקן המינימלי
  
  // הדפיסו את התוצאות בפורמט הנדרש
  print('Factory: $factoryName');
  print('Quality scores: $qualityScores');
  print('Minimum standard: $minThreshold');
  print('Checking if all scores >= $minThreshold');
  // הדפיסו אם כל המוצרים עברו ואת הסטטוס הסופי
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

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