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

[تنبيه - عنوان غير مناسب : ]pointers

بدأه fanon في 22 يونيو 2010 · 38 رد · 1,444 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#26
fanon كتب:

على فكره انتو جلستو تتناااقشو ....في شئ قد يكووون ماله داعي بموضوووعي

طلبت شي معييين وجلس كل واااحد يعرض وجهه نظرررره في مثاااال ..وانا جالسه اتفرج ؟؟

اخ herch اتمنى ترد عل سؤالي

متاسفين لكن هو دا مناقشه الجافا نعمل ايه بس

معلش عندى المره دى

اقتباس
هل عندما تفعل ذلك تستطيع تغيير القيمة داحل اى فئة..؟ :wacko:

موش فاكر :wacko: :wacko:

انا الـ OS ضرب على دماغى

معلش :nose_pick:

Software Developer
Mahmoudkelany.com


 

#27
اقتباس
لكن بردوا هذه حاله ممكن ف حالات تانيه مش احتاج مثل هذه اللخبطه

هذه "اللخبطة" بسبب أننا أردنا تمرير primitive على شكل reference إلى method، بهدف التعديل عليها. لكن عادة لا نحتاج هذا، فال return يفي بالغرض، بدون "وجع راس"

fanon كتب:

كيف احول الريفرنس هنا بلغه السي شاارب

النقاش منذ البداية يدور حول عدم إمكانية تمرير primitive type على شكل reference ، لذلك فالترجمة الحرفية للكود غير ممكنة.

أحد الحلول هو أن تقول ال method بإعادة array يحتوي على القيم الجديدة

private int[] Encode(int r1, int r2, int rounds)
{
	r1 = r1 + s[0];
	r2 = r2 + s[1];
	for (int i = 1; i <= rounds; i++)
	{
		r1 = leftRotate(r1 ^ r2, (int)r2) + s[2 * i];
		r2 = leftRotate(r2 ^ r1, (int)r1) + s[2 * i + 1];
	}
	int[] newValues = {r1, r2};
	return newValues;
}

fanon كتب:

بدون امثله بس عطيني الاجااابه

هذه ليست أفضل طريقة للكلام !!!

#28
اقتباس
كيف احول الريفرنس هنا بلغه السي شاارب

أنا رأيت هذه الجملة قدراً ..

يمكنك في السي شارب استخدام المؤشرات إذا أردت ذلك عن طريق استعمال الـ unsafe keyword وهذه أمثلة على استخدامها:

unsafe static void FastCopy ( byte[] src, byte[] dst, int count )
{
   // unsafe context: can use pointers here
}

وهذا:

unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}

وهذا:

unsafe 
{
   // unsafe context: can use pointers here
}

لمزيد من المعلومات يمكنك قراءة هذه المادة http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=351

مدونة ابنتي الرضيعة: يوميات رزان

مدونتي التقنية العربية: البرمجة مع عبد المنعم

Technical Blog: Abdul Moniem's Thoughts

LinkedIn: Profile

#29
herch كتب:

هذه "اللخبطة" بسبب أننا أردنا تمرير primitive على شكل reference إلى method، بهدف التعديل عليها. لكن عادة لا نحتاج هذا، فال return يفي بالغرض، بدون "وجع راس"

النقاش منذ البداية يدور حول عدم إمكانية تمرير primitive type على شكل reference ، لذلك فالترجمة الحرفية للكود غير ممكنة.

أحد الحلول هو أن تقول ال method بإعادة array يحتوي على القيم الجديدة

private int[] Encode(int r1, int r2, int rounds)
{
	r1 = r1 + s[0];
	r2 = r2 + s[1];
	for (int i = 1; i <= rounds; i++)
	{
		r1 = leftRotate(r1 ^ r2, (int)r2) + s[2 * i];
		r2 = leftRotate(r2 ^ r1, (int)r1) + s[2 * i + 1];
	}
	int[] newValues = {r1, r2};
	return newValues;
}

هذه ليست أفضل طريقة للكلام !!!

فعلا انا كنت عاوز اعمل موضوع الreturn دا

لكن قولت خلاص ما صدقنا سكتنا شويه وكدا هههههه وعلى رايك بلاش وجع راس

