أخر الاخبار

ترتيب عناصر المصفوفة - تعلم البرمجة بلغة C بلس بلس


ترتيب الأرقام أو الأحرف تصاعديا أو تنازليا يكون بمقارنة كل عنصر من عناصر المصفوفة مع العناصر الذي تليه في المصفوفة فعلى سبيل المثال إذا أردنا ترتيب العناصر تصاعديا فنقارن كل عنصر في المصفوفة بالعناصر الذي   تليه فإذا وجدنا رقم اقل من قيمة العنصر نبدل بين العنصريين. مثال إذا كان ( array[0]=50,array[3]=2 ) فعند البدء بالمقارنة نجد القيمة في الموقع الرابع من المصفوفة هو (2) وفي الموقع الألول هو (50)


بهذة الحالة تكون قيمة الموقع الرابع اقل لذالك سنبدل قيمة الموقع الرابع بقيمة الموقع الأول ونقارن بقية المواقع بقيمة الموقع الاول الجديدة وهو أصبح (50) ونستمر بالإبدال إلى أن نصل في المقارنة إلى أخر رقم بالمصفوفة ثم نأخذ ثاني عنصر بالمصفوفة ونقارنه ببقية العناصر ثم الثالث إلى إن نصل إلى أخر عنصر نجد المصفوفة مرتبة.

- لنفرض أن لدينا مصفوفة من خمسة عناصر ونريد ترتيبها تصاعديا وكانت القيم المخزنة بالمصفوفة كما في الشكل:


عند الترتيب التصاعدي نضع الرقم االقل الى االمام واالعلى الى الخلف في المقارنة والتنازلي بالعكس.
- للترتيب كما قلنا نقارن كل موقع بجميع المواقع التي تليه هكذا..؟

1- مقارنة الموقع الاول مع الموقع الثاني. عند المقارنة وجدنا إن قيمة الموقع الثاني اقل من قيمة الموقع الأول لذالك سنبدل بينهما وكما مبين بالشكل التالي:


2-مقارنة الموقع الاول بالموقع الثالث والرابع الى اخر موقع بالمصفوفة.
3- مقارنة الموقع الثاني ببقية المواقع وكذلك بقية المواقع ايضاً تقارن وتستبدل المواقع بحيث بالنهاية سنحصل على مصفوفة مرتبة تصاعدياً.

- الان سنحول الشرح اعلاة الى كود برمجي بلفة c بلس بلس

مثال:  برنامج لترتيب عناصر المصفوفة يدخلها المستخدم تصاعديا..؟


تحليل: كيف نرتب برمجيا؟علمنا انه بالترتيب نقارن كل موقع بجميع المواقع التي تليه لذالك سنحتاج إلى عدادان الاول خاص بالمرور على كل موقع مرة واحدة وعداد داخلي يقارن كل عنصر مرة عليه العداد الخارجي بجميع العناصر التي تليه في المصفوفة وأينما وجد رقم اقل منه يبدل بينهما.


- لو ادخلنا الارقام 45 , 42 , 6 , 85 , 64 فانة سيتم ترتيبها على الشكل التالي:


- بالنسبة للترتيب التنازلي فقط نقوم بعكس الشرط ي خانة if من > الى < ونفس خطوات البرنامج تطبيق كما هي.



حجم الخط
+
16
-
تباعد السطور
+
2
-