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