]]>
خواطر :
قالوا الصبرُ علاج للآلام... فزادت صبرُ السنين للجراح آلاما...   (بلقسام حمدان العربي الإدريسي) . 

الخوارزميات و خرائط التدفق

بواسطة: ابوبكر فتحي السباعي  |  بتاريخ: 2012-11-15 ، الوقت: 22:31:06
  • تقييم المقالة:

 

المعهد العالي للمهن الشاملة

 

مصراته – ليبيا

 

 

 

 

 

 

 

 

 

عنوان المحاضرة (2)

 

الخوارزميات و خرائط التدفق

 

 

 

 

 

 

 

 

 

 

 

المادة / مبادئ برمجة الحاسوب 1

                                      قسم هندسة التحكم الآلي    ---     قسم الاتصالات

السنة الأولى   الفصل الدراسي خريف 2012/2013 ميلادي

أستاذ / ابوبكر فتحي السباعي .

 

 

 

 

 

الباب الثاني

 

الخوارزميات و خرائط التدفق

 

    مقدمة . الخوارزمية الصفات الأساسية للخوارزمية خرائط التدفق و أنوعها  . أمثلة متنوعة عن حل المسائل باستخدام الخوارزميات و خرائط التدفق التمارين للمناقشة

 مـــقــــدمــــــة :-

             يتميز الحاسوب بقدرته على إنجاز العمليات الحسابية حسب الأوامر و التعليماتالمعطاة له بسرعة فائقة و بدقة متناهية و كذلك بإمكانياته الكبيرة في حفظ المعلوماتالواسعة و المختلفة التي يعجز الإنسان عن حفظها و استعادتها باستعمال ذاكرتهالعادية. فهو يعجز عن أن يقوم بشكل ذاتي بحل أي مسألة مهما كانت بسيطة، أي أن عملهينحصر في إنجاز الحلول للمسائل التي تبرمج له بشكل صحيح يتوافق مع الأسس العلميةالصحيحة التي تعتد عليها هذه الحلول, لذا فقد تم دراسة الخطوات التمهيدية لحل المسائل في الفصل الأول و سوف نستعرض في هذا الفصل المرحلة الثانية من الخطوات الواجب إتباعها لتلقين الحاسوب بطريق الحل لأي مسألة بتوضيحالخوارزميات و خرائط سير العمليات (خرائط التدفق)التي تشكل العنصر الأساسي لكيفية البرمجةو هي أيضا تمثل المرحلة المهمة في تفصيل خطوات الحل للمبرمج و التي يجب عليه مراعاتها عن البدء في كتابة البرنامج بإحدى لغات البرمجة .

الخـــــوارزمـــيــــات

تعتبر الخوارزميات من أهم العلوم التي يجب دراستها في مجال برمجة الحاسوب و هو علم يشمل جميع التخصصات العلمية و الأدبية و يمثل وسيلة التخاطب الوحيدة بين جميع التخصصات و المبرمجين لحل إي مسألة باستخدام الحاسوب , و قد أسسها العالم المسلم محمد بن مسلم الخوارزمي , و الخوارزميات تبحث عن حلول لمسائل معينة باستخدام الحاسوب في مجال ما بغية تحويلها إلى برامج ، كما تبحث أيضا في إيجاد الحل الأفضل في حال تعدد الحلول                    و قد عرف العالم كنوث الخوارزمية في كتابه "فن البرمجة" بأنها مجموعة من القواعد التي تتميز بالصفات التالية:

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

و من هنا تعرف الخوارزمية بأنها ... مجموعة من الخطوات أو التعليمات المرتبة لتنفيذ عملية حسابية أو منطقية أو غيرها من العمليات بشكل تتابعي و متسلسل و منظم .

مثـــال رقم (1)

    أذا أردنا أن نوجد متوسط درجات الحرارة T1,T2,T3فأن خطوات الحل يمكن ترتيبها في خوارزمية  على النحو التالي :

