Telegram Web
أهمية الخوارزميات في البرمجة


مفهوم – الخوارزميات Algorithms، والتي يمكن تعريفها ايضًا بـ حل المشكلات Problem Solving، ومن خلال هذا المسمى يمكنك تعريف الخوارزمية بأنها مجموعة من الخطوات التي يتم تطبيقها على مجموعة من البيانات المتاحة والتي تعرف بـ المدخلات – Inputs، لتحصل منها على نتيجة (حل المشكلة) وهو ما يعرف بـ المخرجات – Output، وهذه الخطوات ببساطة هي الخوارزمية.

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

وتعتبر الخوارزميات سلسلة من الخطوات لحل مشكلة معينة أو بشكل عام مجموعة من الخطوات المحددة ذات ترتيب معين يتم إتباعها لحل مشكلة ما (في حالتنا تكون مشكلة برمجية).

تعتبر الخوارزميات المدخل للبرمجة ولا يمكن أن تسأل مبرمج عن تعلم البرمجة و يخبرك أن تبدأ بإنشاء موقع تواصل اجتماعي مثل فيسبوك هذا ليس بمنطق، لأنة سوف تسقط من أول وهله و لن تعرف طريقة حل المشاكل البرمجية، كما أن 80% من المبرمجين سوف ينصحونك بتعلم الخوارزميات.

الاستفادة من الخوارزميات
عندما تبدأ التعلم و التعرف على هذا المجال , فأنت تطلع على الخوارزميات المختلفة لتنمي مهاراتك في التفكير وفق النمط الخوارزمي كمثال :

لو طلب أحدهم منك تصميم تطبيق لإدخال رقم و من ثم يظهر في كونه هل هو عدد أولي أم لا , حينها مالذي يخطر على بالك فعله ؟



أول شيء ستبحث عن تعريف العدد الأولى لمعرفة كيف يمكن معرفة كون العدد أولي أم لا

ستجد أن تعريفه هو أن أي عدد ليس له قواسم إلا نفسه والواحد هو عدد أولي

وبالتالي ستفكر في عمل برنامج يقوم بتجربة تقسيم العدد على كل الأعداد التي هي أصغر منه وفحص في كون لناتج القسمة الصحيح بواقي أم لا وفي حال وجد أي عدد له ناتج صحيح بدون بواقي إذا العدد ليس أولي وأما إذا مررت على الجميع وكان الكل له بواقي إذا فالعدد ليس أولي

من هنا تبدأ في تحويل عملية الفحص إلى تعليمات وفق اللغة التي تختارها

وتبدأ باستخدام عمليات الشرط والحلقات و القسمة والفحص

هنا نقول أنك طبقت خوارزمية ما وحولتها لبرنامج يقوم بعمل ما

مع الخبرة والمراس ستكتشف فيما بعد طرق مختصرة أكثر للوصول إلى نفس النتيجة

وهنا نقول أنك قمت بتحسين الخوارزمية


العلاقة بين البرمجة و الخوارزميات هي أن الخوارزميات يتم كتابتها بواسطة لغة برمجة معينة لأداء غرض ما أو حل مسألة ما، و كما تعلم أيضاً أن كل لغة برمجة في العالم هي قائمة على خطوات خوارزمية ذكية معيينة، إذاً العلاقة طردية و مكافئة بينها و لا تتم الأخرى إلا بالأخرى
**أخطاء يقع فيها المبرمجين في بداية الطريق* *


مفهوم – تجارب المبرمجين يمكن أن نستنتج منها العديد من الدروس ومعرفة أهم الأخطاء التي وقعوا فيها والتي بطبيعة الحال تسهل الأمور على المتعلم، وخاصة لو كان في بداية الطريق.

حيث أن المبرمج عرضة للعديد من الأخطاء التي قد تمنعه من التقدم في مساره المهني وتبطئ عملية تطوير مهاراته وتحقيق الأهداف التي يرسمها.



أخطاء يقع فيها المبرمجين في بداية الطريق:

الخطأ رقم 1: مقارنة نفسك مع الآخرين

من الأخطاء الشائعة والتي يعاني منها عدد كبير من المطورين والمبرمجين، خاصة المبتدئين، أنهم يقارنون أنفسهم مع غيرهم من المبرمجين ذوي المستويات المرتفعة، وهذا يكون عادة سببا في تثبيط عزائمهم والسقوط في فخ السعي نحو المثالية التي لا يمكن إدراكها.

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

هذا الفشل الذي يصاحبه النهوض المتجدد والتعلم المستمر هو الجزء السفلي من الجبل الجليدي الذي لا يراه أغلب الناس ولكنه موجود يقينا لدى كل المحترفين في هذا العالم.

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

لا تنتظر أن تعرف كل شيء لكي تبدأ! إبدأ على الفور وتعلم وأنت في الطريق.

الخطأ رقم 2: عدم البحث في Google

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

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

محرك البحث جوجل لديه الحل ل 90% من المشاكل التي ستواجهك في مسارك المهني، فهناك عشرات الملايين من المبرمجين حول العالم والمشاكل متكررة وبفضل ثقافة التدوين والمشاركة وكذلك StackOverflow وأقرانه ستجد أن منهم من سبق له مواجهة نفس مشكلتك وقام بحلها وشارك الحل مع العالم.

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

من حقك أن تطرح سؤالك ومشكلته ولكن بعد أن تستنفد كافة خياراتك مع Google.com وليس قبل ذلك.



استعمالك للغة الإنجليزية في البحث سيرفع احتمال الوصول لضالتك في أسرع وقت.

