شرح الموضوع
الخوارزميات ومخططات سير العمليات
المطلوب فقط لجميع التخصصات رسم مخططات سير العمليات، أما كتابة الخوارزميات فهي لتسهيل رسم مخططات سير العمليات.
الخوارزمية
مجموعة من الخطوات المتسلسلة والتي تصف بدقة ووضوح تام جميع العمليات الرياضية والمنطقية اللازمة لحل مسألة. في كثير من الأحيان كون هذا الوصف في الخوارزمية معقداً نلجأ الى استخدام ما يسمى مخطط سير العمليات Flowchart، والتي بدورها تصف جميع العمليات اللازمة لحل المسألة وعلاقتها ببعضها، و تسلسلها المنطقي باستخدام مجموعة من الأشكال الاصطلاحية، و يبين الجدول (١) هذه الأشكال:
| الرمز | الحدث الذي يمثله | مثال |
|---|---|---|
| حدث طرفي Terminal لبيان بدء (Start) أو انتهاء (Stop) خريطة سير العمليات | START / STOP |
|---|---|
| عملية حسابية (Process) | LET X+Y |
|---|---|
| إدخال/إخراج INPUT \ OUTPUT لبيان إدخال/إخراج معلومات من/إلى الحاسب | PRINT Z / INPUT X, Y |
|---|---|
| اتخاذ قرار Decision | NO X=Y YES |
|---|---|
| اتجاه تدفق (سريان) Flow line | |
|---|---|
| تكرار أو دوران Loop | FOR I=1 to 10 |
|---|
الجدول (١)
من أهم فوائد استخدام خرائط سير العمليات:
- تمكن المبرمج من الإلمام الكامل بالمسألة المراد حلها والسيطرة على كل أجزائها بحيث تساعده على اكتشاف الأخطاء المنطقية (Logical Errors) والتي تعتبر من أصعب للأخطاء.
- يمكن تعديل البرامج بمجرد النظر الى مخطط سير العمليات.
- يعتبر الاحتفاظ بمخططات سير العمليات لبرامج معينة أمراً مهماً إذ تكون مرجعاً عند إجراء تعديلات عليها أو استخدامها لحل مسائل أخرى مشابهة دون الحاجة إلى الرجوع إلى المبرمج الأول باعتبار أن الحلول الأولى قد صيغت في خطوات واضحة و بسيطة و مفهومة.
- توفير وسيلة مناسبة ومساعدة في كتابة البرامج ذات التفرعات الكثيرة.
و تصنّف خرائط سير العمليات حسب الآتي:
- خرائط التتابع البسيط (Simple sequential Flowchart).
- خرائط التفرع (Branched Flowchart).
- خرائط الدوران البسيط (Loop Flowchart).
- خرائط الدوران المتداخلة (Nested).
و يمكن للبرنامج الواحد أن يشتمل على أكثر من نوع من هذه الأنواع.
أولاً: خرائط التتابع البسيط:
لا يوجد تفرعات ولا حلقات تكرار loops ( دوران) في هذا النوع، و يوضح الشكل (١) هذا النوع من المخططات.
الشكل (١) كلمة Event تعني الحدث أو العملية المطلوبة. مثال (١): ارسم مخطط سير العمليات لإيجاد مساحة و محيط دائرة نصف قطرها معلوم R. مساحة الدائرة = محيط الدائرة = و قيمة العددية ثابتة وتساوي 3,14 بينما R متغير.
الخوارزمية:
- ابدأ.
- اقرأ قيمة R.
- ضع قيمة PI = 3,14
- احسب المساحة (A) من المعادلة .
- احسب المحيط (C) من المعادلة .
- اطبع قيم كل من C, A, R.
- توقف.
تمرين (2-1):
ارسم مخطط سير العمليات لحساب قيمة كل من المتغيرات A, B, C من المعادلات الآتية: إذا علمت أن قيم كل من X, Y معلومة، ثم اطبع قيم كل من C, B, A, Y, X.
تمرين (2-2):
ارسم مخطط سير العمليات لإيجاد حجم و مساحة سطح كرة نصف قطرها معلوم R. حجم كرة = مساحة سطح الكرة = و قيمة العددية ثابتة وتساوي 3,14 بينما R متغير.
ثانياً خرائط التفرع
و يحدث التفرع في البرامج بسبب الحاجة لاتخاذ قرار أو مفاضلة بين خيارين أو أكثر، وهناك أسلوبان في تنفيذ القرار كما في الشكل (٢).
الشكل (٢) وفي الأغلب فإن خرائط التفرع يمكن أن تأخذ إحدى الصورتين الآتيتين، كما هو مبين في الشكل (٣أ و٣ب).
الشكل (٣-أ) الشكل (٣-ب) واضح من الشكل (٣-أ) أن الحدث a سينفذ اذا تحقق الشرط (اذا كان الجواب YES)، ومن ثم ينفذ الحدث b، اما اذا لم يتحقق الشرط، (اذا كان الجواب NO) فينفذ الحدث b، ولا ينفذ الحدث a. اما في الشكل (٣-ب) فالحدث a ينفذ اذا تحقق الشرط اذا كان الجواب (YES)، و الحدث b ينفذ اذا لم يتحقق الشرط (اذا كان الجواب NO).
مثال (٢): ارسم مخطط سير العمليات لإيجاد قيمة الاقتران F(x) حيث:
- ابدأ
- اقرأ قيمة المتغير X.
- إذا كانت X أكبر أو تساوي صفراً اذهب إلى خطوة (٤) وإلا فأذهب إلى الخطوة (٥).
- احسب قيمة الاقتران من ثم اذهب إلى الخطوة (٦).
- احسب قيمة الاقتران من .
- اطبع قيمة كل من X, F(X).
- توقف.
مثال (٣): ارسم مخطط سير العمليات لحساب قيمة W طبقاً للمعادلات الآتية علماً بأن قيمة المتغير X معلومة:
- ابدأ.
- اقرأ قيمة المتغير X.
- إذا كانت X أكبر من صفر فاذهب إلى الخطوة 4 أما إذا كانت ليست أكبر من صفر فاذهب إلى خطوة 5.
- احسب W من المعادلة (1) ثم اذهب إلى الخطوة 8.
- إذا كانت X تساوي صفر فاذهب إلى الخطوة 6 وإلا فاذهب إلى الخطوة 7.
- احسب W من المعادلة (2) ثم اذهب إلى الخطوة 8.
- احسب W من المعادلة (3).
- اطبع قيمة W.
- توقف.
تمرين (3-2): ارسم مخطط سير العمليات لإيجاد العدد الأكبر بين ثلاث ارقام.
تمرين (4-2): ارسم مخطط سير العمليات لحساب قيمة F طبقاً للمعادلات الآتية علماً بأن قيمة المتغير X معلومة:
ثالثاً: خرائط حلقات الدوران (التكرار) البسيط:
نحتاج الى هذه الخرائط لإعادة عملية أو مجموعة من العمليات في البرنامج عدداً محدداً أو غير محدد من المرات، ويكون الشكل العام لمثل هذه الخرائط كما في الشكل (٤).
الحدث (a) يتكرر تنفيذه في كل دورة طالما كان جواب الشرط YES. الحدث (a) يتكرر تنفيذه في كل دورة حتى يصبح جواب الشرط YES. مثال (٤): ارسم مخطط سير العمليات لإيجاد مساحة مجموعة من الدوائر أنصاف أقطارها معلومة.
- ابدأ.
- اقرأ نصف قطر الدائرة (R).
- أوجد مساحة الدائرة (A).
- اطبع قيم كل من R, A.
- هل هناك مزيد من الدوائر؟ فإن كان نعم فعد إلى الخطوة (٢) وإن كان لا فعد إلى الخطوة (٦).
- توقف.
تمرين (5-2): ارسم مخطط سير العمليات لإيجاد حجم مجموعة من الأسطوانات أنصاف أقطارها وارتفاعها معلومة.
رابعاً: العداد
في كثير من الأحيان نحتاج عند كتابة برامج إلى العد Counting، فقد نريد مثلاً أن نعد الطلاب في الصف، وقد تكون هذه العملية سهلة للإنسان لأنها أصبحت ضمن قدراته العقلية التي يكتسبها منذ الطفولة، إلا أن الحاسوب يحتاج إلى تصميم خوارزمية للعد Counting Algorithm تتضمن خطوات معينة إذا اتبعها المبرمج استطاع أن يعد. ويمكن تحديد الخطوات التي يتبعها الحاسوب حتى يتمكن من العد في الخطوات الأساسية:
- اجعل العداد مساوياً للقيمة البدائية و في الأغلب تكون صفر.
قيمة العداد = ٠
- اجعل القيمة الجديدة للعداد تساوي القيمة القديمة لها زائد قيمة الزيادة ولتكن ١ مثلاً:
قيمة العداد (الجديدة) = قيمة العداد (القديمة) + ١
- تنفيذ مجموعة من الاوامر.
- كرر الخطوات ابتداء من الخطوة ٢.
- عند وصول العداد الى قيمة معينة يتم الخروج من حلقة التكرار.
مثال (٥): ارسم مخطط سير العمليات التي يتبعها الحاسب لطباعة الأعداد الطبيعية من ١ إلى ١٠٠ ومربعاتها.
- ابدأ.
- اجعل I=0.
- اجعل I=I+1.
- اجعل J=I^2.
- اطبع I, J.
- إذا كانت I=100 اذهب إلى الخطوة ٧ وإلا اذهب إلى الخطوة ٣.
- توقف.
تمرين (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، 8، 17، 32، 99، 65 ]
تمرين (10-2): تتبع مخطط سير العمليات الاتي، ثم قم بكتابة خوارزمية للحل له وحدد وظيفته.