أهم المعلومات عن معنى Algorithm

مقال بسيط باذن الله عن كل ما يخص ال Algorithms وكل ما تحتاج معرفته من معلومات وأمثلة وتجارب وكل ما تريد.

المعنى الحرفي والتسمية

كلمة Algorithm ترجمتها خوارزمية وجمعها خوارزميات وبالانجليزية Algorithms والخوارزميات مصطلح عربي يرجع إلى العالم المسلم محمد بن موسى الخوارزمي والذي كان مبدع في الرياضيات والفلك وهو الذي وضع مباديء علم الجبر.

ما هي الخوارزمية Algorithm

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

يتم كتابة الخوارزمية Algorithm بواسطة Pseudo Code أو Flow Chart

ما هو Pseudo Code

المعنى الحرفي أولا كلمة Pseudo تعبر عن الكثير من المعاني وكلهم ينطبق عليهم نفس الفكرة ( شبيه – مستعار – مزيف ) هو عبارة عن وصف ل Source Code في تطبيق برمجي أو Algorithm مكتوب بلغة مفهومة للبشر مثلا Plain English بنفس بنية ال Code البرمجي بمعنى أنه يوجد فيه Indentation بنفس طريقة كتابة ال Code العادي ولهذا يطلق عليه Pseudo Code لأنه شبيه بالكود, وبعد كتابة هذا الوصف الخاص بال Algorithm يمكنك تطبيقه بلغة البرمجة التي تختارها. وفيما يلي أكثر من مثال على كتابة Pseudo Code خاص بخوارزمية بسيطة جدا لتوضيح الفكرة وبعدها تطبيقها بأكثر من لغة برمجة.

مثال بسيط جدا ل Pseudo Code

تنفيذ الخوارزمية بواسطة لغات PHP, Python, JavaScript
Python
JavaScript
PHP

مثال بسيط آخر بإضافة شرط Pseudo Code

تنفيذ الخوارزمية بواسطة لغات PHP, Python, JavaScript
Python
JavaScript
PHP

ال Notation الخاصة ب Pseudo Code

هي عبارة عن الرموز التي يتم إستخدامها عند كتابة ال Pseudo Code ولا توجد شروط معية ولا قوانين ولا معايير ثابتة تجبرك على كتابتها ولكنها مهمة وهذه أشهر ال Notations الخاصة بال Pseudo Code وشرحها كالتالي:
Input القيمة المدخلة من المستخدم
Output القيمة التي سوف تظهر في الشاشة
While حلقة تكرارية تحتوي على شرط في البداية
For حلقة تكرارية خاصة بالعد Counting Loop
Repeat, Until حلقة تكرارية تنتهي بشرط في النهاية
If, Then, Else قرار يتم إتخاذه بناء على الشروط الموجودة

ما هو Flow Chart

هو عبارة عن رسم بياني ( Diagram ) يوضح لك الخطوات وال Process التي تتم داخل ال Algorithms بإستخدام رموز توضح الخطوات بالتفصيل لحل المشكلة وتوصيلها بأسهم لتفهم المسار الطبيعي للإجراءات وبإختصار يمكنك التفكير في ال Flow Chart أنه نسخة مصورة توضح البرنامج الخاص بك, وفيما يلي رسم يوضح لك Flow Chart بسيط جدا لعرض الفكرة وتوضيحها بمثال حي.

مثال بسيط جدا ل Flow Chart

تنفيذ الخوارزمية بواسطة لغات Python, JavaScript
Python
JavaScript

ال Symbols الخاصة ب Flow Chart

هي عبارة عن الرموز التي يتم إستخدامها عند رسم ال Flow Chart وهنا شرح للأشكال الموجودة في الصورة كل واحد بلونه.
بداية ونهاية الخطوات الخاصة بالخوارزمية.
البيانات التي يتم إستلامها من المستخدم والبيانات التي يرسلها الكمبيوتر بعد الإنتهاء.
القرارات والتي بناء عليها يتم إتخاذ الخطوات اللازمة.
هي التي تربط الرموز ببعضها وهي التي توضح إتجاه ال Flow
واحد من أروع المواقع لتصميم Flow Chart Online وبدون برامج Diagrams

كيفية فهم المشكلة قبل كتابة ال Algorithm

قبل تصميم ال Algorithm يجب أن تتأكد أنك فهمت المشكلة تماما وجميع أبعادها قبل التفكير في كتابة ال Algorithm وفيما يلي أهم الخطوات التي تتبعها لعمل ذلك.
  • ما هي مدخلات المستخدم ؟ Inputs مثلا يقوم المستخدم بإدخال كلمة المرور
  • ما هي المخرجات من المشكلة ؟ Outputs مثلا تظهر للشخص رسالة أنه تم تسجيل الدخول
  • الترتيب المناسب للإجراءات الخاصة بحل المشكلة
  • القرارات التي يتم إتخاذها لحل المشكلة Conditions
  • هل هناك أجزاء داخل المشكلة يمكن أن تظهر مرة أخرى

أنواع ال Algorithm

هناك العشرات من أنواع ال Algorithms المشهورة التي يتم عمل الكثير بها ولا تكفي 10 دورات تعليمية لسرد هذه الخوارزميات ولكن سوف نعطي مثال عليها لتعرف الفكرة العامة فقط ومن أشهر أنواع ال Algorithms هو Sorting Algorithms وفكرتهم تعتمد على ترتيب عناصر معينة داخل قائمة بطريقة معينة حسب نوع ال Algorithm المستخدم ومن أشهر ال Sorting Algorithms ما يلي ويمكنك زيارة الصفحة الخاصة به لترى مثال على طريقة عمل ال Algorithm

كتب قيمة

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

مراجع على الإنترنت

بعض المواقع التي تحتوي على الكثير لزيادة معلوماتك ولتعلم ال Algorithms ومناهج تعليمية كبيرة سوف تغير حياتك للأفضل.

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

الخوارزميات تجعلك تفكر في الأشياء بطريقة مختلفة ومنظمة وتقوم بالتركيز أكثر على خطوات حل المشاكل وتنفيذ أي فكرة عن طريق كتابة الطرق المنطقية وتحليل المشكلة بشكل مفصل قبل البدأ في التنفيذ, وهي التي تميز المبرمج المتميز من المبرمج العادي حيث أنه يصل إلى الحلول بأفضل الطرق لأنه يخطط لها جيدا وبطريقة منطقية.

متى أتعلم الخوارزميات

الكثير من الناس اختلفت في هذه النقطة, لو كنت في بداية حياتك تقرأ هذا المقال فيجب أن تعرف ان ال Algorithm فيه الكثير من الأشياء النظرية ويحتاج للغة برمجة حتى تستطيع فهم الخطوات بشكل سلس وتستفيد أقصى إستفادة من المعلومات وكيف يتم عملها وحتى تفهم معنى كتابة خطوات منطقية لذلك يمكنك تعلم ال Algorithms بعد تعلمك للغة برمجة أو بالتوازي معها وهذا رد من John Skeet يوضح نفس الفكرة بسبب انها علوم نظرية وتحتاج لفهم للبرمجة حتى تقوم بتطبيقها بشكل سليم وتفهمها وإذا كنت من الأشخاص الذين تعلموا لغات برمجة وانغمسوا في سوق العمل ولم يتعلموا ال Algorithm فإن الوقت لم يفت لتعلمها وزيادة خبراتك وتطوير تفكيرك البرمجي وإيجاد الحلول المنطقية لحل المشكلات.

رد على سؤال هل يجب تعلم ال Algorithm أولا قبل لغة برمجة

المساهمين

مشاركة الصفحة

إعلانات جوجل