الخوارزميَّاتُ : نِسبتُها، تعريفُها، أمثلةٌ عنها.
نِسبتُها: جاءت تسميةُ الخوارزميَّاتِ نسبةً إلى محمَّدِ بنِ موسى ، وكُنيتُه أبو جعفر، ولقبُه الخوارزميُّ، وهو عالم رياضيَّات و فلكيٌّ مسلمٌ، وُلِدَ سنة 780م تقريبًا في بغدادَ و عاشَ ومات فيها. وأصلُه من خوارزمَ في أوزبكستانَ حاليًّا.
لأعماله دور كبير للغاية في تطوِّر علمِ الرِّياضيَّات، خاصَّةً فرع الجبر Algebra .
توفيَّ سنة850م تقريبًا في مَسقَط رأسِه بعد حياةٍ مليئةٍ بالعطاءِ، رحمه اللَه.
تعريفُ الخوارزميَّات: هي مجموعةٌ من الخُطُواتِ الرَّياضيَّةِ والمَنطقيَّةِ والمُتَسَلْسِلَةِ اللَّازمةِ لحلِّ مشكلةٍ ما أو الوصولِ لهدفٍ معينٍ.
يُمكنُ تشبيهُ الخوارزميَّة بما يسمَّى الخريطةِ الانسيابيَّة flow chart .
ومثال الخريطة الانسيابيِّة الاتصال الهاتفيِ مثلاً
لنوضِّح أكثر :
كلُّنا قد رأى كتب الطَّعام, فمثلاً كلُّ أكلة لها مكوِّناتُها الَّتي سنتعلَّمُها و الخطواتُ الَّتي سنتَّبعُها من أجل طبخِها. فالخوارزميَّات شأنُها شأنُ
كتبِ المأكولاتِ .
ففي لغة الحاسوب، المكوِّناتُ هي Inputs ، ومعناها معلوماتٌ نعطيها للحاسوبِ أو البرنامَجِ المُستخدَم، والأكلةُ النَّاتجةُ هي Outputs
أيْ: النَّتائج الَّتي حصلنا عليها، و بين المكوِّناتُ والنَّتائج ثمَّةَ الخُطُواتُ الَّتي اتَّبعناها وتسمَّى Procedure أي: المناهجُ.
خوارزميَّاتُ البرمجةِ تصف لك طريقةَ القيامِ بشيءٍ ما، و حاسوبُك سيقوم بها بالطَّريقة نفسِها عند كلِّ مرَّةٍ.
لابدَّ لك من معرفةِ أنَّ الخوارزميَّات ليست لغةَ برمجةٍ، و إنَّما طريقةُ تفكيرٍ أو خُطُواتٌ سنتَّبعُها كما ذكرنا في البداية.
يمكنُ أنْ يتَّضحَ الأمرُ أكثرَ إنْ فكرتَ في أنَّ الخوارزميَّاتِ هي مُخطَّطٌ لبنايةٍ ما، Blueprint.
أيْ أنَّ كلَّ ما يحتاجُه المهندسُ من أفكارٍ و
رسومٍ و قطعِ غيارٍ، يضعُها في المُخطَّطِ. وكذلك ستقومُ أيُّها المُبَرمجُ بالعمليَّة نفسِها عند تصميمِ البرامج.
ستضعُ جميعَ أفكارِك وخطواتِ عملِ برنامجِك في وَرَقةٍ ما أو في دفترٍ ما. وهذه العمليَّةُ تُسمَّى الخوارزميَّات.
إنَّ الهدفَ من هذا المقالِ هو أنْ أضعَ أمامَكَ مثالًا حيًّا لِمَا نتكلَّمُ عنه. وهذا الأخيرُ هو عمليَّةٌ بسيطةٌ نقومُ بها جميعُنا حينَ محاولتِنا التَّسجيلِ في موقعٍ ما.
هذه العمليَّةُ هي طلبُ البريدِ الإلكترونيِ الخاصِّ بك :
لنشرحْ كلَّ خُطوةٍ و دورَها :
1- إنشاءُ المُتغَيِّرِ : المُتغَيِّرُ Variable ، هو مصطلحٌ ستراه في كلِّ مكانٍ في عالمِ البرمجةِ، وهو معلومةٌ تتغيَّرُ.
فبريدي الإلكترونيِّ يختلفُ عن البريدِ الخاصِ بك. إذًا لابدَّ من إنشاءِ شيءٍ يتغيَّرُ في كلِّ مرَّةٍ.
2- إزالةُ المُتغَيِّرِ : هذه الخطوةُ غيرَ مفهومةٍ في البدايةِ، لكنْ سنتعلَّمُ سبَبَها بعدَ قليلٍ.
بصورةٍ عامَّةٍ هنا يَتمُّ محوُ أيِّ بياناتٍ إنْ كانت محفوظةً في المُتغَيِّرِ.
3-ما بريدُك الإلكترونيُّ ؟ هنا يطلبُ منك الموقعُ أو الحاسوبُ إدخالَ معلومةٍ، أي أنَّنا نتكلَّمُ عن المكوِّناتِ Inputs، والَّتي هي بريدُك.
4- حفظُ المُتغَيِّرِ : بعدَ إدخالِك البريدَ لابدَّ للموقعِ أن يحفظَ بريدَك كي لا يتعرَّضَ للتَّلف. هذه هي الخطوةُ المُكَلَّفةُ بذلك.
5- هل بريدُك صالحٌ ؟ هنا سنتعرَّفُ على أحد أساسياتِ البرمجةِ، و هي جُمَلُ الشَّرطِ أو if Statements
ويمكنُ ترجمتُها كالتَّالي : إذا كان بريدُك صالحٌ للاستعمالِ سننتقلُ للخطوةِ التالية.
6- إذا لم يكنْ بريدُك صالحًا للاستعمالِ عُدْ إلى الخطوةِ الثَّانية، وامسحْ البريدَ الإلكترونيَّ السَّابقَ ثمَّ أعِدْ إدخالَهُ.
7- النَّتيجةُ : هنا نتكلَّمِ عن Outputs أي أنَّ البرنامجَ انتهى، والآنَ سيُزوِّدُنا بالحصيلة.
إذًا، هذا بشكلٍ مُبسَّطٍ للغايةِ هو الخوارزميَّاتُ، فبعدَ إنشاء المُتغَيِّرِ وإزالةِ أيَّ بياناتٍ محفوظةٍ فيه، يتمُّ طلبُ المعلومةِ Input ،ويَتمُّ التَّحقُّقُ من صِحَّتِها، ثمَّ نَدخلُ في أحدِ أهمِّ أساسياتِ البرمجةِ كما ذكرنا سابقًا : if Statement .
فإذا كان كلُّ شيءٍ على ما يُرامُ، يُكمِلُ البرنامجُ عملَه، أمَّا إنْ كان هناكَ خللٌ ما، يعودُ للخطوةِ الثَّانية.
رغمَ أنَّ الأمرَ بسيطٌ جِدًّا إلَّا أنَّه هامٌّ، فلا يُمكنُكَ الانتقالُ من الخطوةِ الثَّانية إلى الخطوةِ الخامسةِ مثلًا دون المرورِ بالخُطُوتين الثَّالثةِ والرَّابعةِ.
الخوارزميَّات هي خريطةٌ لدماغِك و طريقةُ تفكيرِك، من أجلِ صنعِ برنامجٍ ما، أو تصميمِ موقعٍ ما، أو أيِّ شيءٍ له علاقةٌ بالبرمجةِ.
إعداد: مزاح حاتم
مراجعة: مرعي عرب
تدقيق: عبدالمجيد قدور