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

محتاج تفسير هذا الكود

بدأه meno208 في 6 أكتوبر 2010 · 13 رد · 654 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا محتاج تفسير هذا الكود لانه سهل لكن هناك لبس بالنسبة لى ولا استطيع تفهمه

import java.util.Random;
public class jclass {

	public static void main (String args[]){
		Random rand = new Random();
		int Freq[] = new int[7];

		for (int roll = 1 ; roll<1000; roll++){
		++Freq[1+rand.nextInt(6)];
		}
		System.out.println("face\tFreq");

		for (int face =1 ; face<Freq.length ; face++){
			System.out.println(face+"\t"+Freq[face]);		
		}

	}
}

جزاكم الله خيرا

تم تعديل هذه المشاركة بواسطة .S.T.A.L.K.E.R في 6 أكتوبر 2010 في 16:55 — السبب: add code tag

#2

هذا الكود

public class jclass {

    public static void main(String args[]) {
        Random rand = new Random();
        int Freq[] = new int[7];
        for (int roll = 1; roll < 1000; roll++) {
            ++Freq[1 + rand.nextInt(6)];
        }
        System.out.println("face\tFreq");
        for (int face = 1; face < Freq.length; face++) {
            System.out.println(face + "\t" + Freq[face]);

        }
    }
}

فائدته هو انه يعمل عمليه عشوائيه على اعداد من واحد الى ستة

ويظهر عدد تكرار كل وجهه منهم

هذه هى تمثل عمليه زهر النرد

نأتى لتفسير الكود نفسه

Random rand = new Random();

انشاء كائن يقوم بعمل random من الـ Random Class

int Freq[] = new int[7];

نقوم بانشاء مصفوفه من 7 ارقام لتخزين عدد الاوجهه من 1 الى 6

المفروض يكون طول المصفوفه 6 هكذا

int Freq[] = new int[6];

نقوم بعمل loop تقوم بالدوران من 1 الى 1000 يعنى 999 مره

for (int roll = 1; roll < 1000; roll++) {
 ++Freq[1 + rand.nextInt(6)];
}

فى كل مره نقوم بانشاء رقم عشوائى عن طريق الكائن rand

الرقم العشوائى يبدا من 1 الى 6

عن طريق هذا الامر

1 + rand.nextInt(6)

ونخزن الرقم فى المصفوفه Freq

وبعدها تتم طباعه المصفوفه

for (int face = 1; face < Freq.length; face++) {
System.out.println(face + "\t" + Freq[face]);
}

بالتوفيق :)

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 6 أكتوبر 2010 في 14:17

Software Developer
Mahmoudkelany.com


 

#3
Mahmoud Kelany كتب:

هذا الكود

public class jclass {

    public static void main(String args[]) {
        Random rand = new Random();
        int Freq[] = new int[7];
        for (int roll = 1; roll < 1000; roll++) {
            ++Freq[1 + rand.nextInt(6)];
        }
        System.out.println("face\tFreq");
        for (int face = 1; face < Freq.length; face++) {
            System.out.println(face + "\t" + Freq[face]);

        }
    }
}

فائدته هو انه يعمل عمليه عشوائيه على اعداد من واحد الى ستة

ويظهر عدد تكرار كل وجهه منهم

هذه هى تمثل عمليه زهر النرد

نأتى لتفسير الكود نفسه

Random rand = new Random();

انشاء كائن يقوم بعمل random من الـ Random Class

int Freq[] = new int[7];

نقوم بانشاء مصفوفه من 7 ارقام لتخزين عدد الاوجهه من 1 الى 6

المفروض يكون طول المصفوفه 6 هكذا

int Freq[] = new int[6];

نقوم بعمل loop تقوم بالدوران من 1 الى 1000 يعنى 999 مره

for (int roll = 1; roll < 1000; roll++) {
 ++Freq[1 + rand.nextInt(6)];
}

فى كل مره نقوم بانشاء رقم عشوائى عن طريق الكائن rand

الرقم العشوائى يبدا من 1 الى 6

عن طريق هذا الامر

1 + rand.nextInt(6)

ونخزن الرقم فى المصفوفه Freq

وبعدها تتم طباعه المصفوفه

for (int face = 1; face < Freq.length; face++) {
System.out.println(face + "\t" + Freq[face]);
}

بالتوفيق :)

مشكور اخى على الايضاح

جزاء الله خيرا

ولتمنى من الله ان يزيدك من علمه

وارجو منك اضافتى على الماسنجر

meno208@yahoo.com

Mahmoud Kelany كتب:

هذا الكود

public class jclass {