علشان الاخت او الاخ مش يزعل اننا سبنا الموضوع وتناقشنا فى حاجات تانيه

لكن هذه هى الطريقه الكويسه للعلم المنااااااااقشه

اقتباس

لذلك فالترجمة الحرفية للكود غير ممكنة

ماذا تعنى هنا ؟ لم افهمها حقا ؟

Software Developer
Mahmoudkelany.com


 

#30
herch كتب:

هذه "اللخبطة" بسبب أننا أردنا تمرير primitive على شكل reference إلى method، بهدف التعديل عليها. لكن عادة لا نحتاج هذا، فال return يفي بالغرض، بدون "وجع راس"

النقاش منذ البداية يدور حول عدم إمكانية تمرير primitive type على شكل reference ، لذلك فالترجمة الحرفية للكود غير ممكنة.

أحد الحلول هو أن تقول ال method بإعادة array يحتوي على القيم الجديدة

private int[] Encode(int r1, int r2, int rounds)
{
	r1 = r1 + s[0];
	r2 = r2 + s[1];
	for (int i = 1; i <= rounds; i++)
	{
		r1 = leftRotate(r1 ^ r2, (int)r2) + s[2 * i];
		r2 = leftRotate(r2 ^ r1, (int)r1) + s[2 * i + 1];
	}
	int[] newValues = {r1, r2};
	return newValues;
}

هذه ليست أفضل طريقة للكلام !!!

ادرري انها ماهيب افضل طريييقه لكن ...كل واحد منهم بدا يتفلسف ويحط امثله يثبت بها وجهه نظررره

عشان كذاا حتى لا اضيع وقتي ..قلت عطوني الاجابه بسطرين وخلااص

−1
#31
أحمد عبد المنعم كتب:

أنا رأيت هذه الجملة قدراً ..

يمكنك في السي شارب استخدام المؤشرات إذا أردت ذلك عن طريق استعمال الـ unsafe keyword وهذه أمثلة على استخدامها:

unsafe static void FastCopy ( byte[] src, byte[] dst, int count )
{
   // unsafe context: can use pointers here
}

وهذا:

unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}

وهذا:

unsafe 
{
   // unsafe context: can use pointers here
}

لمزيد من المعلومات يمكنك قراءة هذه المادة http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=351

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

جاى لكم سى شارب قريبا

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

هذا ما فهمته

Software Developer
Mahmoudkelany.com


 

#32
Mahmoud Kelany كتب:

ماذا تعنى هنا ؟ لم افهمها حقا ؟

الكلام كان موجه للأخ fanon، حيث الجافا لا تدعم ال pointers وأيضا ال unsigned types، وهما شيئان موجودان في الكود الذي كتبه

fanon كتب:

ادرري انها ماهيب افضل طريييقه لكن ...كل واحد منهم بدا يتفلسف ويحط امثله يثبت بها وجهه نظررره

عشان كذاا حتى لا اضيع وقتي ..قلت عطوني الاجابه بسطرين وخلااص

طيب هل نفعت ال return أم لا

#33
fanon كتب:

ادرري انها ماهيب افضل طريييقه لكن ...كل واحد منهم بدا يتفلسف ويحط امثله يثبت بها وجهه نظررره

عشان كذاا حتى لا اضيع وقتي ..قلت عطوني الاجابه بسطرين وخلااص

نحن لا نتفلسف نحن نتناقش

وان لم نتناقش الان فمتى نتناقش

وكمان انا عندى امتحان وبتناقش معاكوا

يعنى مش بتعلم او بعرف معلومه للزمن

سايب امتحانى اللى هو بكرا وقاعد بتناقش

لان انا حابب النقاش

تقبل مرورى

سلام عليكم

herch كتب:

الكلام كان موجه للأخ fanon، حيث الجافا لا تدعم ال pointers وأيضا ال unsigned types، وهما شيئان موجودان في الكود الذي كتبه

طيب هل نفعت ال return أم لا

نفعت بعد ما عملت تغيير فى

   public static int increment(int x) {
        return ++x;
    }

وطبعت بدلا من 

   System.out.println("int: " + i);

طبعت 

   System.out.println("int: " + increment(i));

طبعت القيمتين 3

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 22 يونيو 2010 في 22:23