الحل ...............

    أبـــــــــداء أقرأ قيم درجات الحرارة T1,T2,T3 احسب متوسط درجات الحرارة AVمن القانون التالي :

AV=(T1+T2+T3)/3

 

    أطبــــــــــــــــــع قيمةAV توقــــــــــــــف

مثال رقم (2)

      أذا أرد شخص حساب زكاة رأس ماله الذي بلغ  الحول إي عام قمري فأن خطوات الحل يمكن ترتيبها في خوارزمية على النحو التالي :

الحل ..............

    أبـــــــــــــــداء أقرأ قيمة رأس المال الذي بحوزة الشخص و بلغ الحول   ( C ) أحسب زكاة رأس المال     Z= C*2.5/100 أطبــــــــــع   (Z) توقــــــــــــف

مثال رقم (3)

          أكتب خوارزمية الحل إيجاد الوسط الحسابي لأعمار طلاب شعبتك.

الحل ...............

        نفترض أن إجمالي عدد الطلاب =Nونستخدم عددًا لرقم كل طالب ونرمز له بالرمز Iونرمز لعمر الطالب بXونستخدم مجمعًا لأعمار الطلبة ونرمز له بالرمزSونستخدم الرمز Aليدل على معدل أعمار الطلبة.     

    أبــــــــــــداء أجعل قيمة I=S=0 أقرأ عدد الطلاب N أقرأ عمر الطالب X أجعل     I=I+1 أجعل  S=S+X أذا كان I<>Nأذهب إلي الخطوة 4            ملاحظة / (<>) و يقصد بها لا تساوي أحسب متوسط الأعمار AV=S/N أطـــــــــــبع AV   توقــــــف

مثال رقم (4)

     أكتب خوارزمية الحل لوصف عمل النجار الذي يرغب تقطيع مجموعة من القطع الخشبية طول كل منها يزيد عن3 متر إلى قطع صغيرة طول الواحدة منها يساوي 3 متر :

الحل .................

    ابدأ. خذ قطعة. اقطع منها قطعة طولها 3 متر. هل المتبقي يزيد عن 3 متر؟
    إذا كان الجواب نعم فاذهب إلى الخطوة(3). وإذا كان الجواب لا فاذهب إلى الخطوة (5). هل هناك مزيد من القطع المراد تقطيعها ؟ إن كان الجواب نعم فاذهب إلى الخطوة(2) وإن كان لا فاذهب إلى الخطوة(6). توقف.

مثال رقم (5)

اكتب خوارزمية الحل لطباعة الأعداد الطبيعية من 1 إلى 100 ومربعاتها

الحـــل.....................

    ابدأ. اجعل I=J=0 اجعل I=I+1 اجعل       J=I^2 أطبع J, I إذا كانت  I<>100اذهب إلى الخطوة 3 . توقف

 

خرائط لتدفق أو المخططات الانسيابية

الخوارزمية هي عبارة عن مجموعة من الخطوات المتسلسلة التي تصف بصورة مضبوطة وبدون أي غموض جميع الخطوات الرياضية والمنطقية اللازمة لحل مسألة ما. ولكن هذا الوصف في كثير من الأحيان يكون معقداَ وصعب الملاحظة والتتبع لذلك فإن خريطة سير العمليات (خارطة التدفق )التي تمثل وصفاً تصويرياً لخطوات الخوارزمية تكون أكثر وضوحاً. وخريطة سير العمليات إي خارطة التدفق  تقوم مقام الخوارزمية ويمكن بواسطتها ملاحظة تتبع التسلسل المنطقي لحل المسألة بكل سهولة، وغالباً ما تكون استخراج الخوارزمية من خريطة سير العمليات أسهل بكثير من كتابة الخوارزمية مباشرة.        

و تستخدم خرائط التدفق في بيان خطوات حل المسألة وكيفية ارتباطها ببعض رموز اصطلاحية لتوضيح خطوات الحل و هذه الرموز مبينة في الجدول أذناه :

 

 