    public static void main(String args[]) {
        Random rand = new Random();
        int Freq[] = new int[7];
        for (int roll = 1; roll < 1000; roll++) {
            ++Freq[1 + rand.nextInt(6)];
        }
        System.out.println("face\tFreq");
        for (int face = 1; face < Freq.length; face++) {
            System.out.println(face + "\t" + Freq[face]);

        }
    }
}

فائدته هو انه يعمل عمليه عشوائيه على اعداد من واحد الى ستة

ويظهر عدد تكرار كل وجهه منهم

هذه هى تمثل عمليه زهر النرد

نأتى لتفسير الكود نفسه

Random rand = new Random();

انشاء كائن يقوم بعمل random من الـ Random Class

int Freq[] = new int[7];

نقوم بانشاء مصفوفه من 7 ارقام لتخزين عدد الاوجهه من 1 الى 6

المفروض يكون طول المصفوفه 6 هكذا

int Freq[] = new int[6];

نقوم بعمل loop تقوم بالدوران من 1 الى 1000 يعنى 999 مره

for (int roll = 1; roll < 1000; roll++) {
 ++Freq[1 + rand.nextInt(6)];
}

فى كل مره نقوم بانشاء رقم عشوائى عن طريق الكائن rand

الرقم العشوائى يبدا من 1 الى 6

عن طريق هذا الامر

1 + rand.nextInt(6)

ونخزن الرقم فى المصفوفه Freq

وبعدها تتم طباعه المصفوفه

for (int face = 1; face < Freq.length; face++) {
System.out.println(face + "\t" + Freq[face]);
}

بالتوفيق :)

#4
Mahmoud Kelany كتب:

هذا الكود

public class jclass {

    public static void main(String args[]) {
        Random rand = new Random();
        int Freq[] = new int[7];
        for (int roll = 1; roll < 1000; roll++) {
            ++Freq[1 + rand.nextInt(6)];
        }
        System.out.println("face\tFreq");
        for (int face = 1; face < Freq.length; face++) {
            System.out.println(face + "\t" + Freq[face]);

        }
    }
}

فائدته هو انه يعمل عمليه عشوائيه على اعداد من واحد الى ستة

ويظهر عدد تكرار كل وجهه منهم

هذه هى تمثل عمليه زهر النرد

نأتى لتفسير الكود نفسه

Random rand = new Random();

انشاء كائن يقوم بعمل random من الـ Random Class

int Freq[] = new int[7];

نقوم بانشاء مصفوفه من 7 ارقام لتخزين عدد الاوجهه من 1 الى 6

المفروض يكون طول المصفوفه 6 هكذا

int Freq[] = new int[6];

اذا تم احتساب طول المصفوفة Freq

int Freq[] = new int[6];

بهذه الطريقة

سنحصل على

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6

حيث ف السطر

++Freq[1 + rand.nextInt(6)];

يتم جمع 1 على الانديكس

وال دالة rand.nextInt(6 ترجع رقم من 0 وحتى 5 وباضافة 1 من الممكن ان يكون الانديكس 6 فلا يجب ان يكون طول المصفوفة 6

تقبلوا احترامي...

--

Mina Fouad

Computer & Systems Engineering Dpt.

Faculty of Engineering

Alexandria University

#5
Mina Fouad كتب:

اذا تم احتساب طول المصفوفة Freq

int Freq[] = new int[6];

بهذه الطريقة

سنحصل على

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6

حيث ف السطر

++Freq[1 + rand.nextInt(6)];

يتم جمع 1 على الانديكس

وال دالة rand.nextInt(6 ترجع رقم من 0 وحتى 5 وباضافة 1 من الممكن ان يكون الانديكس 6 فلا يجب ان يكون طول المصفوفة 6

تقبلوا احترامي...

معذره لم انتبه الى ذلك

انا تكلمت من منطق انهم 6 اوجهه فهم يبدئون من 0 الى 5 يعنى عند التمثيل تكون

++Freq[1 + rand.nextInt(6)];

لكن عندما تكلمت اخى انتبهت انه يهمل اول index الذى يساوى صفر

شكرا على الانتباه :)

جزاك الله خيرا

Software Developer
Mahmoudkelany.com


 

#6
Mina Fouad كتب:

اذا تم احتساب طول المصفوفة Freq

int Freq[] = new int[6];

بهذه الطريقة

سنحصل على

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6

حيث ف السطر

++Freq[1 + rand.nextInt(6)];

يتم جمع 1 على الانديكس

وال دالة rand.nextInt(6 ترجع رقم من 0 وحتى 5 وباضافة 1 من الممكن ان يكون الانديكس 6 فلا يجب ان يكون طول المصفوفة 6

تقبلوا احترامي...

توضيح اكثر:::

فى هذة الجملة...........

 ++Freq[1 + rand.nextInt(6)];

نجد ان الدالة .nextInt(6) تأتى لنا بأرقام من 0 الى 5 و عندما نقوم بجمع 1

اذن سيصل حجم المصفوفة الى 7 لاننا سنهمل الانديكس الموجود فى المكان 0

هنا::::

اقتباس

for (int face = 1; face < Freq.length; face++) {

System.out.println(face + "\t" + Freq[face]);

}

نجد ان العد بدأ من رقم 1 :)

00020309t.gif

1958_1963.gif
#7
نفرتاري كتب:

توضيح اكثر:::

فى هذة الجملة...........

 ++Freq[1 + rand.nextInt(6)];

نجد ان الدالة .nextInt(6) تأتى لنا بأرقام من 0 الى 5 و عندما نقوم بجمع 1

اذن سيصل حجم المصفوفة الى 7 لاننا سنهمل الانديكس الموجود فى المكان 0

هنا::::

نجد ان العد بدأ من رقم 1 :)

