0Pricing
Java Academy · درس

المتطلبات والتصميم

حدّد المشكلة، والمدخلات والمخرجات، والقيود، وخطة بسيطة لأداة إحصاءات الكلمات.

المتطلبات والتصميم درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.

هدف المشروع

الهدف: أنشئوا أداة صغيرة جدًا تعرض إحصاءات أساسية عن الكلمات. سنقسّم النص إلى رموز، ونوحّد الكلمات، ونحسب التكرارات، ونعرض النتائج الأكثر تكرارًا.

المدخلات والمخرجات

المدخل: سلسلة نصية قصيرة، مشفّرة داخل البرنامج مؤقتًا. المخرج: إجمالي الكلمات، والكلمات الفريدة، وأكثر N كلمات تكرارًا مع عدد مرات ظهورها.

قواعد التوحيد

التوحيد: حوّلوا النص إلى أحرف صغيرة وأزيلوا علامات الترقيم. قسّموا النص عند المحارف غير الحرفية لتكون الرموز نظيفة وقابلة للمقارنة.

استراتيجية العد

العد: اربطوا كل كلمة بتكرارها. في Java، يكفي استخدام HashMap بسيط من String إلى Integer، وهو واضح ومناسب للمرور الأول.

خطة إعداد التقرير

إعداد التقرير: اطبعوا الإجماليات وأفضل N نتائج، مثل أكثر ثلاث كلمات تكرارًا. عند تعادل التكرارات، يكون أي ترتيب مقبولًا. أبقوا المخرجات بسيطة.

نموذج أولي: تشغيل صغير

نموذج أولي: حوّلوا النص إلى أحرف صغيرة، وأزيلوا علامات الترقيم، وقسّموه، واحسبوا التكرارات، واطبعوا أكثر ثلاث كلمات تكرارًا. سنشفّر النص داخل البرنامج مؤقتًا، ونحافظ على سهولة قراءة المخرجات.

public class Main {
  public static void main(String[] args) {
    // Prototype: hard coded text, normalize, count, and print simple stats.
    String text = "To be, or not to be: that is the question. To be or not?";
    // 1) Lowercase
    String lower = text.toLowerCase();
    // 2) Replace non letters with spaces for splitting
    String cleaned = lower.replaceAll("[^a-z]+", " ");
    // 3) Split on spaces and filter empty tokens
    String[] tokens = cleaned.trim().split("\\s+");

    java.util.Map<String, Integer> freq = new java.util.HashMap<>();
    int total = 0;
    for (int i = 0; i < tokens.length; i = i + 1) {
      String w = tokens[i];
      if (w.length() == 0) continue;
      total = total + 1;
      Integer c = freq.get(w);
      if (c == null) freq.put(w, 1);
      else freq.put(w, c + 1);
    }

    // Simple top 3 by repeated linear scan (fine for small texts)
    for (int k = 0; k < 3; k = k + 1) {
      String bestWord = null;
      int bestCount = -1;
      for (java.util.Map.Entry<String,Integer> e : freq.entrySet()) {
        String word = e.getKey();
        int count = e.getValue();
        if (count > bestCount) {
          bestCount = count;
          bestWord = word;
        }
      }
      if (bestWord == null) break;
      System.out.println("#" + (k + 1) + " " + bestWord + " = " + bestCount);
      // mark as used
      freq.put(bestWord, -1000000);
    }

    System.out.println("Total words: " + total);
    System.out.println("Unique words: " + (freq.size()));
  }
}

التصميم أولًا

تحقق سريع: أي خطوة ينبغي أن تأتي أولًا عند تصميم هذا المشروع المصغر؟

مراجعة

مراجعة: حدّدنا نطاق المشروع، وعرّفنا الإدخال والإخراج، ووضعنا القواعد، واخترنا خريطة بسيطة للعد، وتحققنا من الخطة بتشغيل صغير.

الأسئلة الشائعة

هل درس «المتطلبات والتصميم» مجاني؟

نعم — نص درس «المتطلبات والتصميم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.

ماذا ستتعلم في «المتطلبات والتصميم»؟

حدّد المشكلة، والمدخلات والمخرجات، والقيود، وخطة بسيطة لأداة إحصاءات الكلمات. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟

لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.

كم من الوقت يستغرق درس «المتطلبات والتصميم»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟

نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. المتطلبات والتصميم
  2. التنفيذ
  3. الاختبار والتوسعات
← العودة إلى Java Academy