📘 شرح الدرس الوحدة 1: حل المشكلات وتصميم الخوارزميات · الدرس 2 من 17
الدرس 2
📋 في الخطة: الوحدة 2. تصميم الخوارزميات · ⏱ 1 نظري + 4 عملي

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

نصف خطوات الحل بالسودوكود وخرائط التدفق، ثم نحوّلها إلى برنامج.

if true ✓ false → else
بعد هذا الدرس ستستطيع أن:
  • تعرّف الخوارزمية وتذكر خصائصها.
  • تكتب خوارزمية بالسودوكود لمسألة بسيطة.
  • ترسم خريطة تدفق بأشكالها الصحيحة للتسلسل والقرار والتكرار.
  • تحوّل خوارزمية إلى خطوات برنامج.

١ما هي الخوارزمية؟

الخوارزمية (Algorithm) مجموعة من الخطوات المرتّبة والواضحة التي تحلّ مشكلة محددة. بعد أن نفكّك المشكلة (الدرس السابق) نكتب خوارزمية تحدد ترتيب تنفيذ المهام.

وصفة الطبخ خوارزمية، وتعليمات تركيب قطعة أثاث خوارزمية، وخطوات سحب النقود من الصرّاف خوارزمية.

خاصية الخوارزمية الجيدةمعناها
واضحة ومحددةكل خطوة لها معنى واحد لا يحتمل التأويل
مرتّبةالخطوات تُنفَّذ بتسلسل معروف
منتهيةتتوقف بعد عدد محدود من الخطوات
لها مدخلات ومخرجاتتستقبل بيانات وتنتج نتيجة
فعّالةكل خطوة يمكن تنفيذها فعلًا

نصف الخوارزمية بطريقتين رئيسيتين: السودوكود (نص منظم) وخريطة التدفق (رسم).

٢السودوكود Pseudocode

السودوكود كتابة خطوات الحل بلغة قريبة من لغة البشر، لكن بصياغة منظمة تشبه البرمجة. لا يُنفَّذ على الحاسب، بل يساعدك على التفكير قبل الكود. هذه الكلمات التي نستخدمها في المقرر:

بالعربيةبالإنجليزيةالاستخدام
ابدأ / توقفSTART / ENDبداية الخوارزمية ونهايتها
اقرأ ... وخزنه فيREAD / INPUTاستقبال قيمة من المستخدم
اطبعPRINT / OUTPUTعرض قيمة أو رسالة
احسب أو x = ...SET / ←إسناد قيمة إلى متغير
إذا كان ... وإلاIF ... ELSEاتخاذ قرار
طالما / كرّرWHILE / FORتكرار خطوات

مثال: متوسط ثلاثة أعداد

  1. ابدأ
  2. اقرأ ثلاثة أعداد وخزنها في a و b و c
  3. احسب المجموع: sum = a + b + c
  4. احسب المتوسط: avg = sum / 3
  5. اطبع avg
  6. توقف
  1. START
  2. READ a, b, c
  3. SET sum ← a + b + c
  4. SET avg ← sum / 3
  5. PRINT avg
  6. END

٣خرائط التدفق Flowcharts

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

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

١. التسلسل: متوسط ثلاثة أعداد

ابدأاقرأ ⁦a⁩ ، ⁦b⁩ ، ⁦c⁩sum = a + b + cavg = sum / 3اطبع ⁦avg⁩توقف
خريطة التدفق

٢. القرار: ناجح أم راسب

  1. ابدأ
  2. اقرأ الدرجة وخزنها في n
  3. إذا كان n >= 60 :
  4. اطبع «ناجح»
  5. وإلا:
  6. اطبع «راسب»
  7. توقف
ابدأاقرأ ⁦n⁩n >= 60نعماطبع «ناجح»لااطبع «راسب»توقف
خريطة التدفق

٣. التكرار: مجموع الأعداد من 1 إلى n

  1. ابدأ
  2. اقرأ n
  3. sum = 0
  4. i = 1
  5. طالما i <= n :
  6. sum = sum + i
  7. i = i + 1
  8. اطبع sum
  9. توقف
ابدأاقرأ ⁦n⁩sum = 0i = 1i <= nنعمsum = sum + ii = i + 1لااطبع ⁦sum⁩توقف
خريطة التدفق

لاحظ السهم الراجع إلى المعيّن: هو ما يصنع التكرار. وعندما يصبح الشرط «لا» يخرج التنفيذ من الحلقة.

٤من الخوارزمية إلى البرنامج

بعد أن تكتب الخوارزمية يصبح تحويلها إلى كود عملية ترجمة شبه مباشرة: كل خطوة تقابل سطرًا أو أكثر. قارن الأعمدة الثلاثة لمسألة «زوجي أم فردي»:

السودوكود

  1. ابدأ
  2. اقرأ الرقم وخزنه في n
  3. إذا كان n % 2 == 0 :
  4. اطبع «زوجي»
  5. وإلا:
  6. اطبع «فردي»
  7. توقف

خريطة التدفق

ابدأاقرأ ⁦n⁩n % 2 == 0نعماطبع «زوجي»لااطبع «فردي»توقف

جافا

snippet
Scanner in = new Scanner(System.in);int n = in.nextInt();if (n % 2 == 0)    System.out.println("زوجي");else    System.out.println("فردي");

توقّع وتحقّق

أي شكل في خريطة التدفق يمثل «اقرأ العدد»؟

الإدخال والإخراج يُرسمان بمتوازي الأضلاع.

أي شكل يمثل سؤالًا جوابه نعم أو لا؟

المعيّن هو شكل القرار.

خوارزمية لا تتوقف أبدًا تفتقد خاصية:

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

في السودوكود، كيف نكتب الخطوات التابعة لشرط؟

الإزاحة توضح أن الخطوات جزء من الشرط.

ما الذي يصنع التكرار في خريطة التدفق؟

السهم الراجع إلى المعيّن هو الحلقة.

الخلاصة

انتقل إلى تقييم الدرسأسئلة الاختيار، وصح وخطأ، وأكمل الفراغات، والأسئلة العملية.ابدأ التقييم ←