الجمعة، 6 نوفمبر 2020

كيفية كتابة الخوارزميات

 

كيفية كتابة الخوارزميات

ما هي طرق / خطوات كتابة الخوارزمية؟

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


إكتب خوارزمية للحصول على المتوسط الحسابي لرقمين وقم بطباعة النتيجة

1. تعريف المشكلة - Problem Definition

يعتبر تعريف أو تحديد المشكلة هو أولى خطوات الحل للمشكلة، حيث يتم تحديد المدخلات والمخرجات بكل دقة ووضوح على شكل متغيرات - Variables، فيتوجب عليك كمبرمج أن تقوم بتحديد المفاهيم الخاصة بالمشكلة على هيئة متغيرات ذات إسم محدد ونوع بيانات محدد، حيث يتم الإشارة إلى هذه البيانات في الخوارزمية من خلال الإسم، ونوع البيانات يحدد العمليات التي يمكن إجراؤها على البيانات، يوجد العديد من أنواع البيانات ولكن يمكنك أن تصنف البيانات في نوعين رئيسيين وهم البيانات الرقمية والبيانات النصية.


في هذه الخطوة عادة ما يتم إنشاء جدول بالبيانات - Data Table، بحيث يحتوي هذا الجدول على تصنيفين رئيسيين وهم متغيرات المدخلات - Input Variables، متغيرات النتيجة - Output Variables.


وبتطبيق هذه الخطوة على المثال، نحصل على جدول البيانات التالي


المدخلات


X الرقم الأول


Y الرقم الثاني


المخرجات


average المتوسط الحسابي للرقمين


2. تصميم / كتابة الخوارزمية - Writing an Algorithm

في هذه الخطوة يجب على المبرمج التفكير في طريقة حل المشكلة، ثم تقسيم هذه الطريقة على مجموعة خطوات، بحيث تقوم كل خطوة بإجراء عملية واحدة فقط، ويجب الأخذ في الإعتبار ترتيب هذه الخطوات، لأن الكمبيوتر يقوم بتنفيذ هذه الخطوات واحدة تلو الأخرى بالترتيب الذي يقوم به المبرمج، ويجوز للمبرمج أن يقوم بتعريف متغيرات جديدة لتساعده في حل المشكلة، وفي هذه الحالة تسمى هذه المتغيرات بـ متغيرات البرنامج - Program Variables، وهذه المتغيرات لاتعد من المدخلات ولا من المخرجات.


وقبل أن نبدأ في كتابة الخوارزمية يجب أن تعلم أن هناك طريقتين لكتابة الخوارزمية، وهم كالتالي


الطريقة الكتابية - شبيهة الكود - Pseudo Code

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


Start


Read: X, Y


sum = X + Y


average = sum / 2


Write: average


End


إبدأ


إقرأ المدخلات: X, Y


sum = X + Y


average = sum / 2


إطبع المتغير: average


النهاية


المخطط الإنسيابي - خريطة التدفق - Program Flowchart

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



 

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


وقد خصصت مقال منفصل لـ شرح خرائط التدفق / المخطط الإنسيابي وشرح أهم الأشكال المستخدمة في تمثيل خطوات حل المشكلة وإستخدامات كل شكل في خريطة التدفق.


المخطط الإنسيابي - خريطة التدفق - flowchart - لـ خوارزمية المتوسط الحسابي لرقمين

3. تتبع / مراجعة الخوارزمية - Tracing the Algorithm

في هذه الخطوة نقوم بإختبار الخوارزمية التي قمنا بكتابتها، وذلك من خلال إدخال بيانات معروفة النتيجة مسبقا، خطوة بخطوة لقياس مدى صحة وكفاءة الخوارزمية، وبتطبيق ذلك على المثال سوف نستخدم الرقمين 7 و 3 حيث معروف أن المتوسط الحسابي الخاص بهم هو الرقم 5، ويتم ذلك على خطوات منفصلة كالتالي


إدخال البيانات بحيث يصبح المتغير X يساوي الرقم 7، والمتغير Y يساوي الرقم 3

حساب حاصل جمع الرقمين X و Y وتخزين نتيجة الجمع في المتغير sum، لتصبح قيمته تساوي الرقم 10

حساب قيمة المتوسط الحسابي وذلك بقسمة قيمة المتغير sum على العدد 2 وهو مجموع البيانات التي تم إدخالها، ثم تخزين النتيجة في المتغير average، والتي سوف تصبح 5 وهو حاصل قسمة الرقم 10 على الرقم 2

طباعة قيمة المتغير average

إنهاء البرنامج

عند قراءة الخطوات السابقة قد تشعر ببعض الملل وذلك لأنك كإنسان بمجرد أن يطلب منك حساب المتوسط الحسابي للرقمين 7 و 3 قد تجيب مباشرة بأن النتيجة هي 5، ولكن كما أخبرتك عن القاعدة الأساسية لتعلم الخوارزميات، فكر مثل الكمبيوتر، الكمبيوتر يجب إعطاؤه التعليمات واحدة تلو الأخرى بالترتيب وبالتفصيل حتى يتمكن من حساب أو حل أو تطبيق أي خوارزمية، وذلك هو الهدف الأساسي من تعلم الخوارزميات للبرمجة.

 

4. تحويل الخوارزمية إلى برنامج للحاسوب - Writing Code

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


HTML, JavaScript


<!DOCTYPE html>

<html>

<head>

  <meta charset="utf-8" />

  <title>Algorithms</title>

</head>

<body>

  <script type="text/javascript">

    // Read the Value of X

    var X = prompt("The value of X ?", 0);

    // Read the Value of Y

    var Y = prompt("The value of Y ?", 0);

    // Convert X and Y to Numeric Data Type,

    // and Calculate the sum of X and Y

    var sum = +X + +Y;

    // Calculate the Average of X and Y

    var average = sum / 2;

    // Print the Value of Average to the User

    alert("The average of X:" + X + " and Y:" + Y + " is " + average);

  </script>

</body>

</html>

ولكي تفهم اكثر 

    شاهد الفيديو👇