סיכום – שכיחות מילים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C++ של Coddy. שיעור 29 מתוך 56.
אתגר
קלצרו תוכנית שסופרת את תדירויות המילים בקטע טקסט באמצעות std::map. התוכנית תעקוב אחר מספר הפעמים שכל מילה ייחודית מופיעה, ואז תדווח על התדירות של מילה מסוימת.
הקלטים הבאים יסופקו:
- מספר שלם
nהמייצג את מספר המילים בטקסט - לאחר מכן
nמחרוזות המייצגות את המילים בטקסט - מחרוזת המייצגת את מילת היעד שעבורה יש לבדוק את התדירות
התוכנית שלכם צריכה:
- ליצור
std::map<std::string, int>בשםwordCount - לקרוא את מספר המילים
- עבור כל מילה, לקרוא אותה ולעדכן את המונה שלה במפה באמצעות אופרטור הסוגריים המרובעים והגדלה
- לקרוא את מילת היעד לבדיקה
- להדפיס את התדירות של מילת היעד בפורמט המוצג להלן
השתמשו בפורמט הפלט המדויק הבא:
The word "[target_word]" appears [frequency] timesאם מילת היעד אינה קיימת במפה, הגישה אליה באמצעות אופרטור הסוגריים המרובעים תיצור באופן אוטומטי רשומה עם מונה שערכו 0, כך שאפשר להדפיס את התדירות בבטחה בלי לבדוק קודם אם המילה קיימת. השתמשו ב-wordCount[word]++ כדי להגדיל את המונה של כל מילה בזמן הקריאה שלה — כך ייווצרו רשומות חדשות עם מונה שערכו 1 עבור מילים חדשות, או שהמונים הקיימים של מילים שכבר הופיעו יוגדלו.
נסו בעצמכם
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
// קרא את מספר המילים
int n;
cin >> n;
// צור את המפה לאחסון שכיחויות המילים
map<string, int> wordCount;
// TODO: כתוב כאן את הקוד שלך
// קרא n מילים ועדכן את הספירות שלהן במפה
// לאחר מכן קרא את מילת היעד והדפס את השכיחות שלה
return 0;
}כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מצביעים וזיכרון
מהו מצביע?אופרטור קבלת כתובתאופרטור ביטול הפניהמצביעי Nullמצביעים ומערכיםזיכרון דינמי באמצעות 'new'שחרור זיכרון באמצעות 'delete'סיכום — תרגול מצביעים4מפות (זוגות מפתח-ערך)
היכרות עם std::mapיצירת מפהגישה לערכים ושינויםבדיקה אם מפתחות קיימיםהסרת זוגותמעבר על מפהסיכום – שכיחות מילים2וקטורים (מערכים דינמיים)
היכרות עם std::vectorיצירת וקטורהוספת איבריםגישה לאיבריםגודל הווקטורמעבר על איברים באמצעות לולאת forלולאת for מבוססת טווחהסרת איבריםסיכום — פעולות על וקטורים5פרויקט: כלי לניהול מלאי
הגדרת הפרויקטהוספה ועדכון של פריטיםתרגלו בעצמכם: קומפיילר C++ אונליין