المهارات الرقمية7 فصل ثاني

السابع

icon

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

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

ومن الطرق التي يمكن تمثيل الخوازرمية من خلالهاثلاثة طرق موضحة بالشكل التالي:

 

 

اللغة الطبيعية(Natural Language): وفي هذه الطريقة يتم التعبير عن المشكلة من خلال وصفها باللغة التي يتكلمها الشخص دون وجود أي قواعد او قوانين تحكم طريقة الوصف.

 

شبه الرمزية(شبيه الكود)Pseudo code

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

ويمكن تعريفها على انها طريقة تمثيلُ الخوارزميةِ بخطواتٍ مرتبةٍ متسلسلةٍ ومرقمةٍ، تعدُّ هذهِ الطريقةُ سهلةً ومناسبةً لأغلبِ الخوارزمياتِ؛ لأنَّها لا تتطلبُ فهمًا عميقًا للتعليماتِ البرمجيةِ

يجبُ أنْ تبدأَ الخوارزميةُ بِ "أبدًا" أوْ "البدايةِ" ويجبُ أنْ تنتهيَ بِ "أتوقفُ"
أو" النهايةِ".

 

مثال(1)باللغة الانجلبزية

1.start

2: Let Variable Loop be 0 and Variable Doppler be 2

 3: Add 1 to Loop

 4: Multiply Doppler with 2

 5: if Loop < 3 go to step 2

 6: End

 

مثال (2)باللغة العربية

1.البداية

2.ليكن المتغير sum يساوي 0 والمتغير add يساوي 2

3.أضف 1 إلى المتغير sum

4.اجمع قيمة sum مع قيمة add

5.النهاية

 

مخطط سير العمليات (Flowchart)

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

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

 

أنواعُ مخططاتِ سيرِ العملياتِ (Flowcharts  )

هناك ثلاثة أنواع رئيسة لمخططات سير العمليات هي:

1.مخطط سير العمليات التتابعية

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

 

مثال(1)

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

 

حل مثال (1)

حسب الأشكال التي تم التعرف عليها، نحتاج هنا الى:

1.شكل البداية

2.شكل إدخال العلامات (حيث يرمز للعلامات بالرمز M1,M2,3)

3.شكل لغايات القيام بالعملية الحسابية المطلوبة(جمع العلامات ومن ثم قسمتها على 3)

4.شكل لغايات عملية طباعة العلامات والمعدل

5.شكل التوقف

 

وفيما يلي شكل الخوارزمية التي سوف تنتج معنا

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

 

2.مخطط سير العمليات التفرعية

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

مثال (1)

أمثل خوارزمية تتعامل مع آلة صنع القهوة والشاي لغايات اختيار مشروبك المفضل من خلال مخطط سير العمليات.

 

حل مثال (1)

حسب الأشكال التي تم التعرف عليها، نحتاج هنا الى

1.شكل البداية

2.شكل إدخال المطلوب ضمن خيارات شاي أو قهوة

3.شكل اتخاذ القرار في حال كان المشروب شاي والعمليات التي تتبع هذا القرار

4.شكل عملية ادخال طلبك للسكر

5.شكل اتخاذ القرار في حال كان المشروب مع سكر أو بدون والعمليات التي تتبع القرار

6.شكل الحصول على المشروب في الكوب

7.شكل انهاء العملية.

 

وفيما يلي شكل الخوارزمية التي سوف تنتج معنا

مثال (2)

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

حل مثال (2)

  1. نحتاج الى عملية إدخال للأرقام الثلاثة المطلوبة،ودعنا نرمز لها بالرموز (a,b,c)
  2. نحتاج الى متغير (كما تعرفنا عليه في الدروس السابقة) لغايات تخزين قيمة العدد الاكبر من بين الاعداد الثلاثة التي قمنا بإدخالها. ودعنا نرمز له بالرمز max
  3. حتى نستطيع معرفة العدد الاكبر بين الاعداد الثلاثة، سوف نقوم في البداية تخزين العدد (a) في المتغير (max) على اساس انه هو العدد الأكبر.
  4. والآن سوف تبدأ عملية مقارنة العدد الموجود في المتغير (max أولا مع العدد (b) ومعرفة اذا كان أكبر منه ام لا.
  5. في حال كان العدد (b) أكبر من (max) سوف يتم استبدال القيمة الموجودة في المتغير (max) بالعدد (b) ويصبح هو الاكبر. ثم ننتقل الى الخطوة 6، وفي حال كان أصغر ننتقل مباشرة الى الخطوة 6 دون تغيير قيمة (max)
  6. والآن سوف تبدأ عملية مقارنة العدد الموجود في المتغير (max)  مع العدد (c) ومعرفة اذا كان أكبر منه ام لا.
  7. في حال كان العدد (c) أكبر من (max) سوف يتم استبدال القيمة الموجودة في المتغير (max) بالعدد (c) ويصبح هو الاكبر. ثم ننتقل الى الخطوة 8، وفي حال لم يكن أكبر، ننتقل مباشرة الى الخطوة 8 دون تغيير قيمة (max)
  8. الآن نقوم بطباعة القيمة الموجودة في (max) والتي تمثل العدد الأكبر
  9. النهاية

وفيما يلي شكل الخوارزمية التي سوف تنتج معنا

 

3.مخطط سير العمليات التكرارية

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

 

مثال(1)

امثل خوارزمية لإدخال 10 اعداد وطباعة مجموعها من خلال مخطط سير العمليات.

حل مثال (1)

1.سوف يتم ادخال الأعداد بشكل متتالي، بحيث يرمز للعدد الذي سوف يتم ادخاله بالمتغير A

2.سوف نحتاج متغير اسمه (C) لغايات تجميع مجموع الاعداد بداخله

3.سوف نحتاج الى عداد يقوم بعد كم عدد قمنا بإدخاله لغايات التوقف عند الوصول الى الرقم 10 نرمز له بالرمز (C)

4.سوف نقوم بإدخال العدد ومن ثم اضافة قيمته الى (sum) ومن ثم اضافة (1) الى قيمة العداد(C)

5.بعد عملية ادخال كل عدد سوف نقوم بمقارنة قيمة العداد (C) مع الرقم (10) ،في حال كان العداد أقل من10 سوف نعمل على تكرار عملية إدخال عدد جديد، وإضافته الى (sum) ومن ثم إضافة 1 على قيمة العداد

6.في حال كان العداد =10 سوف نقوم بطباعة قيمة(sum) ومن ثم انهاء العملية.

وفيما يلي شكل الخوارزمية التي سوف تنتج معنا

 

تنفيذُ الخوارزمياتِ وتحسينُها

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

 وبعد عملية التنفيذ، تبدا مرحلة اختبار فيما إذا كان هذا الكود يعمل بالشكل الصحيح أم لا.

ويمثل الشكل التالي خطوات تنفيذ الخوارزمية وتحسينها:

وفيما يلي توضيح لكل خطوة من هذه الخطوات:

كتابة الكود:ويقصد بها عملية تحويل الخوارزمية الى كود حقيقي من خلال استخدام احدى لغات البرمجة وكتابة التعليمات بشكل واضح ومنظم.

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

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

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

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

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

 

ولنتذكر بأنّ عملية تحسين الخوارزمية تهدف الى

 

Jo Academy Logo