المعنى الحرفي والتسمية
كلمة 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 أولا قبل لغة برمجة
0 تعليقات