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

كيفية عمل مصفوفة ببعدين ؟

مغلق
بدأه نسرونيتا في 4 ديسمبر 2006 · 3 رد · 997 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف اعمل مصفوفة ببعدين بحيث يوجد عندي 3 تكست بوكس الأول يدخل عدد النود والثاني يدخلي القيمة بين كل نود ونود بحيث ان المستخدم ادخل مثلا

عدد النود 4

وادخل بين كل نود ونود قيمة هكذا بين ال1و2 = 9

(1و2)= 5

(1و3)=0

(1و4)= 6

(2و3)=9

(2و4)=1

(3و4)= 9

وطبعا العكس صحيح فما يحتاج يدخله ثاني ...

وبعد ذلك يعمل غلى ترتيب القيم السابقة من الأكبر للاصغر .. وتسمى قيم الأدج

بعد ذلك نأخذ أصغر قيمة ونضعها في Set ونسمي هذه الست بحيث كل ما وجدنا قيمة صغيرة نضيفها على الset مع مراعاة النود بحيث لا اريد النود تمثلي شكل الدائرة ...

ارجو أن تساعدوني في حل هذا البرنامج وفي حل هذه االفكرة بحيث اريد حلها على الويندوز ابليكشن ...

وفيه سؤال كيف يمكنني ارسم بالسي شارب ولا بد من وجود مكتبة للرسم أم ماذا واريد الرسم على الفورم بحيث يرسم النقاط ويرسم الخطوط بين النقاط ويضع قيم بين كل نقطة ونقطة اذا وجد خط بينهم ... ويتم حسابها بنفس الفكرة السابقة ولكنها بصيغة مختلفة ...

#2

للتوضيح نعتبر أن النود هو ال V

1- Sort the edge in G in Acsending order with respect the cost

اقصد بالكوست هي القيمة بين كل نودين

2- Let Vs = { {V1} , {V2},...., {Vn}} ;

حيث أن ال Vs هي مجموعة من النود

وال n هي عدد النود

وال K لا شغل لها بس عشان تزبط الكتابة

---Repeat until Vs Become one set holding all Vi

حيث أن ال i=1 الى أن تصل الى عدد النود ( اخر نود )

-- Let (Vj , Vi ) Be the next edge in the sorted list of edge

حيث أن ال Vi , Vj مجموعة جزئية من الـ V s

-- If { Vi, Vj} C Yi

حيث أن ال C اقصد بها المجموعة الجزئية

وال Yi ( Any Subset of set Vs)

بحيث اننا نضع قيم الادج في الواي ...

--- Then skip this edge ( becuse it makes a cycle );

Else Yi=Yi U { vj,vi};

حيث أن ال U اتحاد يعني نجمعها عليها لكي ينتج لنا الطريق باقل تكلفة

Set start with one node

#3

السلام عليكم

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

public void SortArray(int[] array)

{

for (int pass = 0; pass < array.Length; pass++)

for (int i = 0; i < array.Length-1 ; i++)

if (array > array[i + 1])

Swap(array, i);

}

public void Swap(int[] array , int first)

{

int temp;

temp = array[first];

array[first] = array[first + 1];

array[first + 1] = temp;

}

ده كود للميثود بتقوم بعمل sort للعناصر الموجوده داخل المصفوفه ممكن حد يشرحه او يقدمه بصوره افضل من كده ؟؟

#4

نسرونيتا.. اعتذر لأني لم افهم الموضوع تماما.. فلا استطيه اجابتك...

أما بالنسبة للأخ Amgad Nady فأنا لم ادقق في الكود التذي وضعته...لكن اعرف فكرته..

طريقة الترتيب في هذا الكود تدعى bubble sort (الترتيب الفقاعي)

وهي تقوم بالترتيب كما يجب. لكن مشكلتها هي انها تأخذ وقتا طويلا كلما زاد عدد النودز بكمية كبيرة.

للقيم الصغيرة تعمل بشكل جيد. لكن مع زيادة عدد النودز بكمية كبيرة (عشرات الوف النودز مثلا) فسيظهر البطئ الشديد في فاعلية هذه الخوارزمية.

نسرونيتا ارجو التوضيح اكثر لعلنا نستطيع المساعدة...

بالنسبة لطرق الترتيب انصح بمراجعة منتدى الخوارزميات.

تم تعديل هذه المشاركة بواسطة Andalus في 14 ديسمبر 2006 في 16:37

هذا الموضوع مغلق.

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