Software Developer
Mahmoudkelany.com


 

#34

الى حد مااا ممكن

لكن للحين ماخلصت الكود كاملا

اذا واجهت مشااكل بقولك وصحيح قصه unsigned

hda pgih

#35

يا جماعه, كفايه نقاش (خناق) بقه

إسراء بالمثال الي وضعته تريد شرح ال reference في الجافا,, و أعتقد لو إستخدمت الفئه java.lang.Integer كان هيؤدي نفس الفائده..

يا محمود, طبعا المثال بتاعك غير المثال بتاعها خالص, أنت تستخدم primitives و هي تستخدم references و الفائده هي للشرح فقط و إلا فطريقتك هي الأنسب في هذه الحالة البسيطه.

ياريت تركزوا على حل سؤال السائل (و ممكن تفتحوا موضوع تتناقشوا فيه لو تحبوا)

لكن يا جماعه, هل لو إستخدمت java.lang.Integer ك parameter لهذه الداله, فبذلك أن أستطعت أن أقلد call by ref ؟ (أو ع الأقل أضمن إن القيمه الداخليه للكائن المرسل للدالة ستتغير عندي)

مثال:

public class TestReferences {
	public static void main(String[] args) {
		print("Example on using reference variables in Java: ");
		MyInteger iObj = new MyInteger();
		iObj.x = 0;
		print("iObj.x Before: " + iObj.x);
		changeValue(iObj);
		print("iObj.x After: " + iObj.x);

		print("Example on using permitive variables in Java: ");
		int i = 0;
		print("i Before: " + i);
		changeValue(i);
		print("i After: " + i);
	}

	private static void changeValue(MyInteger iObj) {
		iObj.x = 10;
		print("iObj.x In changeValue() : " + iObj.x);
	}

	private static void changeValue(int i) {
		i = 10;
		print("i In changeValue() : " + i);
	}

	static class MyInteger{
		int x;
	}

	static void print(String str) {
		System.out.println(">> " + str);
	}
}

>> Example on using reference variables in Java: 
>> iObj.x Before: 0
>> iObj.x In changeValue() : 10
>> iObj.x After: 10
>> Example on using permitive variables in Java: 
>> i Before: 0
>> i In changeValue() : 10
>> i After: 0

ولكني أنصحك بما قال به الأخ عصام و الأخوه, إجعل الداله ترجع لك array أو كائن تقوم أنت بإنشائه و يحتوي على النتائج التي تريدها : مثال, يكون شكل الداله هكذا:

private Results Encode(int r1, int r2, int rounds)
{
....
}

class Results{int x1,x2};
#36

اردت مساعدة الاخت و وضعت مثال حتى تفهمة

لانى لا افهم سى شارب و لا اعرف ماذا تريد

00020309t.gif

1958_1963.gif
#37
هويدي كتب:

يا جماعه, كفايه نقاش (خناق) بقه

إسراء بالمثال الي وضعته تريد شرح ال reference في الجافا,, و أعتقد لو إستخدمت الفئه java.lang.Integer كان هيؤدي نفس الفائده..

يا محمود, طبعا المثال بتاعك غير المثال بتاعها خالص, أنت تستخدم primitives و هي تستخدم references و الفائده هي للشرح فقط و إلا فطريقتك هي الأنسب في هذه الحالة البسيطه.

ههههههههههههههه

حاضر هنبطل نقاش ( خناق )

اقتباس

و الفائده هي للشرح فقط

ايوه كدا يا اخ هويدى قولى فهمنى رسينى كدا افهم :lol:

سلام

Software Developer
Mahmoudkelany.com


 

#38

الأخ الكريم/الأخت الكريمة

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

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#39
اقتباس
ادرري انها ماهيب افضل طريييقه لكن ...كل واحد منهم بدا يتفلسف ويحط امثله يثبت بها وجهه نظررره

عشان كذاا حتى لا اضيع وقتي ..قلت عطوني الاجابه بسطرين وخلااص

-1

هناك crypto libraries يمكنك استخدامها مباشره.

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

http://people.csail.mit.edu/rivest/Rivest-rc5rev.pdf

أعتقد أن هذه اجابة من سطرين :lol:

بالتوفيق،

1

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

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

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

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

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

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