كما يمكن استخدام رمز الدائرة للإشارة إلي  أنها منطقة توصيل أو ربط بين عدد من المخططات الفرعية للبرنامج الواحد و هي تأخذ الأشكال التالية :

 

أما الأسهم فهي تستخدم للإشارة إلي تجاه التدفق في الخارطة مع جميع الأشكال الموضحة .

 

 

أهمية استخدام خرائط التدفق

    تعطي صورة متكاملة للخطوات المطلوبة لحل المسائل في ذهن المبرمج , بحيث تمكنه من الإحاطة الكاملة بكل أجزاء المسألة من بدايتها و حتى نهايتها . تساعد المبرمج على تشخيص الأخطاء التي قد تقع في البرنامج و بخاصة الأخطاء المنطقية , و التي يعتمد اكتشافها على وضع التسلسل المنطقي , لخطوات حل المسألة لدى المبرمج . تيسر للمبرمج أمر إدخال إي تعديلات في إي جزء من أجزاء المسألة بسرعة و دون الحاجة لإعادة دراسة المسألة . في المسائل التي تكثر فيها الاحتمالات و التفرعات يصبح أمر متابعتها أمرا شاقا على المبرمج , إذا لم نستعين بمخطط يظهر خطوات الحل الرئيسية بشكل واضح .

أنواع خرائط التدفق

          يمكن تقسيم خرائط التدفق حسب العمليات إلي أربعة أنواع و هي كالتالي :

    العمليات المتتابعة أو البسيطة . العمليات ذات التفرع أو اتخاذ القرار. العمليات التكرارية .

 

 

    العمليات المتتابعة أو البسيطة : -

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

 

مثال رقم (6) ارسم خارطة التدفق لإيجاد مساحة الدائرة .

 

 

أبــــــداء

 

 

أقرأ قيمة R

 

احسب مساحة  C=3.14*R^2

 

 

أصبع C

 

توقف

 

       المرحلة التمهيدية (1)                                        المرحلة (2)

 

فهم المسألة : المسألة هي إيجاد قيمة                       وصف الحل باستخدام خارطة التدفق

مساحة الدائرة C.

مستلزمات حل المسألة :

القانون / *R^2πC=

المعطيات /  و تمثل مدخلات المسألة .

النتائج  / C  و تمثل مخرجات المسألة  .

هذا النوع من خرائط التدفق يطلق عليه بالعلميات المتتابعة أو البسيطة

 

مثال رقم (7)  

 

 

أبــــــداء

 

 

أقرأ N1, N2

 

احسب المجموع  Sum=N1+N2

 

 

أصبع Sum

 

توقف

 

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

 

    المرحلة التمهيدية (1) .                                         المرحلة (2)

فهم المسألة / ايجاد حاصل جمع عددين.                  وصف الحل باستخدام خارطة التدفق

مستلزمات الحل / قانون ... حيث Sum=N1+N2                          

حيث Sumتمثل حاصل الجمع و المخرجات المسألة .

N1,N2هي معطيات المسألة و تمثل المدخلات

 

    العمليات ذات التفرع أو اتخاذ القرار.

 

 

 

اذا كانت x

 

اكبر من  صفر

 

اصغر من  صفر

 

تساوي الصفر

أن إي تفرع يحدث في البرنامج , و أنما يكون بسبب الحاجة إلي اتخاذ قرار, أو مفاضلة بين اختياريين أو أكثر حيث يسير كل اختيار في طريق مستقل عن الأخر (تفرع) , و هنالك ونوعان خرائط التفرع و هي على النحو التالي :

 

    تفرع ذو 3 مسارات ناتج عن 3 اختيارات كما بالشكل ..

 

 

                               

 

هذا النوع يستخدم مع الشروط ذات

 

المسائل الرياضية .                  

 

 

 

 

 

التحقق من حدث ما

 

نعم   yes

 

 