ماشى :lol: :lol: :lol:

جزاكى الله خيرا

Software Developer
Mahmoudkelany.com


 

#8

انا اصلا بكتب فى الرد من الساعة 4 و مش اخدت بالى ان فيه ردود تانية لان النت كان فصل :)

00020309t.gif

1958_1963.gif
#9
نفرتاري كتب:

انا اصلا بكتب فى الرد من الساعة 4 و مش اخدت بالى ان فيه ردود تانية لان النت كان فصل :)

:ohmy: :ohmy: :ohmy:

لا ولا يهمك :) اساسا

اطلاقا هههههه على راى مسرحيه مدرسه المشاغبين

فكره اروح اسمعها

سلام :P :P

Software Developer
Mahmoudkelany.com


 

#10

أصعب شئ هو أن تجد من أجاب السؤال ... :D ...

#11
هويدي كتب:

أصعب شئ هو أن تجد من أجاب السؤال ... :D ...

:lol: :lol: :lol: :lol:

Software Developer
Mahmoudkelany.com


 

#12
نفرتاري كتب:

توضيح اكثر:::

فى هذة الجملة...........

 ++Freq[1 + rand.nextInt(6)];

نجد ان الدالة .nextInt(6) تأتى لنا بأرقام من 0 الى 5 و عندما نقوم بجمع 1

اذن سيصل حجم المصفوفة الى 7 لاننا سنهمل الانديكس الموجود فى المكان 0

هنا::::

نجد ان العد بدأ من رقم 1 :)

شكرا اخت نفرتارى جزاك الله خيرا

انا مبتدئ والمواضيع الصغيرة دى بتهمنى عشان افهم كل حاجة صح

انا حبيت اتواصل مع احد الزملاء فى المنتديات ولكن لم يحالفنى الحظ

لانى احتاج الى استفسرات اخرى

ايميلى هو meno208@yahoo.com

ارجو اضافتى لانى محتاج الى احد متمرس فى البرمجة اكثر منى

شكرا

#13
اقتباس
شكرا اخت نفرتارى جزاك الله خيرا

انا مبتدئ والمواضيع الصغيرة دى بتهمنى عشان افهم كل حاجة صح

انا حبيت اتواصل مع احد الزملاء فى المنتديات ولكن لم يحالفنى الحظ

لانى احتاج الى استفسرات اخرى

ايميلى هو meno208@yahoo.com

ارجو اضافتى لانى محتاج الى احد متمرس فى البرمجة اكثر منى

شكرا

يالهوووى اضيفك على الماسنجر :ohmy: ......انت عايز الحاج احمد(والدى) :ph34r: يدبحنى و يخلص من عارى ههههههههههههههه

متأسفة ما أقدرش...لو كنت بنت كان ممكن

بس لو محتاج اى شىء ممكن على الخاص او تفتح مواضيع فى المنتدى

صدقنى هيبقى افضل

لان هنا الاعضاء عندهم خبرة اكتر..و ممكن تلاقى اكثر من اجابة :)

00020309t.gif

1958_1963.gif
#14
نفرتاري كتب:

يالهوووى اضيفك على الماسنجر :ohmy: ......انت عايز الحاج احمد(والدى) :ph34r: يدبحنى و يخلص من عارى ههههههههههههههه

متأسفة ما أقدرش...لو كنت بنت كان ممكن

بس لو محتاج اى شىء ممكن على الخاص او تفتح مواضيع فى المنتدى

صدقنى هيبقى افضل

لان هنا الاعضاء عندهم خبرة اكتر..و ممكن تلاقى اكثر من اجابة :)

:thumb_up: :haha: :haha:

Software Developer
Mahmoudkelany.com


 

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