في الغالب و إن كنت من الوافدين الجدد على البرمجة ، فستجد عنوان الموضوع غريبا قليلا ، فكلمة أو عبارة خوارزميات ليست بتلك العبارة المألوفة , لكن إذا كنت قد قضيت بعض الوقت مع البرمجة فلابد وانك سمعت عن الخوارزميات , فهي عباره عن الطريقة أو المنهج الذي يتبع لحل أي مشكله , وهي كالأساسيات لكل مبرمج , و سنتعرف على أهمية هذه أخيرة أكثر في هذا الدرس فتابعو .
اقرأ أيضا :
افضل مواقع ومصادر لتعلم برمجة نظام الاندرويد وتطبيقاته
لو طلب أحدهم منك تصميم تطبيق لإدخال رقم و من ثم يظهر في كونه هل هو عدد أولي أم لا , حينها مالذي يخطر على بالك فعله ؟
إذن الخوارزميات ضرورية في مجال البرمجة من أجل تجاوز المشاكل و حلها ، و الخوارزميات نشهدها يوميا بطريقة غير مباشرة ، كما أن تعلم الخوارزميات مَنُوطٌ به من طرف المبرمجين المحترفين ، و من الصعب إنشاء مشروع بسيط أو ضخم دون ادني فكرة عن كيفية التعامل مع الخوارزميات .
تعريف بالخوارزميات :
الخوارزميات هي سلسلة من الخطوات لحل مشكلة معينة أو بشكل عام مجموعة من الخطوات المحددة ذات ترتيب معين يتم إتباعها لحل مشكلة ما (في حالتنا تكون مشكلة برمجية) . و يتم الأخذ بعين الاعتبار الخوارزميات في مجموعة من المجالات ، سواء البرمجة ، الصناعة ، التدقيق ، التحليل ... ، لكنها تمركزت في مجال البرمجة بالتحديد و اتخذته عشا لها حيث يكثر استعمالها و دراستها ، إذن برمجيا ، فالخوارزميات كما سبق الذكر : هي مجموعة من الخطوات لحل مشكل أو مجموعة مشاكل برمجية قد تصادفها أثناء برمجتك لشيئ معين أو تحليله . و الخوارزميات تساعدك على تجاوز تلك المشاكل باحترافية , و الاحترافية هنا تكون باستخدام أفضل طريقة و أقصرها من حيث السطور البرمجية لحل المشكلة .لمذا يجب تعلم الخوارزميات و ما هي فائدتها ؟
تعتبر الخوارزميات المدخل للبرمجة . لا يمكن أن تسأل مبرمج عن تعلم البرمجة و يخبرك أن تبدأ بإنشاء موقع تواصل اجتماعي مثل فيسبوك هذا ليس بمنطق . لأنة سوف تسقط من أول وهلة و لن تعرف طريقة حل المشاكل البرمجية . كما أن 80% من المبرمجين سوف ينصحونك بتعلم الخوارزميات و تطبيقها بأحد لغات البرمجة (python او C أو Ruby) لأن C و python سهلة الاستخدام , كما أن Ruby لغة سهلة أيضا , و قد تعرفنا عليها أكثر في : تعرف على لغة Ruby بوابتك نحو عالم البرمجة.اقرأ أيضا :
افضل مواقع ومصادر لتعلم برمجة نظام الاندرويد وتطبيقاته
كيف يمكن الاستفادة من الخوارزميات ؟
عندما تبدأ التعلم و التعرف على هذا المجال , فأنت تطلع على الخوارزميات المختلفة لتنمي مهاراتك في التفكير وفق النمط الخوارزمي كمثال :لو طلب أحدهم منك تصميم تطبيق لإدخال رقم و من ثم يظهر في كونه هل هو عدد أولي أم لا , حينها مالذي يخطر على بالك فعله ؟
- أول شيء ستبحث عن تعريف العدد الأولى لمعرفة كيف يمكن معرفة كون العدد أولي أم لا
- ستجد أن تعريفه هو أن أي عدد ليس له قواسم إلا نفسه والواحد هو عدد أولي
- وباالتالي ستفكر في عمل برنامج يقوم بتجربة تقسيم العدد على كل الأعداد التي هي أصغر منه وفحص في كون لناتج القسمة الصحيح بواقي أم لا وفي حال وجد أي عدد له ناتج صحيح بدون بواقي إذا العدد ليس أولي وأما إذا مررت على الجميع وكان الكل له بواقي إذا فالعدد ليس أولي
- من هنا تبدأ في تحويل عملية الفحص إلى تعليمات وفق اللغة التي تختارها
- وتبدأ باستخدام عمليات الشرط والحلقات و القسمة والفحص
- هنا نقول أنك طبقت خوارزمية ما وحولتها لبرنامج يقوم بعمل ما
- مع الخبرة والمراس ستكتشف فيما بعد طرق مختصرة أكثر للوصول إلى نفس النتيجة
- وهنا نقول أنك قمت بتحسين الخوارزمية
- بدلاً من فحص كل الأعداد التي هي أصغر من العدد نقوم بفحص فقط الأعداد التي هي أصغر من جذره
- وذلك لأن وجود أي قاسم ضمن المجال ماقبل الجذر سيكون القاسم المقابل له في المجال الأكبر من الجذر
- وبالتالي يكفي فحص الأعداد ضمن أحد المجالين ولا شك أن المجال الأصغر هو الأفضل لأنه أقل عدد
إذن الخوارزميات ضرورية في مجال البرمجة من أجل تجاوز المشاكل و حلها ، و الخوارزميات نشهدها يوميا بطريقة غير مباشرة ، كما أن تعلم الخوارزميات مَنُوطٌ به من طرف المبرمجين المحترفين ، و من الصعب إنشاء مشروع بسيط أو ضخم دون ادني فكرة عن كيفية التعامل مع الخوارزميات .