لا   no

 

 

 

 

    تفرع ذو مسارين ناتج عن اختيارين كما بالشكل ......

 

 

هذا النوع من التفرعات يستخدم مع

الشرط المنطقي

 

 

مثال رقم (8)

 اكتب خوارزمية الحل و خارطة التدفق (المخطط الانسيابي) لإيجاد قيمة الدالة F(X)          حيث             F(x)=Xعندما  X>=0   و F(x)=-Xعندما X<=0

    خوارزمية الحل / أقرأ قيمة X أذا كانت قيمة Xاكبر من او تساوي الصفر اذهب الي الخطوة رقم 4. احسب قيمة F(X)حيث F(X)=-Xثم اذهب الي الخطوة رقم 5. احسب قيمة F(X)حيث F(X)=X اطبع قيمة F(X). توقف باستخدام خارطة التدفق /

 

 

 

أبـــــــــدأ

 

أقرأ قيمة X

 

x>=0

 

F(X)=X

 

F(X)=-X

 

اطبع F(x)

 

توقف

 

نعم

 

لا

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

مثال رقم (9)

          ارسم خارطة التدفق و خوارزمية الحل لإيجاد قيمةW حيث أن

                   W=X+1   when x>0.

            W=Sin(X)+5  when x=0

                                                             W=2X-1  when X<0

 

 

أقرأ قيمة X

 

أصبع W

 

توقف

 

 

أبــــــداء

 

 

قيمة     X

 

XZz

 

W=X+1

 

W=sin(x)+5

 

 

  W=2X-1

 

X أكبر من 0

 

X أصغر من 0

 

X=0

** الحل باستخدام خوارزمية الحل .                                   الحل باستخدام خارطة التدفق .

 

    أبــــــــــــــــدأ اقرأ قيمة   X أذا كانت قيمة X  أكبر من 0 اذهب إلي الخطوة رقم 6 . اذا كانت قيمة Xتساوي الصفر اذهب إلي الخطوة رقم 7. احسب قيمة  W= sin(x)+5اذهب إلي الخطوة 8. احسب قيمة1 W=X+اذهب الي الخطوة 8. احسب قيمة W=2X-1. أطبع قيمة W. توقف .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    العمليات التكرارية :

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

الشكل يوضح خرائط الدوران البسيطة التي تستعمل حلقة احدة .

 

 

 

 

العملية A

 

العملية B

 

 

الشرط C

 

 

الشرط D

 

 

 

              الشكل يوضح عينة من الدوران المتعدد الذي يحتوي على عدد من الحلقات .

 

مثال رقم (10) : ارسم خارطة التدفق لتحكم في ملء خزان مياه اتوماتيكيا .

الحل ... من المعلوم أنن عملية ملء الخزان تقوم على فكرة وجود العوامة التي تفتح صنبور التغذية ذاتيا عندما يصل ارتفاع الماء حدا معينا متر واحد مثلا و تعلق صنبور التغذية                   عند وصول مستوى الماء في الخزان إلي الارتفاع المطلوب و بالتالي فإن خطوات الحل تكون على النحو التالي :

الشرح :                                                               خارطة التدفق ...

 

 

ابدأ

 

 

 

1. هل مستوى الماء أقل من متر ؟ إذا كان الجواب

 

 

الشرط

 

     نعم فأذهب إلي الخطوة (2) و إذا كان الجواب لا ,

 

 

 

   فأذهب إلي الخطوة رقم (4) .

 

2.يفتح صنبور التغذية .

3.يملأ الخزان إلي المستوى المطلوب .

 

 

الخزان ممتلي

 

4.أغلق الصنبور (أو حافظ عليه مغلقا ).

 

5.عد إلي الخطوة رقم (1) لفحص مستوى الماء المطلوب

 

 

اغلق الصنبور

    و بشكل دائم .

 

 

 

 

مثال رقم (11)

ارسم خارطة التدفق لإيجاد مجموع الأعداد الصحيحة الأقل من او تساوى 100 .

