الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كتابة برنامج يحسب عدد كلمات معينة في كل صف

بدأه رُؤيا في 29 أبريل 2011 · 8 رد · 4,803 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ..

إنني جديدة في عَالمكم هنا ، وفي الجافا أيضاً .. أحتاجً جُلّ مساعدتكم لأكون بالمُستوى المَطلوب لأنْ أُصِبح خبيرة

لديّ هذا السؤال وآمل منكم إيجاد الاجابة .. وإني أحب أن أطرح مافهمته أولاً وأترك لكم تصويب ذلك ، أتعلم كثيراً هكذا ^^"

ألا توافقونني الرأي بأن هناك اختلاف بين الـ "logic " والصورة الموضحة ؟

فضّلتُ ان أفهم من الصورة ..

لنرى ، المدخلات ستكون قائمة بالكلمات تكون على هيئة صفوف وكلمة بحث معينة ،

ويريدنا أن نكتب method تبحث في كل صف عن كلمة البحث وتحسب كم مرة تكررت فيها ثم تطبع جملة تحتوي على عدد المرات ..

وتنزل للصف الثاني ثم تحسب من جديد عدد المرات وهكذا في كل سطر ،

احتاج فيها Array ,

For للعداد

size.lengh لمعرفة طول الكلمة ..

لكن ماذا احتاج لكي أجعلها تنزل صفاً جديداً أو كيف أُفهمها بانها صفوفٌ من الأساس ؟ : /

لا أعلم هل صحيح مافهمته أو أن هناك خطأ ..

ساعدوني في فهم المطلوب وكتابة الكود ،post-244299-017865900 1304105060_thumb.j

المرفقات
1115.jpg

تم تعديل هذه المشاركة بواسطة رُؤيا في 29 أبريل 2011 في 22:25

#2

ما فهمت قصدك بالضبط لأنه ما طلع صورة !

بس الي فهمته انه بالبرنامج انتي بدك تبحثي عن كلمة معينة بمصفوفة فيها كلمات

و المصفوفة فيه صفوف يعني مصفوفة ثنائية (اعمدة و صفوف)

لهيك رح يلزمك 2 فور لوب لحتى امشي صف صف او عمود عمود مثل ما بيفرض عليكي البرنامج

و مش ضروري تستخدمي size.lingh لانه ببساطة رح تفحصي على هذا الشكل

جربي هذا الكود حسب المتغيرات الي عندك

 for(int i=0;i<10;i++)
                      {
                          for(int k;k<20;k++)
                          {
                              if(searchWord==array[k])count++;
                          }
                         System.out.print("count is "+count); 
                      }
#3

أهلاً عزيزتي ..

ارفقتُ السؤال في المشاركة الأولى ..

#4

على اعتبار انك رح تضيفي على الاري جمل مش كلمات لهيك رح يتخلف شوية

ممكن تستخدمي خوارزمية البحث عن نص

مش متكذريتها منيح لكن رح تفيدك كثير

لانها رح تقارن بين احرف الكلمة و الجمل الموجودة بالاري

و بتقدري تستفيدي من هذا المثال لتعرفي كيف تجزأي الجمل لكلمات و تقارني

بس ياريت لو تبعثي محاولاتك بكون أفضل ،، و كمان قوانين المنتدى بتمنع طلب كود بهذه الطريقة :lol:

import java.lang.*;
import java.util.*;


public class MyClass {


    public static void main(String[] args) {


    Scanner in=new Scanner(System.in);

    System.out.println("Enter your full name");

    String name=in.nextLine();

    int n=name.indexOf(" ");
    String firstname=name.substring(0,n);

    String second=name.substring(n+1);

     System.out.print(firstname+"---------"+second);



    }
1
#5
اقتباس
على اعتبار انك رح تضيفي على الاري جمل مش كلمات لهيك رح يتخلف شوية

طيب كيف طريقة كتابة الكود اذا كان الاري جمل ؟

انا بعرف ارقام بس

i

int [] a = new int [6] ;

اقتباس

و بتقدري تستفيدي من هذا المثال لتعرفي كيف تجزأي الجمل لكلمات و تقارني

مشكلتي مو عارفة ايش الشرط اللي راح استخدمو عشان اقارن : (

طيب بسآلك هالـ Method ايش تعمل

tring name=in.nextLine();

    int n=name.indexOf(" ");

اقتباس
بس ياريت لو تبعثي محاولاتك بكون أفضل ،، و كمان قوانين المنتدى بتمنع طلب كود بهذه الطريقة :lol:

كلو أخطاء : (.. وللحين ماعرفت ايش الشرط

ابعثو لتشوفيه ؟

آسفة راح اتعبك

#6

الداله التاليه تقوم بمعرفة عدد مرات تواجد نص داخل أخر حيث المعامل search هو النص المراد البحث عنها و المعامل word هو النص المراد البحث داخله.

الداله تعود بـ 0 إذا لم تجد search داخل word أو تعود بعدد مرات تواجد search داخل word

int countOf(string word, string search)
{
    int count = 0, index = 0;

    do
    {
        // get index of value
        index = word.indexOf(search, index);

        if (index == -1) break;

        // increment count
        count++;

        // skip what we found
        index += search.length();

    } while ( index < word.length() );

    // return count
    return count;
}

بإستخدام هذه الداله يمكن كتابة داله لطباعة الناتج مثل الموجود بالصوره بالمشاركه الأولي.

ملحوظه: الكود كتبته بالسي++ و على قدر معرفتي بالجافا قمت بتحويله.

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 30 أبريل 2011 في 04:18

1

مدونتي: C++ Tips and Tricks

#7

حل رائع اخى محمد ومرحبا بك معنا فى قسم الجافا

الكود سليم باستثناء ان كلمة string تبدأ فى الجافا ب Uppercase S لتصبح String

اقتباس

بإستخدام هذه الداله يمكن كتابة داله لطباعة الناتج مثل الموجود بالصوره بالمشاركه الأولي.

+1


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#8

جزاك الله خير اخي محمد ..

بس ممكن تشرح لي الكود ؟ احتاج افهمه كويس ..

#9

المتغير count سيحتوى على عدد مرات تواجد search داخل word.

المتغير index يحتوي على موقع أول حرف سيتم البحث بداية منه داخل المتغير word.

القيمه صفر التى يتم وضعها بالمتغيرين هنا ذات مغزي حيث بالنسبه للمتغير index سيبدأ البحث من اول حرف و موقعه هو صفر، بالنسبه للمتغير count فلحظة التعريف عنه لم يكن البحث بدء من بعد لذا عدد مرات التواجد هو صفر.

يمكن قراءة الكود على شكل algorithm كالتالي:

1 - احصل على مكان تواجد محتوى search داخل النص word بدءا من الموقع الموجود داخل index ثم إحفظ الناتج داخل المتغير index

- 2إذا كانت قيمة index تساوى -1 فهذا يدل على انتهاء البحث و إذا إلى الخطوه 6

3 - قم بزيادة قيمة count بمقدار 1

4 - قم بجعل مكان البحث داخل word يبدأ من بعد النص الذي وجدناه و ذلك بزيادة قيمة index بمقدار عدد حروف النص search.

5 - قم بالذهاب للخطوه 1 إذا كانت قيمة index اقل من عدد حروف النص word (و هذا يعنى ان index يحتوى على مكان يمكن بدء البحث منه).

6 - المتغير count يحتوى على عدد مرات تواجد search داخل word.

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…