مراجعة - تكرار الكلمات
جزء من قسم Logic & Flow في رحلة C++ على Coddy — الدرس 29 من 56.
التحدي
سهلقم بإنشاء برنامج يحسب ترددات الكلمات في نص باستخدام std::map. سيقوم برنامجك بتتبع عدد مرات ظهور كل كلمة فريدة ثم الإبلاغ عن تردد كلمة محددة.
سيتم توفير المدخلات التالية:
- عدد صحيح
nيمثل عدد الكلمات في النص - ثم
nمن السلاسل النصية (strings) التي تمثل الكلمات في النص - سلسلة نصية تمثل الكلمة المستهدفة للتحقق من ترددها
يجب على برنامجك:
- إنشاء
std::map<std::string, int>باسمwordCount - قراءة عدد الكلمات
- لكل كلمة، قم بقراءتها وتحديث عدادها في الخريطة (map) باستخدام عامل الأقواس المربعة (square bracket operator) والزيادة (increment)
- قراءة الكلمة المستهدفة للتحقق منها
- طباعة تردد الكلمة المستهدفة باستخدام التنسيق الموضح أدناه
استخدم تنسيق المخرجات الدقيق التالي:
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) لتخزين تكرارات الكلمات
map<string, int> wordCount;
// TODO: اكتب كودك هنا
// قراءة n من الكلمات وتحديث عدد تكراراتها في الخريطة
// ثم قراءة الكلمة المستهدفة وإخراج عدد تكراراتها
return 0;
}جميع دروس Logic & Flow
1المؤشرات والذاكرة
ما هو المؤشر؟معامل العنوان (Address-Of)معامل الوصول للقيمة (Dereference)المؤشرات الفارغة (Null Pointers)المؤشرات والمصفوفاتالذاكرة الديناميكية باستخدام 'new'تحرير الذاكرة باستخدام 'delete'مراجعة - تمارين على المؤشرات4الخرائط (أزواج مفتاح-قيمة)
مقدمة إلى std::mapإنشاء خريطةالوصول إلى القيم وتعديلهاالتحقق من وجود المفاتيححذف الأزواجالتكرار عبر الخريطةمراجعة - تكرار الكلمات2المتجهات (المصفوفات الديناميكية)
مقدمة إلى std::vectorإنشاء Vectorإضافة العناصرالوصول إلى العناصرحجم الـ Vectorالتكرار باستخدام For Loopالـ Range-Based For Loopإزالة العناصرملخص - عمليات الـ Vector