طرح الأسئلة المتكررة في المنتديات ومنصات النقاش قبل البحث في Google علامة تدل على عدم نضجك كمبرمج. لا تنسى ذلك!

الخطأ رقم 3: عدم توثيق الشفرة البرمجية

يقول عالم الحاسوب داميان كونوي بأن: “التوثيق هو رسالة حب  تكتبها لنفسك في المستقبل.”

“Documentation is a love letter that you write to your future self.” – Damian Conway

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

لا تظن بأنك ستظل على وعي ومعرفة تامة بما تقوم به كل دالة وكل سطر برمجي تكتبه، ذلك الإحساس لحظي فقط وسرعان ما ستجد نفسك في حاجة لإعادة قراءة ذلك الكود والتنقل بين ملفات المشروع من أجل معرفة سبب كتابته.

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

أولا وثق شفرتك المصدرية، واسعى بعد ذلك قدر المستطاع أن تكون الشفرة المصدرية توثيقا بحد ذاتها باتباع أحدث المعايير والأفكار المتبعة لجعل الكود منظما، واضحا ودالا على نفسه

الخطأ رقم 4: إهمال تطوير الذات

الصورة النمطية عن المبرمج هي ذلك الشخص الذي يضل جالسا في غرفته أو مكتبه أمام شاشة الحاسوب لساعات طويلة. ذلك المبرمج لا حياة اجتماعية ولا مهارات لديه باستثناء مهارات الضرب على لوحة المفاتيح!

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

بدون اكتساب مهارات الإدارة والتواصل وتسيير المشاريع سيقف المبرمج في نقطة معينة ولن يستطيع التقدم أكثر مهما كانت مهاراته التقنية عالية.


سيكون عليك أيها المبرمج أن تخرج من كهفك في يوم من الأيام، عليك أن تستعد جيدا لذلك اليوم!

الخطأ رقم 5: المبالغة في التعلم النظري

لا شك أن التعلم النظري وقراءة الكتب والمقالات التقنية أمر مهم جدا بالنسبة لكل مطور أو مبرمج يريد البقاء دائما على دراية بكل جديد. ولكن العادة السيئة والغير صحية هنا هي المبالغة في الجانب النظري وتغليبه على الناحية العملية والتطبيقية.

البرمجة مجال تطبيقي تغلب فيه الممارسة على أي شيء آخر، وكغيرها من العلوم والمهن التطبيقية، لا يمكن أن تحترف البرمجة إذا لم تسخر جزءًا كبيرا من وقتك في الممارسة والتجسيم.

لا يمكنك أن تدعي أنك تعرف كيف تصنع قنبلة نووية مهما قرأت كتبا عن الفيزياء والكيمياء ونظريات الإنشطار والإندماج النووي. هذه الأمور أساسية ومهمة، ولكن الأهم أن تذهب للمختبر وتفشل وتنهض وتواصل التعرف على الأشياء والطرق التي تنفع والتي لا تنفع.
برمجة تطبيقات الويندوز C# Programming
Video
نشرح طريقة عمل مثل ما في الفيديو 👆
اولا الموضوع غير مهم
Anonymous Poll
92%
شرح
8%
غير مهم
Forwarded from التعليقات
Forwarded from التعليقات
Animator.dll
45.5 KB
برمجة تطبيقات الويندوز C# Programming
Animator.dll
اتبع الخطوات في الصور وقم بإضافة هذه المكتبة ستظهر في شريط الادوات اسحبها الى الفورم
برمجة تطبيقات الويندوز C# Programming
Animator.txt
وهذا ملف كود الدالتين

انسخهن واضفهن في اكواد الفورم


يوجد عدة ازرار وهي التي تقوم بتغيير اسلوب عرض Animation

تم ربطهن بداله حدث واحدة

ضع لكل button نص من switch من اجل عند الضغط على button الذي يتوافق نصه مع Case في switch يتم تنفيذ الAnimation
برمجة تطبيقات الويندوز C# Programming
وهذا ملف كود الدالتين انسخهن واضفهن في اكواد الفورم يوجد عدة ازرار وهي التي تقوم بتغيير اسلوب عرض Animation تم ربطهن بداله حدث واحدة ضع لكل button نص من switch من اجل عند الضغط على button الذي يتوافق نصه مع Case في switch يتم تنفيذ الAnimation
يجب تضمين namespace

using AnimatorNS;


توضيح لبعض الاكواد

الاكواد التي بداخل foreach loop

هي اختصار للاكواد التي عليها تعليق

يعني بدل ما تعمل لكل اداة تضيفها show الكود الذي بداخل الدوارة يقوم بعرض الادوات

foreach (var con in panel1.Controls)
{
Control c = (con) as Control;
if (con is Control)
animator1.Show(c);

}

//animator1.Show(pictureBox1);
//animator1.Show(button4);
//animator1.Show(groupBox1);
//animator1.Show(textbox1);
//animator1.Show(myButton1);
برمجة تطبيقات الويندوز C# Programming
من سيربح المليون.zip
السلام عليكم

في مشروع اللعبة السابق 👆🏻 بعض العمليات ناقصة يعني ما قد تم برمجتها مثل :
-وسيلة المساعدة حذف إجابتين
-وسيلة المساعدة الاتصال بصديق
-الانسحاب
.....الخ

يمكنك المحاولة بنفسك في إكمال ما هو ناقص ومشاركته مع الاخرين عبر المجموعة او القناة
2025/06/15 12:18:34
Back to Top
HTML Embed Code: