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

لدي استفسار في المصفوفات

بدأه الطالب المثابر في 31 أكتوبر 2010 · 10 رد · 638 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخوتي الكرام ارجو ان لا اكون قد اثقلة عليكم فهذا الموقع والمنتدى انا اعتبره معلمي الثاني فقد تعلمت من اساتذتي وزملائي واخواني الاعضاء الشي الكثير والكثير جزاكم الله خير عني وعن اخوتي اللذين استفادو من هذا الموقع المميز

وتعلم من دروس الاساتذه الكرام في هذا الموضوع الكثير

/index.php?showtopic=142086

فانا لدي مشكله في فهم المصفوفات

فاريد ان انقل من مصفوفه إلى مصفوفه فقد كتبت الكود التالي

package project1;

public class Class1 {
public static void main(String[] args){
    int[] a=new int[5];
    a[0]=10;
    a[1]=9;
    a[2]=8;
    a[3]=7;
    a[4]=6;
    int[]b=new int[5];
    a[0]=1;
    a[1]=2;
    a[2]=3;
    a[3]=4;
    a[4]=5;


}
}

كود بسيط ولكن يعني ليه الشي الكثير حيث اني مبتدى جداً في لغة الجافا فاريد ان اقوم بنقل المصفوفه int[]a داخل المصفوفه int[]b بعدة طرق مختلفه

#2

جيد انك تجتهد فى مذاكره الجافا ولكن اسئلتك سهله و اساسيه

فأرجوك اهتم بالمرجع وحاول طرح الاسئله الصعبه فقط

وهذا حل مشكلتك

import java.util.Scanner;
public class Class2 {
public static void main(String[] args){
	int[] a=new int[5];
	Scanner input = new Scanner(System.in);
	System.out.println("Enter Array a  : ");
for(int i=0;i<5;i++)
{
	a = input.nextInt();
}
	int[]b=new int[5];
	for(int i=0;i<5;i++)
	{
    	b=a;
	}
	System.out.println("Array b :");
	for(int i=0;i<5;i++)
	{
    	System.out.print(b+"  ");
	}



}
}

no-pain-no-gain.jpg

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك

#3

يمكنك اخى استخدام ذلك ايضا بما انك ذكرت انك تريد نسخ مصفوفه بعده طرق:)

int x[] = {3, 34, 5, 3, 45, 54, 30};
int[] copyOfRange = Arrays.copyOfRange(x, 0, x.length);

Software Developer
Mahmoudkelany.com


 

#4
The expendable كتب:

جيد انك تجتهد فى مذاكره الجافا ولكن اسئلتك سهله و اساسيه

فأرجوك اهتم بالمرجع وحاول طرح الاسئله الصعبه فقط

وهذا حل مشكلتك

import java.util.Scanner;
public class Class2 {
public static void main(String[] args){
	int[] a=new int[5];
	Scanner input = new Scanner(System.in);
	System.out.println("Enter Array a  : ");
for(int i=0;i<5;i++)
{
	a = input.nextInt();
}
	int[]b=new int[5];
	for(int i=0;i<5;i++)
	{
    	b=a;
	}
	System.out.println("Array b :");
	for(int i=0;i<5;i++)
	{
    	System.out.print(b+"  ");
	}



}
}

شكراً لك اخي الكريم وجزاك الله عني خير الجزاء انا ليه فقط يومان او ثلاثه في تعلم الجافا فاشكرك على النصيحه

فلو تكرمة اخي الكريم هلا شرحت ليه سطر سطر حتى استطيع فهم الكود بشكل افضل

حيث ان الناتج ليس ما اريد كنت افكر في ان اجعل الـ a[0]=10 في مصفوفة الـ a تنتقل إلى a[0]=1 في مصفوفة الـ b وهكذا

#5
Mahmoud Kelany كتب:

يمكنك اخى استخدام ذلك ايضا بما انك ذكرت انك تريد نسخ مصفوفه بعده طرق:)

int x[] = {3, 34, 5, 3, 45, 54, 30};
int[] copyOfRange = Arrays.copyOfRange(x, 0, x.length);

