الأحد، 22 سبتمبر 2019

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

في البوست ده هتكلم عن حاجة مهمة جدًا في مجال البرمجة ..

- الخوارزميات "Algorithms"
أولاً : سبب التسمية :
نسبةً للعالِم الأشهر في عالم الرياضيات
"أبو جعفر محمد بن موسى الخوارزمي" ..

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

مجموعة الخطوات اللي أنا كتبتها دي ، هي "الخوارزمية" ، تلقائيًا خلوا عقلكوا يترجم كلمة خوارزمية إنها "الخطوات" المُتبعة لحل مُشكلة ما ، و ده المصطلح اللي بنسمعه أو نشوفه كتير "Solving problems" ..

طيب هل الخوارزميات دي لها أنواع ؟

- لها أنواع كتير جدًا طبعًا ، و كل نوع منها على حسب الغرض اللي بيتم استخدامه فيه ..

على سبيل المثال ..
أشهر نوع منها هو "Sorting Algorithm" خوارزمية الترتيب ..
من إسمها ، بتقوم بترتيب عناصر ما ..
و بتحتوي الخوارزمية دي على أكتر من نوع بداخلها حسب الغرض منه ..
هذكر مثالين :-
- خوارزمية الأعداد "Bin sort"
و دي بنستخدمها عند ترتيب مجموعة أعداد ..

- خوازمية "Quick sort"
و دي بيتم استخدامها عند ترتيب مجموعة عناوين كتب مثلاً ..

ده كان مثال على أشهر الخوارزميات ..

طيب سؤال تاني ..
إزاي اشتغل بالخوارزميات دي ؟

- تقدروا تشتغلوا بها مع لغات برمجة كتير ، لكن اللغة الأشهر ارتباطًا بها هي لغة "چاڤا" ..

*تذكير ..
الخوارزميات ليست لغة برمجة ، لكنها مجموعة القواعد المتبعة لتنفيذ أمر ما تم كتابته بلغة برمجة ..

بالظبط زي الـ Html ، لغة وصفية "Page structure " أو لغة بنائية ، و ليست لغة برمجة ..

طيب للي حابب يتعلم الخوارزميات ..

دي مجموعة كتب هتفيدكم ان شاء الله ..
1- تحليل و تصميم الخوارزميات
من هنا https://www.motwr.com/تحليل-وتصميم-الخوارزميات-pdf-تحميل-م…/

2- تراكيب البيانات والخوارزميات
من هنا https://computer-library.com/no_book=167

3- كتاب ماذا بعد الأساسيات
من هنا https://www.motwr.com/كتاب-ماذا-بعد-الأساسيات-البرمجة-لخالد/

طيب لو حد حابب يتعلم من مواقع ..
هتلاقوا هنا شرح للخوارزميات ..
"دي لينكات مباشرة للشرح" ..

- موقع https://www.tutorialspoint.com/data_s…/algorithms_basics.htm

- موقع https://www.geeksforgeeks.org/fundamentals-of-algorithms/

- موقع https://www.programiz.com/dsa

و دي مقالة بسيطة للي حابب يقرأ عن أنواع الخوارزميات ..
من هنا http://www.sfahat.com/p/programming/32

*تذكير
الخوارزميات من أهم الحاجات اللي المفروض يتعلمها المبرمج قبل ما يبدأ في المجال ، خصوصًا قبل تعلم لغة چاڤا لأنها بتسهل كتابة الأكواد في المراحل المتقدمة بعد كده .

***********************


***********************

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