شرح الموضوع
الخوارزمية:
مجموعة من الخطوات المتسلسلة والتي تصف بدقة ووضوح تام جميع العمليات الرياضية والمنطقية اللازمة لحل مسألة. في كثير من الأحيان كون هذا الوصف في الخوارزمية معقداً نلجأ الي استخدام ما يسمى مخطط سير العمليات Flowchart، والتي بدورها تصف جميع العمليات اللازمة لحل المسألة وعلاقتها ببعضها، وتسلسلها المنطقي باستخدام مجموعة من الأشكال الرمزية الاصطلاحية، و يبين الجدول (1) هذه الأشكال:
| الرمز | الحدث الذي يمثله | مثال | |
|---|---|---|---|
| حدث طرفي Terminal (بدء Start أو انتهاء Stop) خريطة سير العمليات | START / STOP | ||
| عملية حسابية (Process) | LET X+Y | ||
| إدخال / إخراج INPUT \ OUTPUT لبيان إدخال / إخراج معلومات من / إلى الحاسب | PRINT Z / INPUT X, Y | ||
| اتخاذ قرار Decision | X=Y (NO/YES) | ||
| اتجاه تدفق (سريان) Flow line | |||
| تكرار أو دوران Loop | FOR I=1 to 10 |
الجدول (1)
من أهم فوائد استخدام خرائط سير العمليات:
- تمكن المبرمج من الإلمام الكامل بالمسألة المراد حلها والسيطرة على كل أجزائها بحيث تساعده على اكتشاف الأخطاء المنطقية (Logical Errors) و التي تعتبر من أصعب لأخطاء.
- يمكن تعديل البرامج بمجرد النظر الى مخطط سير العمليات.
- يعتبر الاحتفاظ بمخططات سير العمليات لبرامج معينة أمراً مهماً إذ تكون مرجعاً عند إجراء تعديلات عليها أو استخدامها لحل مسائل أخرى مشابهة دون الحاجة إلى الرجوع إلى المبرمج الأول باعتبار أن الحلول الأولى قد صيغت في خطوات واضحة و بسيطة و مفهومة.
- توفير وسيلة مناسبة ومساعدة في كتابة البرامج ذات التفرعات الكثيرة.
و تصنّف خرائط سير العمليات حسب الآتي:
- خرائط التتابع البسيط (Simple sequential Flowchart).
- خرائط التفرع (Branched Flowchart).
- خرائط الدوران البسيط (Loop Flowchart).
- خرائط الدوران المتداخلة (Nested).
و يمكن للبرنامج الواحد أن يشتمل على أكثر من نوع من هذه الأنواع.
أولاً: خرائط التتابع البسيط:
لا يوجد تفرعات Branches ولا حلقات تكرار loops (دوران) في هذا النوع، و يوضح الشكل (1) هذا النوع من المخططات.
Start, Event a, Event b, Event c, Stop

الشكل (1)
كلمة Event تعني الحدث أو العملية المطلوبة.
مثال (1): ارسم مخطط سير العمليات لإيجاد مساحة و محيط دائرة نصف قطرها معلوم R.
مساحة الدائرة =
محيط الدائرة =
و قيمة العددية ثابتة و تساوي 3,14 بينما R متغير.
الخوارزمية:
- ابدأ.
- اقرأ قيمة R.
- ضع قيمة PI = 3,14.
- احسب المساحة (A) من المعادلة A = (PI) R R.
- احسب المحيط (C) من المعادلة C = 2 (PI) R.
- اطبع قيم كل من R, A, C.
- توقف.

Start, Read R, PI = 3.14, A = (PI) (R)2, C = 2 (PI) * R, Print R, A & C, Stop
تمرين (2-1):
ارسم مخطط سير العمليات لحساب قيمة كل من المتغيرات A, B, C من المعادلات الآتية:
إذا علمت أن قيم كل من X, Y معلومة، ثم اطبع قيم كل من X, Y, A, B, C.
تمرين (2-2):
ارسم مخطط سير العمليات لإيجاد حجم و مساحة سطح كرة نصف قطرها معلوم R.
حجم كرة =
ثانياً: خرائط التفرع:
و يحدث التفرع في البرامج بسبب الحاجة لاتخاذ قرار أو مفاضلة بين خيارين أو أكثر، وهناك أسلوبان في تنفيذ القرار كما في الشكل (2).

الشكل (2)
وفي الأغلب فإن خرائط التفرع يمكن أن تأخذ إحدى الصورتين الآتيتين، كما هو مبين في الشكل (3 أ و ب).