شكراً لك اخي محمود على دعمك المتواصل لي بردود تقبل تحياتي وجزاك الله عني خير الجزاء

ارجو منك اخي ان تتكرم عليه بالشرح التفصيلي حيث ان غايتي هي الفهم وليس النسخ فقط

تم تعديل هذه المشاركة بواسطة الطالب المثابر في 31 أكتوبر 2010 في 22:12

#6
الطالب المثابر كتب:

شكراً لك اخي محمد على دعمك المتواصل لي بردود تقبل تحياتي وجزاك الله عني خير الجزاء

ارجو منك اخي ان تتكرم عليه بالشرح التفصيلي حيث ان غايتي هي الفهم وليس النسخ فقط

العفو اخى الكريم

هناك داله اسمها

copyOfRange

موجوده من ضمن دوال الكلاس Arrays

هذه كلاس موجوده فالجافا

تقوم باخذ الarray

هو اول متغير x

وتقوم بنسخه ولكن تحدد لها منين لفين

يعنى

من بدايه المصفوفه

علشان كدا كتبت صفر

الى نهايه المصفوفه علشان كدا كتبت

x.length

وبعدها تقوم بوضع الناتج

فى مصفوفه اخرى وبكدا انت نسختها

وبس

بالتوفيق smile.gif

Software Developer
Mahmoudkelany.com


 

#7

هناك طريقه اخرى

استخدام (arraycopy)

public class Copy
{
    public static void main(String [] args)
    {
        int [] x={12,33,55,76,88};
        int [] y= new int[5];
        System.out.println(y[1]);   //the value will be y[1]=0
        System.arraycopy(x,0,y,0,x.length);
        System.out.println(y[1]);  //the value will be y[1]=33 
    }
}

اذا لاحظتو الجافا كسرت القاعده في تسميه (Method)

كتبت (arraycopy)

والمفروض ان يكون ال©كابيتل

albert_einstein.jpg

Untitled-AE.jpg
#8
pro.fahd كتب:

هناك طريقه اخرى

استخدام (arraycopy)

public class Copy
{
    public static void main(String [] args)
    {
        int [] x={12,33,55,76,88};
        int [] y= new int[5];
        System.out.println(y[1]);   //the value will be y[1]=0
        System.arraycopy(x,0,y,0,x.length);
        System.out.println(y[1]);  //the value will be y[1]=33 
    }
}

اذا لاحظتو الجافا كسرت القاعده في تسميه (Method)

كتبت (arraycopy)

والمفروض ان يكون ال©كابيتل

تسلم ايدك

معلش بقا انت الكبير

خليها علينا مره ولا حاجه تكسر براحتها ههههههههههه

Software Developer
Mahmoudkelany.com


 

#9
Mahmoud Kelany كتب:

int[] copyOfRange = Arrays.copyOfRange(x, 0, x.length);

طريقه رائعه لم اكن اعلمها بس مفيش +1 لأن ده الطبيعى بتاعك ..

اقتباس
System.arraycopy(x,0,y,0,x.length);

ايها الطالب المثابر اصبح لديك 3 طرق متنوعه 012.gifدونم لديك وارجع عند الحاجه ويا ريت لو فى طرق اخرى لا احد يبخل بها ..

no-pain-no-gain.jpg

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك

#10

اشكركم جميعاً على الحلول والتعاون اللذي ابهرني لكم تحياتي وتقديري لو انو مو عارف كيف اشكركم على مجهودكم الرائع

يحتاج ليه وقت عشان افهم الجافا هيا لغة ممتعه وجميله وخاصتن مع اخوه واساتذه مثلكم وفقكم الله وجعل كل جهد تبذلونه في ميزان حسناتكم

#11
Mahmoud Kelany كتب:

تسلم ايدك

معلش بقا انت الكبير

خليها علينا مره ولا حاجه تكسر براحتها ههههههههههه

مهما كبرنا مش حنتعداك

وانا مسامحهم علشانك :lol:

albert_einstein.jpg

Untitled-AE.jpg

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

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

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

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

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