السلام عليكم
كنت قد طرحت سابقا في مشاركة سابقة لي عن كيفية ربط مصفوفتين ببعضهما حيث اذا تغير ترتيب اعمدة احداهما يتم تغير ترتيب اعمدة الآخرى لكن للآسف لم أحصل على جواب
لذلك ساطرح الموضوع من زاوية آخرى مع افكار جديدة ربما تساعد على الحل
في البداية ساعيد تعريف سريع للمشكلة التي قمت بطرحها بالمشاركة ربط عناصر مصفوفة بعناصر مصفوفة أخرى
فرضا لدي المصفوفة التالية
int [][] x = {
{1, 2, 3, 4},
{1, 2, 3, 4},
{1, 2, 3, 4}
}ولدي مصفوفة اخرى وهي
int [][] y = {
{5, 6, 7, 8},
{9, 8, 7, 6},
{5, 4, 3, 2}
}اريد ان استغل كل عنصر من المصفوفة X بما يقابله من المصفوفة Y بعملية حسابية ما ( ضرب , طرح, باقي قسمة,....)
ولكن لسبب ما قمت بعمليات حسابية معينة على المصفوفة الاولى فتغير ترتيب الاعمدة وليكن كما يلي
int [][] x= {
{3, 4, 1, 2},
{3, 4, 1, 2},
{3, 4, 1, 2}
}ولأاحصل على النتائج التي أريدها يجب أن يعاد ترتيب عناصر المصفوفة Y وفق الترتيب الجديد للمصفوفة X
يعني اذا صار العامود الاول بالمصفوفة X بالموقع التالت يحب ان يتغير ترتيب العامود الاول من المصفوفة Y ليصبح أيضا بالموقع الثالت
وهكذا لكل تغير يحصل بمواقع اعمدة المصفوفة X يجب أن يقابله تغير مماثل في ترتيب أعمدة المصفوفة Y
وفكرتي الجديدة تتلخص في استخدام مصفوفة وسيطة وسكون طول المصفوفة يبدأ من 1 الذي يمثل العمود الاول في المصفوفة X وينتهي باخر رقم لطول المصفوفة X
int [] index = {1, 2, 3, 4};طبعا تشير عناصر المصفوفة index للترتيب الأصلي لاعمدة المصفوفة X
حيث 1 تشير لترتيب العمود الاول من X و2 تشير لترتيب العامود الثاني وهكذا طبعا قبل القيام بأي تغير لترتيب أعمدة المصفوفة X
وبنفس الوقت فان عناصر المصفوفة index تشير أيضا للترتيب ألاصلي لأعمدة المصفوفة Y
حيث مثلا 1 تشير لترتيب العمود الاول من Y و2 تشير لترتيب العامود الثاني وهكذا طبعا قبل القيام بأي تغير لترتيب أعمدة المصفوفة X
كما هو واضح بالصورة التالية
بعد ذلك يتم تغير ترتيب أعمدة المصفوفة X فنقوم بتغير اماكن عناصر المصفوفة index بما يتوافق مع الترتيب الجديد للمصفوفة X
حيث مثلا يتغير العامود الاول ويصبح في موقع العامود الثالث لذلك يجب تغير العنصر الاول من المصفوفة index ليصبح بالموقع الثالث وهكذا....
والشكل التالي يبين ذلك
عندئذ تكون مسالتنا قد انتهت تقريبا حيث لا يبقى الا خطوة صغيرة وهي اعادة ترتيب اعمدة المصفوفة Y حسب الترتيب الجديد لعناصر المصفوفة index
وهكذا اعتقد ان المسالة صارت اوضح
لكن ما عجزت عنه هو تغير ربط المصفوفة X بالمصفوفة index ليتم تغير ترتيب عناصرها بعد كل تغير يحدث في X
أطلت بالشرح لكن املي كبير بالمساعدة
وشكرا