الحل : .... فهم المسألة و تحديد مستلزمات حلها ...

المسألة هي إيجاد حاصل جمع الأعداد الصحيحة الأقل من او تساوي 100 إي أن القانون هو ...Sum= N1+N2+…………………….N100                  .... و من هنا فأن

معطيا المسألة .. هي قيمة Nكما يجب أن تحتوي المسألة على عداد لضبط عدد مرات التكرار بمعدل واحد صحيح في كل مرة إلي أن تصبح قيمة N=100  . و العداد هو   N=N+1حيث القيمة الافتراضية N=0  و كذلك القيمة Sum  الافتراضية تساوي صفر أيضا و ذلك لضمان تصفير المواقع المخصصة في الذاكرة أنها تساوي صفر في كل مرة نستخدم فيها البرنامج و بالتالي نحصل على ناتج صحيح للمسألة , و المواقع المحددة في الذاكرة في هذه المسألة بعنوان N , Sum.

خارطة التدفق على النحو التالي :

 

 

 

 

 

 

مثال رقم (12)

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

الحل .... المطلوب في هذه المسألة نستخدم N  عداد لحساب عدد الأعداد الفردية التي تم جمعها في البرنامج , Sumتستخدم في إيجاد حاصل جمع هذه الأعداد , كما نستخدم Tكعداد في إظهار وجمع الأعداد الفردية في موقع الذاكرة Sum.

خارطة التدفق .....

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                         التمارين واجب منزلي   ....

 

    اكتب خوارزمية الحل و خارطة التدفق لبرنامج يقرأ  عددين و طباعة العدد الأكبر . اكتب خوارزمية الحل و خارطة التدفق لبرنامج  يقرأ درجة الحرارة بالفهرنهايت و يقوم بتحويلها إلي ما يقابلها بالدرج المئوية , علما بأن القانون المستخدم في تحويل الدرجة الفهرنهايتة إلي مئوية هو C=5/9(F-32) . اكتب خوارزمية الحل و خارطة التدفق لقراءة نصف قطر الدائرة تم يحسب البرنامج كلا : حجم الدائرة  V=4/3*3.14*r^3 مساحة الدائرة A=4*3.14*r^2

         كما يجب ملاحظة أنه في حالة قراءة نصف القطر rقيمة سالبة يظهر رسالة تحذير بأنه يجب أن تكون القيمة موجبة و ينهي البرنامج .

    ارسم خارطة التدفق لإيجاد قيمة الدالة Y  علما بأن قيمة

                    Y= X-X^3/3+X^4/4+X^5/5

    أكتب خوارزمية الحل و خارطة التدفق لطباعة الأعداد الصحيح الأقل من 100 مرتبة مرة بالترتيب التصاعدي و أخرى بالترتيب التنازلي . أكتب خارطة التدفق التي توضح الخطوات التي ترغب في اتباعها منذ استيقاظك و حتى وصولك إلي المعهد و دخولك قاعة الدرس . أكتب خوارزمية الحل و خارطة التدفق لطباعة الأعداد الزوجية الأقل من 50 . أكتب خوارزمية الحل و خارطة التدفق لقراءة عدد و تحديد هل العدد زوجي أم فردي . قم بتحليل المخطط التالية و طباعة الناتج عن قيمة X=3,Y=4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11 قم بتحليل المخطط التالي عند قيمة X=2 , Y=6  و اطبع الناتج .

 

 

 

 

 

 

 

 


... المقالة التالية »

» إضافة تعليق :

لكي تتمكن من التعليق يجب عليك تسجيل الدخول
البريد الالكتروني
كلمة السر  
او يمكنك الدخول والتعليق عن طريق فيسبوك او تويتر
 انشر التعليق على حائطي في فيسبوك او على صفحتي بتويتر
علق مع فيسبوك       الدخول عن طريق تويتر
او يمكنك التعليق بإستخادم اسم مستعار
اسمك المستعار:
آضف تعليق