Menu
Coddy logo textTech

סיכום – שכיחות מילים

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

challenge icon

אתגר

קל

צרו תוכנית שסופרת את תדירויות המילים בקטע טקסט באמצעות std::map. התוכנית תעקוב אחר מספר הפעמים שכל מילה ייחודית מופיעה, ואז תדווח על התדירות של מילה מסוימת.

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

  • מספר שלם n המייצג את מספר המילים בטקסט
  • לאחר מכן n מחרוזות המייצגות את המילים בטקסט
  • מחרוזת המייצגת את מילת היעד שעבורה יש לבדוק את התדירות

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

  1. ליצור std::map<std::string, int> בשם wordCount
  2. לקרוא את מספר המילים
  3. עבור כל מילה, לקרוא אותה ולעדכן את המונה שלה במפה באמצעות אופרטור הסוגריים המרובעים והגדלה
  4. לקרוא את מילת היעד לבדיקה
  5. להדפיס את התדירות של מילת היעד בפורמט המוצג להלן

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

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;
}

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

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