סיכום – מספרים ייחודיים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C++ של Coddy. שיעור 40 מתוך 56.
אתגר
קלצרו תוכנית שקוראת סדרה של מספרים שלמים ומשתמשת ב־std::set כדי לסנן כפילויות באופן אוטומטי, ואז מדפיסה את מספר המספרים הייחודיים. כך מודגם היתרון העיקרי של קבוצות — שמירה על אוספים של איברים ייחודיים ללא בדיקה ידנית של כפילויות.
הקלטים הבאים יסופקו:
- מספר שלם
nשמייצג כמה מספרים יוזנו - לאחר מכן
nמספרים שלמים לעיבוד
על התוכנית שלכם:
- ליצור
std::set<int>ריק - לקרוא את מספר המספרים השלמים שיוזנו
- להשתמש בלולאה כדי לקרוא כל מספר שלם ולהוסיף אותו לקבוצה באמצעות השיטה
.insert() - לאחר עיבוד כל המספרים, להשתמש בשיטה
.size()כדי לקבל את מספר המספרים הייחודיים - להדפיס את התוצאה ולהציג כמה מספרים ייחודיים נמצאו
השתמשו בפורמט הפלט המדויק הבא:
Unique numbers: [count]הקבוצה תטפל אוטומטית בהסרת כפילויות — כאשר מנסים להוסיף מספר שכבר קיים, הקבוצה מתעלמת מההוספה הכפולה. פירוש הדבר שאין צורך לבדוק כפילויות באופן ידני; פשוט הוסיפו את כל המספרים ותנו לקבוצה לשמור על ייחודיות עבורכם. הגודל הסופי של הקבוצה מייצג בדיוק את מספר המספרים השונים שהופיעו בקלט.
נסו בעצמכם
#include <iostream>
#include <set>
using namespace std;
int main() {
// קראו את מספר המספרים השלמים
int n;
cin >> n;
// צרו קבוצה ריקה לאחסון מספרים שלמים ייחודיים
set<int> uniqueNumbers;
// TODO: כתבו את הקוד שלכם כאן
// השתמשו בלולאה כדי לקרוא n מספרים שלמים ולהכניס אותם לקבוצה
// הציגו את התוצאה
cout << "Unique numbers: " << uniqueNumbers.size() << endl;
return 0;
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מצביעים וזיכרון
מהו מצביע?אופרטור קבלת כתובתאופרטור ביטול הפניהמצביעי Nullמצביעים ומערכיםזיכרון דינמי באמצעות 'new'שחרור זיכרון באמצעות 'delete'סיכום — תרגול מצביעים2וקטורים (מערכים דינמיים)
היכרות עם std::vectorיצירת וקטורהוספת איבריםגישה לאיבריםגודל הווקטורמעבר על איברים באמצעות לולאת forלולאת for מבוססת טווחהסרת איבריםסיכום — פעולות על וקטורים5פרויקט: כלי לניהול מלאי
הגדרת הפרויקטהוספה ועדכון של פריטים6קבוצות (איברים ייחודיים)
היכרות עם std::setיצירת קבוצה והוספת איבריםבדיקת קיום איבריםהסרת איבריםמעבר על איברי קבוצהסיכום – מספרים ייחודייםתרגלו בעצמכם: קומפיילר C++ אונליין