منتديات الجلفة لكل الجزائريين و العرب - عرض مشاركة واحدة - موضوع مميز ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal
عرض مشاركة واحدة
قديم 2013-01-03, 13:58   رقم المشاركة : 1
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة yalova مشاهدة المشاركة
أخي أنا لم أطلب الخوارزمية بل طلبت شرح الطريقة
وشكـــــــــــــــراا
مبدا
tri par comptage
هو تريب جدول او مصفوفة

من اجل هذا نحتاج الى قراءة جدول او مصفوفة
ثانيا نحتاج الى مقارنة القيم
فالقيمة الاولى للجدول نقارنها مع كل القيم الاخرى فاذا وجدنا قيمة اصغر منها نقوم بعمل تبديل بين القيم
permutation
وهكذا
ثم ناخذ القيمة الثانثة من الجدول
من الواضح اننا لا نحتاج الى ان نقارنها مع القيمة التي قبلها لانها اصغر منها نقارنها مع كل القيم واذا وجدنا قيمة اصغر منها ننقوم بعمل تبديل

اذا تلاحظ فيها هذا الالغوريتم فاننا نحتاج الى دالتين من نوع
for
الدالة الاولى تقوم بتثبيت قيمة الجدول التي نريد مقارنتها ونستعمل فيها المبدا التالي
for i:=1 to n-1

هذه الدالة تقوم باخذ قيمة الجدول فقط
نلاحظ اننا اخذنا
n-1
ولم ناخذ
n
iهذا نفمه من الدالة الثانثة
نلاحظ ان الدالة الثانية تنطلق من
i+1 to n
لماذا
لاننا لا نحتاج الى مقارنة قيمة
i
مع نفسها
فاذا كانت قيمة
i=3
n=10
فاننا نقارن القيمة الثالثة من الجدول مع القيم 4-5-6-7-8-9-10
من اجل هذا استعملنا
i+1

الدالة الاولى انتهت عند
n-1
والدالة الثانثة انتهت عند
n
لماذا؟
حتى نقارن بين القيم
فاذا انتهت قيمة الدالة الاولى عند
n
فان الدالة الاثنة لن تقوم بمقارنة قيمة
n
من اجل اجل هذا نجعل الدالة الاولى تنتهي عند
n-1
والتي تساوي 9
فالدالة الثانية تسمح بمقارنة القيمة 9 للجدول مع القيمة العاشرة
اذا كانت القيمة التاسعة اصغر من العشارة تبقي على نفس الترتيب واذا كانت اكبر تغير الترتيب
فتصبح القيمة التاسعة في المكان العاشرة والقيمة العاشرة في المكان التاسع

لفهم اكثر
سوف اعطيك اللغوريتم وارجوا ان تضعه في برنامج

اللغوريتم لديك الان قم ببرمجته








 


رد مع اقتباس