الشكل (3-أ) و (3-ب)
واضح من الشكل (3-أ) أن الحدث a سينفذ اذا تحقق الشرط (اذا كان الجواب YES)، ومن ثم ينفذ الحدث b، اما اذا لم يتحقق الشرط، (اذا كان الجواب NO) فينفذ الحدث b، ولا ينفذ الحدث a.
أما في الشكل (3-ب) فالحدث a ينفذ اذا تحقق الشرط اذا كان الجواب (YES)، و الحدث b ينفذ اذا لم يتحقق الشرط (اذا كان الجواب NO).
الخوارزمية:
- ابدأ.
- اقرأ قيمة المتغير X.
- إذا كانت X أكبر أو تساوي صفراً اذهب إلى خطوة (4) وإلا فأذهب إلى الخطوة (5).
- احسب قيمة الاقتران من F(X) = X ثم اذهب إلى الخطوة (6).
- احسب قيمة الاقتران من F(X) = -X.
- اطبع قيمة كل من X, F(X).
- توقف.
Start, Read X, X >= 0, F(X) = -X, F(X) = X, Print X, F(X), STOP
الخوارزمية:
- ابدأ.
- اقرأ قيمة المتغير X.
- إذا كانت X أكبر من صفر فاذهب إلى الخطوة 4 أما إذا كانت ليست أكبر من فاذهب إلى خطوة 5.
- احسب W من المعادلة (1) ثم اذهب إلى الخطوة 8.
- إذا كانت X تساوي صفر فاذهب إلى الخطوة 6 وإلا فاذهب إلى الخطوة 7.
- احسب W من المعادلة (2) ثم اذهب إلى الخطوة 8.
- احسب W من المعادلة (3).
- اطبع قيمة W.
- توقف.
START, Read X, X > 0, X = 0, W=2X^3 - 1, W=X+5, W=X^2 + 1, Print W, STOP
ثالثاً: خرائط حلقات الدوران (التكرار) البسيط:
نحتاج الى هذه الخرائط لإعادة عملية أو مجموعة من العمليات في البرنامج عدداً محدداً أو غير محدد من المرات، ويكون الشكل العام لمثل هذه الخرائط كما في الشكل (4).
الحدث (a) يتكرر تنفيذه في كل دورة طالما كان جواب الشرط YES.
الحدث (a) يتكرر تنفيذه في كل دورة حتى يصبح جواب الشرط YES.

الخوارزمية:
- ابدأ.
- اقرأ نصف قطر الدائرة (R).
- أوجد مساحة الدائرة (A).
- اطبع قيم كل من R, A.
- هل هناك مزيد من الدوائر؟ فإن كان نعم فعد إلى الخطوة (2) وإن كان لا فعد إلى الخطوة (6).
- توقف.
START, Read R, A = 3,14 R^2, Print R, A, More Circles, STOP
رابعاً: العداد
في كثير من الأحيان نحتاج عند كتابة برامج إلى العد Counting، فقد نريد مثلاً أن نعد الطلاب في الصف، وقد تكون هذه العملية سهلة للإنسان لأنها أصبحت ضمن قدراته العقلية التي يكتسبها منذ الطفولة، إلا أن الحاسوب يحتاج إلى تصميم خوارزمية للعد Counting Algorithm تتضمن خطوات معينة إذا اتبعها المبرمج استطاع أن يعد. ويمكن تحديد الخطوات التي يتبعها الحاسوب حتى يتمكن من العد في الخطوات الأساسية:
- اجعل العداد مساوياً للقيمة البدائية و في الأغلب تكون صفر. قيمة العداد = 0.
- اجعل القيمة الجديدة للعداد تساوي القيمة القديمة لها زائد قيمة الزيادة ولتكن 1 مثلاً: قيمة العداد (الجديدة) = قيمة العداد (القديمة) + 1.
- تنفيذ مجموعة من الاوامر.
- كرر الخطوات ابتداء من الخطوة 2.
- عند وصول العداد الى قيمة معينة يتم الخروج من حلقة التكرار.
الخوارزمية:
- ابدأ.
- اجعل I=0.
- اجعل I=I+1.
- اجعل J=I^2.
- اطبع I, J.
- إذا كانت I=100 اذهب إلى الخطوة 7 وإلا اذهب إلى الخطوة 3.
- توقف.
START, I = 0, I = I + 1, J = I^2, PRINT I, J, I = 100, STOP تمرين (6-2): ارسم مخطط سير العمليات لإيجاد مجموع الأعداد من 1 الى 20 و طباعته.
تمرين (7-2): ارسم مخطط سير العمليات لإيجاد عدد الأعداد الزوجية في المصفوفة الاحادية الاتية. [ 2، 5، 10، 20، 23، 8، 7، 22، 9، 15 ]
تمرين (8-2): ارسم مخطط سير العمليات لإيجاد مجموع الأعداد الزوجية من 1 الى 100 و طباعته، ثم قم بتعديل المخطط للحصول على مخطط جديد يقوم بطباعة مجموع الاعداد الفردية و الزوجية في نفس المخطط.
تمرين (9-2): ارسم مخطط سير العمليات لإيجاد عدد الأعداد الزوجية، وعدد الاعداد الزوجية في المصفوفة الاحادية الاتية. [ 7، 15، 28، 14، 27، 17، 32، 99، 65 ] .
تمرين (10-2): تتبع مخطط سير العمليات الاتي، ثم قم بكتابة خوارزمية الحل له وحدد وظيفته.