Menu
Coddy logo textTech

בדיקת קיום איברים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C++ של Coddy. שיעור 37 מתוך 56.

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

כמו במפות, המתודה .count() מחזירה 1 אם הרכיב קיים בקבוצה, ו-0 אם הוא לא קיים. לכן היא מתאימה במיוחד לבדיקות תנאי:

std::set<int> numbers = {10, 20, 30};

if (numbers.count(20)) {
    std::cout << "Found 20 in the set!" << std::endl;
} else {
    std::cout << "20 is not in the set" << std::endl;
}

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

challenge icon

אתגר

קל

צרו תוכנית שמדגימה כיצד לבדוק בבטחה אם איברים קיימים ב־std::set לפני ביצוע פעולות עליהם. האתגר הזה יבדוק את ההבנה שלכם בשיטת .count() לאימות קיומם של איברים.

הקלטים הבאים יסופקו:

  • מספר שלם n המייצג את מספר האיברים שיש להוסיף תחילה לקבוצה
  • לאחר מכן, n מספרים שלמים שיש להוסיף לקבוצה
  • מספר שלם m המייצג את מספר האיברים שיש לחפש
  • לאחר מכן, m מספרים שלמים שיש לבדוק אם הם קיימים בקבוצה

התוכנית שלכם צריכה:

  1. ליצור std::set<int> ריקה
  2. לקרוא את מספר האיברים שיש להוסיף ולהוסיף אותם לקבוצה באמצעות .insert()
  3. לקרוא את מספר האיברים שיש לחפש
  4. עבור כל איבר לחיפוש, להשתמש בשיטת .count() כדי לבדוק אם הוא קיים בקבוצה
  5. להדפיס הודעות מתאימות בהתאם לשאלה אם כל איבר נמצא או לא
  6. לאחר כל החיפושים, להדפיס את המספר הכולל של האיברים שנמצאו

השתמשו בפורמט הפלט המדויק הבא:

עבור כל תוצאת חיפוש:

Searching for [number]: Found

עבור איברים שלא נמצאו:

Searching for [number]: Not found

סיכום בסוף:

Total found: [count] out of [total_searches]

השתמשו ב־numbers.count(searchValue) כדי לבדוק אם איבר קיים בקבוצה. אם מוחזר 1, האיבר קיים; אם מוחזר 0, האיבר אינו קיים. שמרו מונה כדי לעקוב אחר מספר האיברים שנמצאו בהצלחה במהלך פעולות החיפוש.

נסו בעצמכם

#include <iostream>
#include <set>
using namespace std;

int main() {
    // קראו את מספר האיברים שיש להוסיף לקבוצה
    int n;
    cin >> n;
    
    // צרו קבוצה ריקה
    set<int> numbers;
    
    // קראו והכניסו n איברים לקבוצה
    for (int i = 0; i < n; i++) {
        int element;
        cin >> element;
        numbers.insert(element);
    }
    
    // קראו את מספר האיברים שיש לחפש
    int m;
    cin >> m;
    
    int foundCount = 0;
    
    // TODO: כתבו את הקוד שלכם למטה
    // עבור כל איבר לחיפוש:
    // 1. קראו את הערך לחיפוש
    // 2. השתמשו ב־numbers.count(searchValue) כדי לבדוק אם הוא קיים
    // 3. הדפיסו את ההודעה המתאימה
    // 4. עדכנו את foundCount אם האיבר נמצא
    
    // הדפיסו את הסיכום
    cout << "Total found: " << foundCount << " out of " << m << endl;
    
    return 0;
}
quiz iconבחנו את עצמכם

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

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

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