موقع كنز اتحدا احد يعرف عن هذا الموقع . الموقع يعطيك جميع الكتب البرمجيه الرائعه حتى هناك كتب تعلمك الخوارزميات
اضغط على المشبك 🔗
اضغط على المشبك 🔗
Goalkicker
Free Programming Books; HTML5, CSS3, JavaScript, PHP, Python...
Free Programming Books on Android development, C, C#, CSS, HTML5, iOS development, Java, JavaScript, PowerShell, PHP, Python, SQL Sever and more
نريد معرفه الاشخاص المهتمين للشرح . من اجل نبدا بالشرح . لان الشرح هذا بيكون اهم شرح
⚡1❤1
K7H Code
تريد تعلم الخوارزميات او الدخول في البرمجة مباشرة
الشرح بيكون على ما يختار المتابعين
معلومة للذين صوتوا " لا اعلم من اين ابدا " البدايه ستكون من تعلم الخوارزميات . هذه هي الاساس
🤝2❤1⚡1
الخوارزميات (Algorithms)
إذا سألت شخصًا: ما أهم شيء يجب أن يتعلمه المبرمج؟ فسيعتقد البعض أن الإجابة هي تعلم لغة برمجة مثل Java أو Python أو C++.
لكن الحقيقة أن لغة البرمجة ليست أهم شيء.
لأن المبرمج الذي يعرف عشر لغات برمجة ولا يعرف كيف يحل المشكلات، سيواجه صعوبة في بناء البرامج.
أما المبرمج الذي يفكر بطريقة صحيحة ويجيد تصميم الخوارزميات، فيمكنه تعلم أي لغة برمجة بسهولة.
ولهذا السبب تعتبر الخوارزميات (Algorithms) من أهم أساسيات البرمجة وعلوم الحاسب.
━━━━━━━━━━━━━━━━━━━
ما هي الخوارزمية؟
الخوارزمية (Algorithm) هي:
مجموعة من الخطوات المرتبة والمنطقية التي يتم تنفيذها بالترتيب لحل مشكلة معينة أو لإنجاز مهمة محددة.
بمعنى أبسط...
الخوارزمية هي خطة عمل أو طريقة منظمة للوصول إلى نتيجة.
أي أنها تحدد ماذا سنفعل أولًا، ثم ثانيًا، ثم ثالثًا، حتى نصل إلى الهدف.
━━━━━━━━━━━━━━━━━━━
لماذا سميت "خوارزمية"؟
كلمة Algorithm جاءت من اسم العالم المسلم محمد بن موسى الخوارزمي، أحد أعظم علماء الرياضيات في التاريخ.
وقد ساهمت أعماله في تطوير طرق الحساب وحل المسائل الرياضية، ثم انتقل اسمه إلى اللغات الأوروبية، وأصبحت كلمة Algorithm تستخدم للدلالة على الخطوات المنظمة لحل المشكلات.
━━━━━━━━━━━━━━━━━━━
هل نستخدم الخوارزميات في حياتنا اليومية؟
نعم، بل إننا نستخدمها باستمرار حتى دون أن نشعر.
أي عمل نقوم به على شكل خطوات مرتبة هو خوارزمية.
مثال:
إعداد كوب من الشاي.
الخطوات:
أحضر كوبًا.
ضع كيس الشاي.
اغلِ الماء.
اسكب الماء في الكوب.
أضف السكر إذا أردت.
حرّك الشاي.
اشربه.
هذه خطوات مرتبة، وإذا نفذتها بالترتيب ستحصل على النتيجة المطلوبة.
هذه خوارزمية.
━━━━━━━━━━━━━━━━━━━
مثال آخر
تخيل أنك تريد الذهاب إلى الجامعة.
ماذا تفعل؟
تستيقظ من النوم.
ترتدي ملابسك.
تتناول الإفطار.
تخرج من المنزل.
تركب وسيلة النقل.
تصل إلى الجامعة.
هذا أيضًا خوارزمية.
━━━━━━━━━━━━━━━━━━━
لماذا نحتاج إلى الخوارزميات في البرمجة؟
الحاسوب لا يستطيع التفكير مثل الإنسان.
إذا قلت له:
"احسب المعدل."
فلن يفهم.
يجب أن تخبره بكل خطوة بالتفصيل.
مثلًا:
اقرأ درجات الطالب.
اجمع الدرجات.
احسب عدد المواد.
اقسم المجموع على عدد المواد.
اعرض المعدل.
هذه هي الخوارزمية.
بعد ذلك فقط يمكن تحويلها إلى كود برمجي.
━━━━━━━━━━━━━━━━━━━
العلاقة بين الخوارزمية والبرمجة
من الأخطاء الشائعة الاعتقاد أن البرمجة تبدأ بكتابة الكود.
لكن في الواقع، البرمجة تبدأ بالتفكير.
الترتيب الصحيح هو:
المشكلة → الخوارزمية → الكود → البرنامج.
أي أن الخوارزمية تأتي قبل كتابة أي سطر برمجي.
━━━━━━━━━━━━━━━━━━━
ما الفرق بين الخوارزمية والكود؟
الخوارزمية هي الفكرة والخطوات.
أما الكود فهو ترجمة هذه الخطوات إلى لغة برمجة.
مثلًا:
الخوارزمية تقول:
اقرأ رقمين.
اجمعهما.
اطبع الناتج.
أما في Java فتكتب هذه الخطوات باستخدام أوامر اللغة.
إذن:
الخوارزمية مستقلة عن أي لغة برمجة.
أما الكود فيختلف من لغة إلى أخرى.
━━━━━━━━━━━━━━━━━━━
لماذا تعتبر الخوارزميات مهمة جدًا؟
للخوارزميات أهمية كبيرة، لأنها:
1- تساعد على حل المشكلات بطريقة منظمة
بدلًا من تجربة حلول عشوائية، يتم تقسيم المشكلة إلى خطوات واضحة ومنطقية.
━━━━━━━━━━━━━━━━━━━
2- تجعل كتابة الكود أسهل
عندما تكون الخوارزمية جاهزة، تصبح كتابة البرنامج مجرد تحويل للخطوات إلى أوامر برمجية.
━━━━━━━━━━━━━━━━━━━
3- تقلل الأخطاء
التفكير في الحل قبل البرمجة يساعد على اكتشاف الأخطاء مبكرًا، قبل كتابة الكود.
━━━━━━━━━━━━━━━━━━━
4- تسهل تعديل البرنامج
إذا تغيرت المتطلبات، يكون تعديل الخوارزمية أسهل من تعديل برنامج كبير مكتوب دون تخطيط.
━━━━━━━━━━━━━━━━━━━
5- يمكن استخدامها مع أي لغة برمجة
الخوارزمية نفسها يمكن تنفيذها بلغة Java أو Python أو C++ أو أي لغة أخرى.
━━━━━━━━━━━━━━━━━━━
خصائص الخوارزمية الجيدة
ليست كل مجموعة خطوات تعتبر خوارزمية جيدة.
الخوارزمية الجيدة يجب أن تمتلك عدة خصائص.
1- الوضوح (Clarity)
يجب أن تكون جميع الخطوات واضحة وغير غامضة.
━━━━━━━━━━━━━━━━━━━
2- الترتيب (Order)
يجب تنفيذ الخطوات بترتيب صحيح.
━━━━━━━━━━━━━━━━━━━
3- النهاية (Finiteness)
يجب أن تنتهي بعد عدد محدود من الخطوات.
إذا استمرت بلا نهاية، فهي ليست خوارزمية صحيحة.
━━━━━━━━━━━━━━━━━━━
4- وجود مدخلات (Input)
قد تستقبل الخوارزمية بيانات مثل الأرقام أو النصوص.
━━━━━━━━━━━━━━━━━━━
5- وجود مخرجات (Output)
يجب أن تنتج نتيجة في النهاية.
━━━━━━━━━━━━━━━━━━━
إذا سألت شخصًا: ما أهم شيء يجب أن يتعلمه المبرمج؟ فسيعتقد البعض أن الإجابة هي تعلم لغة برمجة مثل Java أو Python أو C++.
لكن الحقيقة أن لغة البرمجة ليست أهم شيء.
لأن المبرمج الذي يعرف عشر لغات برمجة ولا يعرف كيف يحل المشكلات، سيواجه صعوبة في بناء البرامج.
أما المبرمج الذي يفكر بطريقة صحيحة ويجيد تصميم الخوارزميات، فيمكنه تعلم أي لغة برمجة بسهولة.
ولهذا السبب تعتبر الخوارزميات (Algorithms) من أهم أساسيات البرمجة وعلوم الحاسب.
━━━━━━━━━━━━━━━━━━━
ما هي الخوارزمية؟
الخوارزمية (Algorithm) هي:
مجموعة من الخطوات المرتبة والمنطقية التي يتم تنفيذها بالترتيب لحل مشكلة معينة أو لإنجاز مهمة محددة.
بمعنى أبسط...
الخوارزمية هي خطة عمل أو طريقة منظمة للوصول إلى نتيجة.
أي أنها تحدد ماذا سنفعل أولًا، ثم ثانيًا، ثم ثالثًا، حتى نصل إلى الهدف.
━━━━━━━━━━━━━━━━━━━
لماذا سميت "خوارزمية"؟
كلمة Algorithm جاءت من اسم العالم المسلم محمد بن موسى الخوارزمي، أحد أعظم علماء الرياضيات في التاريخ.
وقد ساهمت أعماله في تطوير طرق الحساب وحل المسائل الرياضية، ثم انتقل اسمه إلى اللغات الأوروبية، وأصبحت كلمة Algorithm تستخدم للدلالة على الخطوات المنظمة لحل المشكلات.
━━━━━━━━━━━━━━━━━━━
هل نستخدم الخوارزميات في حياتنا اليومية؟
نعم، بل إننا نستخدمها باستمرار حتى دون أن نشعر.
أي عمل نقوم به على شكل خطوات مرتبة هو خوارزمية.
مثال:
إعداد كوب من الشاي.
الخطوات:
أحضر كوبًا.
ضع كيس الشاي.
اغلِ الماء.
اسكب الماء في الكوب.
أضف السكر إذا أردت.
حرّك الشاي.
اشربه.
هذه خطوات مرتبة، وإذا نفذتها بالترتيب ستحصل على النتيجة المطلوبة.
هذه خوارزمية.
━━━━━━━━━━━━━━━━━━━
مثال آخر
تخيل أنك تريد الذهاب إلى الجامعة.
ماذا تفعل؟
تستيقظ من النوم.
ترتدي ملابسك.
تتناول الإفطار.
تخرج من المنزل.
تركب وسيلة النقل.
تصل إلى الجامعة.
هذا أيضًا خوارزمية.
━━━━━━━━━━━━━━━━━━━
لماذا نحتاج إلى الخوارزميات في البرمجة؟
الحاسوب لا يستطيع التفكير مثل الإنسان.
إذا قلت له:
"احسب المعدل."
فلن يفهم.
يجب أن تخبره بكل خطوة بالتفصيل.
مثلًا:
اقرأ درجات الطالب.
اجمع الدرجات.
احسب عدد المواد.
اقسم المجموع على عدد المواد.
اعرض المعدل.
هذه هي الخوارزمية.
بعد ذلك فقط يمكن تحويلها إلى كود برمجي.
━━━━━━━━━━━━━━━━━━━
العلاقة بين الخوارزمية والبرمجة
من الأخطاء الشائعة الاعتقاد أن البرمجة تبدأ بكتابة الكود.
لكن في الواقع، البرمجة تبدأ بالتفكير.
الترتيب الصحيح هو:
المشكلة → الخوارزمية → الكود → البرنامج.
أي أن الخوارزمية تأتي قبل كتابة أي سطر برمجي.
━━━━━━━━━━━━━━━━━━━
ما الفرق بين الخوارزمية والكود؟
الخوارزمية هي الفكرة والخطوات.
أما الكود فهو ترجمة هذه الخطوات إلى لغة برمجة.
مثلًا:
الخوارزمية تقول:
اقرأ رقمين.
اجمعهما.
اطبع الناتج.
أما في Java فتكتب هذه الخطوات باستخدام أوامر اللغة.
إذن:
الخوارزمية مستقلة عن أي لغة برمجة.
أما الكود فيختلف من لغة إلى أخرى.
━━━━━━━━━━━━━━━━━━━
لماذا تعتبر الخوارزميات مهمة جدًا؟
للخوارزميات أهمية كبيرة، لأنها:
1- تساعد على حل المشكلات بطريقة منظمة
بدلًا من تجربة حلول عشوائية، يتم تقسيم المشكلة إلى خطوات واضحة ومنطقية.
━━━━━━━━━━━━━━━━━━━
2- تجعل كتابة الكود أسهل
عندما تكون الخوارزمية جاهزة، تصبح كتابة البرنامج مجرد تحويل للخطوات إلى أوامر برمجية.
━━━━━━━━━━━━━━━━━━━
3- تقلل الأخطاء
التفكير في الحل قبل البرمجة يساعد على اكتشاف الأخطاء مبكرًا، قبل كتابة الكود.
━━━━━━━━━━━━━━━━━━━
4- تسهل تعديل البرنامج
إذا تغيرت المتطلبات، يكون تعديل الخوارزمية أسهل من تعديل برنامج كبير مكتوب دون تخطيط.
━━━━━━━━━━━━━━━━━━━
5- يمكن استخدامها مع أي لغة برمجة
الخوارزمية نفسها يمكن تنفيذها بلغة Java أو Python أو C++ أو أي لغة أخرى.
━━━━━━━━━━━━━━━━━━━
خصائص الخوارزمية الجيدة
ليست كل مجموعة خطوات تعتبر خوارزمية جيدة.
الخوارزمية الجيدة يجب أن تمتلك عدة خصائص.
1- الوضوح (Clarity)
يجب أن تكون جميع الخطوات واضحة وغير غامضة.
━━━━━━━━━━━━━━━━━━━
2- الترتيب (Order)
يجب تنفيذ الخطوات بترتيب صحيح.
━━━━━━━━━━━━━━━━━━━
3- النهاية (Finiteness)
يجب أن تنتهي بعد عدد محدود من الخطوات.
إذا استمرت بلا نهاية، فهي ليست خوارزمية صحيحة.
━━━━━━━━━━━━━━━━━━━
4- وجود مدخلات (Input)
قد تستقبل الخوارزمية بيانات مثل الأرقام أو النصوص.
━━━━━━━━━━━━━━━━━━━
5- وجود مخرجات (Output)
يجب أن تنتج نتيجة في النهاية.
━━━━━━━━━━━━━━━━━━━
❤🔥1❤1💯1
6- الكفاءة (Efficiency)
يجب أن تحقق النتيجة بأقل وقت وأقل استهلاك للموارد كلما أمكن.
━━━━━━━━━━━━━━━━━━━
مكونات أي خوارزمية
غالبًا تتكون الخوارزمية من:
مدخلات (Input).
عمليات معالجة (Processing).
مخرجات (Output).
مثال:
مدخلات: رقمان.
المعالجة: جمع الرقمين.
المخرجات: عرض الناتج.
━━━━━━━━━━━━━━━━━━━
مثال عملي
المطلوب:
إيجاد أكبر رقم بين عددين.
الخوارزمية:
اقرأ الرقم الأول.
اقرأ الرقم الثاني.
إذا كان الرقم الأول أكبر من الثاني، اعرض الرقم الأول.
وإلا اعرض الرقم الثاني.
انتهى.
بعد ذلك يمكن كتابة هذه الخطوات بأي لغة برمجة.
━━━━━━━━━━━━━━━━━━━
أين تستخدم الخوارزميات؟
الخوارزميات موجودة في كل مكان تقريبًا، مثل:
محركات البحث.
تطبيقات الخرائط.
الذكاء الاصطناعي.
الألعاب.
التطبيقات البنكية.
أنظمة المستشفيات.
مواقع التجارة الإلكترونية.
شبكات التواصل الاجتماعي.
أنظمة الملاحة.
برامج الترجمة.
أي برنامج ذكي يعتمد على خوارزميات.
━━━━━━━━━━━━━━━━━━━
ماذا يحدث إذا كانت الخوارزمية سيئة؟
قد يعمل البرنامج، لكنه سيكون:
بطيئًا.
يستهلك ذاكرة كبيرة.
يصعب تعديله.
يحتوي على أخطاء.
لا يتحمل عددًا كبيرًا من المستخدمين.
لذلك فإن جودة البرنامج تبدأ من جودة الخوارزمية.
━━━━━━━━━━━━━━━━━━━
هل يمكن أن توجد أكثر من خوارزمية لحل المشكلة نفسها؟
نعم.
وهذا من أهم المفاهيم في البرمجة.
قد توجد عدة خوارزميات لحل المشكلة نفسها، لكن بعضها يكون أسرع، وبعضها يستهلك ذاكرة أقل، وبعضها أبسط في التنفيذ.
ولهذا يحرص المبرمج على اختيار الخوارزمية الأنسب، وليس أول حل يخطر في ذهنه.
━━━━━━━━━━━━━━━━━━━
مثال واقعي
تخيل أنك تريد الوصول إلى مكان داخل مدينة.
يمكنك اختيار أكثر من طريق.
الطريق الأول قصير لكنه مزدحم.
الطريق الثاني أطول لكنه أسرع.
الطريق الثالث يحتوي على إشارات مرور كثيرة.
جميع الطرق توصلك إلى المكان نفسه، لكن بعضها أفضل من الآخر.
والخوارزميات تعمل بالطريقة نفسها؛ فقد تصل جميعها إلى النتيجة، لكن تختلف في السرعة والكفاءة.
━━━━━━━━━━━━━━━━━━━
أشهر مجالات دراسة الخوارزميات
عند التعمق في علوم الحاسب، ستتعلم خوارزميات متخصصة، مثل:
خوارزميات البحث (Searching Algorithms).
خوارزميات الفرز (Sorting Algorithms).
الخوارزميات التكرارية (Iterative Algorithms).
الخوارزميات العودية (Recursive Algorithms).
خوارزميات الرسوم البيانية (Graph Algorithms).
خوارزميات البرمجة الديناميكية (Dynamic Programming).
الخوارزميات الجشعة (Greedy Algorithms).
خوارزميات التشفير (Cryptographic Algorithms).
وكل نوع منها يُستخدم لحل نوع معين من المشكلات.
━━━━━━━━━━━━━━━━━━━
أهم النقاط التي يجب تذكرها
الخوارزمية هي مجموعة خطوات مرتبة ومنطقية لحل مشكلة.
الخوارزمية تسبق كتابة الكود البرمجي.
يمكن تنفيذ الخوارزمية بأي لغة برمجة.
جودة البرنامج تعتمد بشكل كبير على جودة الخوارزمية.
قد توجد عدة خوارزميات لحل المشكلة نفسها، لكن تختلف في الكفاءة.
تعلم الخوارزميات يعني تعلم طريقة التفكير، وليس حفظ الأكواد.
━━━━━━━━━━━━━━━━━━━
الخلاصة
الخوارزمية (Algorithm) هي الأساس الذي تُبنى عليه جميع البرامج. فهي تمثل طريقة التفكير المنطقية لحل المشكلات، وتحدد الخطوات التي يجب تنفيذها للوصول إلى النتيجة الصحيحة قبل كتابة أي سطر برمجي.
ويمكن تلخيص الدرس بجملة واحدة:
المبرمج المحترف لا يبدأ بكتابة الكود، بل يبدأ بتصميم خوارزمية صحيحة، لأن الكود يمكن تغييره، أما التفكير الصحيح فهو أساس بناء أي برنامج ناجح.
#خوارزميات_من_الصفر
يجب أن تحقق النتيجة بأقل وقت وأقل استهلاك للموارد كلما أمكن.
━━━━━━━━━━━━━━━━━━━
مكونات أي خوارزمية
غالبًا تتكون الخوارزمية من:
مدخلات (Input).
عمليات معالجة (Processing).
مخرجات (Output).
مثال:
مدخلات: رقمان.
المعالجة: جمع الرقمين.
المخرجات: عرض الناتج.
━━━━━━━━━━━━━━━━━━━
مثال عملي
المطلوب:
إيجاد أكبر رقم بين عددين.
الخوارزمية:
اقرأ الرقم الأول.
اقرأ الرقم الثاني.
إذا كان الرقم الأول أكبر من الثاني، اعرض الرقم الأول.
وإلا اعرض الرقم الثاني.
انتهى.
بعد ذلك يمكن كتابة هذه الخطوات بأي لغة برمجة.
━━━━━━━━━━━━━━━━━━━
أين تستخدم الخوارزميات؟
الخوارزميات موجودة في كل مكان تقريبًا، مثل:
محركات البحث.
تطبيقات الخرائط.
الذكاء الاصطناعي.
الألعاب.
التطبيقات البنكية.
أنظمة المستشفيات.
مواقع التجارة الإلكترونية.
شبكات التواصل الاجتماعي.
أنظمة الملاحة.
برامج الترجمة.
أي برنامج ذكي يعتمد على خوارزميات.
━━━━━━━━━━━━━━━━━━━
ماذا يحدث إذا كانت الخوارزمية سيئة؟
قد يعمل البرنامج، لكنه سيكون:
بطيئًا.
يستهلك ذاكرة كبيرة.
يصعب تعديله.
يحتوي على أخطاء.
لا يتحمل عددًا كبيرًا من المستخدمين.
لذلك فإن جودة البرنامج تبدأ من جودة الخوارزمية.
━━━━━━━━━━━━━━━━━━━
هل يمكن أن توجد أكثر من خوارزمية لحل المشكلة نفسها؟
نعم.
وهذا من أهم المفاهيم في البرمجة.
قد توجد عدة خوارزميات لحل المشكلة نفسها، لكن بعضها يكون أسرع، وبعضها يستهلك ذاكرة أقل، وبعضها أبسط في التنفيذ.
ولهذا يحرص المبرمج على اختيار الخوارزمية الأنسب، وليس أول حل يخطر في ذهنه.
━━━━━━━━━━━━━━━━━━━
مثال واقعي
تخيل أنك تريد الوصول إلى مكان داخل مدينة.
يمكنك اختيار أكثر من طريق.
الطريق الأول قصير لكنه مزدحم.
الطريق الثاني أطول لكنه أسرع.
الطريق الثالث يحتوي على إشارات مرور كثيرة.
جميع الطرق توصلك إلى المكان نفسه، لكن بعضها أفضل من الآخر.
والخوارزميات تعمل بالطريقة نفسها؛ فقد تصل جميعها إلى النتيجة، لكن تختلف في السرعة والكفاءة.
━━━━━━━━━━━━━━━━━━━
أشهر مجالات دراسة الخوارزميات
عند التعمق في علوم الحاسب، ستتعلم خوارزميات متخصصة، مثل:
خوارزميات البحث (Searching Algorithms).
خوارزميات الفرز (Sorting Algorithms).
الخوارزميات التكرارية (Iterative Algorithms).
الخوارزميات العودية (Recursive Algorithms).
خوارزميات الرسوم البيانية (Graph Algorithms).
خوارزميات البرمجة الديناميكية (Dynamic Programming).
الخوارزميات الجشعة (Greedy Algorithms).
خوارزميات التشفير (Cryptographic Algorithms).
وكل نوع منها يُستخدم لحل نوع معين من المشكلات.
━━━━━━━━━━━━━━━━━━━
أهم النقاط التي يجب تذكرها
الخوارزمية هي مجموعة خطوات مرتبة ومنطقية لحل مشكلة.
الخوارزمية تسبق كتابة الكود البرمجي.
يمكن تنفيذ الخوارزمية بأي لغة برمجة.
جودة البرنامج تعتمد بشكل كبير على جودة الخوارزمية.
قد توجد عدة خوارزميات لحل المشكلة نفسها، لكن تختلف في الكفاءة.
تعلم الخوارزميات يعني تعلم طريقة التفكير، وليس حفظ الأكواد.
━━━━━━━━━━━━━━━━━━━
الخلاصة
الخوارزمية (Algorithm) هي الأساس الذي تُبنى عليه جميع البرامج. فهي تمثل طريقة التفكير المنطقية لحل المشكلات، وتحدد الخطوات التي يجب تنفيذها للوصول إلى النتيجة الصحيحة قبل كتابة أي سطر برمجي.
ويمكن تلخيص الدرس بجملة واحدة:
المبرمج المحترف لا يبدأ بكتابة الكود، بل يبدأ بتصميم خوارزمية صحيحة، لأن الكود يمكن تغييره، أما التفكير الصحيح فهو أساس بناء أي برنامج ناجح.
#خوارزميات_من_الصفر
❤2❤🔥1💯1
K7H Code
https://www.tiktok.com/@khalix.dv?_r=1&_t=ZS-98dTqHrSA0S
قناتي على التيك توك تشرح شرح بسيط عن الخوارزميات والبرمجه بشكل عام
تابعوها
تابعوها
❤1
خطوات حل الخوارزميات (Algorithm Solving Steps)
بعد أن تعرفنا في الدرس السابق على معنى الخوارزمية، وأهميتها، وخصائصها، أصبح السؤال الطبيعي هو:
كيف يمكن بناء خوارزمية صحيحة لحل أي مشكلة؟
هذه هي المهارة الحقيقية التي تميز المبرمج المحترف عن المبرمج المبتدئ.
فالمبرمج المحترف لا يبدأ بكتابة الكود مباشرة، بل يبدأ بتحليل المشكلة، ثم يفكر في الحل، ثم يصمم الخوارزمية، وبعد ذلك فقط يحولها إلى كود برمجي.
ولهذا فإن تعلم خطوات حل الخوارزميات أهم بكثير من حفظ الأكواد.
━━━━━━━━━━━━━━━━━━━
لماذا نتبع خطوات محددة؟
تخيل أن شخصًا طلب منك بناء منزل.
هل ستبدأ بوضع الطوب مباشرة؟
بالتأكيد لا.
ستعرف أولًا:
ما مساحة الأرض؟
كم عدد الغرف؟
كم عدد الطوابق؟
ما الميزانية؟
ثم تبدأ بالرسم والتخطيط.
وبعد ذلك تبدأ عملية البناء.
والخوارزميات تعمل بالطريقة نفسها.
فلا يمكن كتابة الحل قبل أن نفهم المشكلة.
━━━━━━━━━━━━━━━━━━━
خطوات حل أي خوارزمية
تمر عملية حل أي خوارزمية بعدة خطوات مرتبة.
إذا التزمت بهذه الخطوات، ستصبح عملية حل المشكلات أسهل بكثير.
━━━━━━━━━━━━━━━━━━━
الخطوة الأولى: فهم المشكلة (Understand the Problem)
هذه أهم خطوة في حل أي خوارزمية.
إذا لم تفهم المشكلة جيدًا، فمن المستحيل أن تكتب حلًا صحيحًا.
في هذه المرحلة لا تفكر في البرمجة.
ولا تفكر في لغة Java أو Python.
كل ما عليك هو أن تفهم المطلوب.
━━━━━━━━━━━━━━━━━━━
اسأل نفسك
ما المطلوب مني؟
ما النتيجة النهائية التي يجب الوصول إليها؟
هل المطلوب حساب قيمة؟
أم البحث عن شيء؟
أم ترتيب بيانات؟
أم مقارنة بين قيم؟
إذا لم تستطع شرح المشكلة بكلماتك، فهذا يعني أنك لم تفهمها بعد.
━━━━━━━━━━━━━━━━━━━
مثال
المطلوب:
احسب متوسط درجات طالب.
قبل التفكير في الحل اسأل نفسك:
ما هو المتوسط؟
إنه مجموع الدرجات مقسومًا على عددها.
إذن أصبحت المشكلة واضحة.
━━━━━━━━━━━━━━━━━━━
الخطوة الثانية: تحديد المدخلات (Identify the Inputs)
بعد فهم المشكلة، اسأل نفسك:
ما البيانات التي سأحتاج إليها؟
هذه البيانات تسمى المدخلات (Inputs).
━━━━━━━━━━━━━━━━━━━
اسأل نفسك
ماذا سأطلب من المستخدم؟
هل سأقرأ رقمًا؟
هل سأقرأ اسمًا؟
هل سأقرأ مجموعة أرقام؟
هل سأقرأ نصًا؟
━━━━━━━━━━━━━━━━━━━
مثال
إذا أردت حساب مساحة مستطيل.
فالمدخلات هي:
الطول.
العرض.
━━━━━━━━━━━━━━━━━━━
الخطوة الثالثة: تحديد المخرجات (Identify the Outputs)
بعد معرفة المدخلات، اسأل نفسك:
ما الذي يجب أن يظهر في النهاية؟
هذه تسمى المخرجات (Outputs).
━━━━━━━━━━━━━━━━━━━
مثال
في برنامج حساب مساحة المستطيل.
المدخلات:
الطول والعرض.
المخرجات:
مساحة المستطيل.
━━━━━━━━━━━━━━━━━━━
الخطوة الرابعة: التفكير في طريقة الحل (Processing)
هذه هي أهم خطوة في الخوارزمية.
هنا تبدأ بالتفكير.
كيف سأحول المدخلات إلى المخرجات؟
ما العمليات المطلوبة؟
━━━━━━━━━━━━━━━━━━━
اسأل نفسك
هل أحتاج إلى عملية جمع؟
هل أحتاج إلى طرح؟
هل أحتاج إلى ضرب؟
هل أحتاج إلى قسمة؟
هل أحتاج إلى مقارنة؟
هل أحتاج إلى تكرار؟
هل أحتاج إلى ترتيب؟
هل أحتاج إلى البحث عن عنصر؟
━━━━━━━━━━━━━━━━━━━
مثال
لحساب مساحة المستطيل.
المعالجة هي:
المساحة = الطول × العرض.
━━━━━━━━━━━━━━━━━━━
الخطوة الخامسة: تقسيم المشكلة إلى خطوات صغيرة
من أكبر أخطاء المبتدئين أنهم يحاولون حل المشكلة كاملة دفعة واحدة.
الطريقة الصحيحة هي تقسيمها إلى أجزاء صغيرة.
كل خطوة تقوم بمهمة واحدة فقط.
━━━━━━━━━━━━━━━━━━━
مثال
المطلوب:
حساب معدل طالب.
بدلًا من التفكير في الحل مرة واحدة.
قسمه إلى خطوات.
1- اقرأ الدرجات.
2- اجمعها.
3- احسب عدد المواد.
4- اقسم المجموع على العدد.
5- اعرض المعدل.
أصبحت المشكلة أسهل بكثير.
━━━━━━━━━━━━━━━━━━━
الخطوة السادسة: كتابة الخوارزمية
بعد أن أصبحت جميع الخطوات واضحة.
ابدأ بكتابتها بالترتيب.
مثال:
ابدأ.
اقرأ الطول.
اقرأ العرض.
احسب المساحة.
اعرض المساحة.
انتهى.
━━━━━━━━━━━━━━━━━━━
الخطوة السابعة: اختبار الخوارزمية (Dry Run)
هذه خطوة يهملها كثير من المبتدئين.
قبل كتابة الكود، جرّب الخوارزمية بنفسك.
استخدم بيانات حقيقية.
وتأكد من أن جميع الخطوات تعطي النتيجة الصحيحة.
━━━━━━━━━━━━━━━━━━━
مثال
إذا كانت الخوارزمية تحسب مساحة المستطيل.
جرب:
الطول = 5
العرض = 4
هل الناتج 20؟
إذا كانت الإجابة نعم.
فالخوارزمية صحيحة.
━━━━━━━━━━━━━━━━━━━
الخطوة الثامنة: تحويل الخوارزمية إلى كود
بعد التأكد من أن الخوارزمية تعمل.
ابدأ بتحويلها إلى لغة البرمجة التي تريدها.
مثل:
Java
Python
بعد أن تعرفنا في الدرس السابق على معنى الخوارزمية، وأهميتها، وخصائصها، أصبح السؤال الطبيعي هو:
كيف يمكن بناء خوارزمية صحيحة لحل أي مشكلة؟
هذه هي المهارة الحقيقية التي تميز المبرمج المحترف عن المبرمج المبتدئ.
فالمبرمج المحترف لا يبدأ بكتابة الكود مباشرة، بل يبدأ بتحليل المشكلة، ثم يفكر في الحل، ثم يصمم الخوارزمية، وبعد ذلك فقط يحولها إلى كود برمجي.
ولهذا فإن تعلم خطوات حل الخوارزميات أهم بكثير من حفظ الأكواد.
━━━━━━━━━━━━━━━━━━━
لماذا نتبع خطوات محددة؟
تخيل أن شخصًا طلب منك بناء منزل.
هل ستبدأ بوضع الطوب مباشرة؟
بالتأكيد لا.
ستعرف أولًا:
ما مساحة الأرض؟
كم عدد الغرف؟
كم عدد الطوابق؟
ما الميزانية؟
ثم تبدأ بالرسم والتخطيط.
وبعد ذلك تبدأ عملية البناء.
والخوارزميات تعمل بالطريقة نفسها.
فلا يمكن كتابة الحل قبل أن نفهم المشكلة.
━━━━━━━━━━━━━━━━━━━
خطوات حل أي خوارزمية
تمر عملية حل أي خوارزمية بعدة خطوات مرتبة.
إذا التزمت بهذه الخطوات، ستصبح عملية حل المشكلات أسهل بكثير.
━━━━━━━━━━━━━━━━━━━
الخطوة الأولى: فهم المشكلة (Understand the Problem)
هذه أهم خطوة في حل أي خوارزمية.
إذا لم تفهم المشكلة جيدًا، فمن المستحيل أن تكتب حلًا صحيحًا.
في هذه المرحلة لا تفكر في البرمجة.
ولا تفكر في لغة Java أو Python.
كل ما عليك هو أن تفهم المطلوب.
━━━━━━━━━━━━━━━━━━━
اسأل نفسك
ما المطلوب مني؟
ما النتيجة النهائية التي يجب الوصول إليها؟
هل المطلوب حساب قيمة؟
أم البحث عن شيء؟
أم ترتيب بيانات؟
أم مقارنة بين قيم؟
إذا لم تستطع شرح المشكلة بكلماتك، فهذا يعني أنك لم تفهمها بعد.
━━━━━━━━━━━━━━━━━━━
مثال
المطلوب:
احسب متوسط درجات طالب.
قبل التفكير في الحل اسأل نفسك:
ما هو المتوسط؟
إنه مجموع الدرجات مقسومًا على عددها.
إذن أصبحت المشكلة واضحة.
━━━━━━━━━━━━━━━━━━━
الخطوة الثانية: تحديد المدخلات (Identify the Inputs)
بعد فهم المشكلة، اسأل نفسك:
ما البيانات التي سأحتاج إليها؟
هذه البيانات تسمى المدخلات (Inputs).
━━━━━━━━━━━━━━━━━━━
اسأل نفسك
ماذا سأطلب من المستخدم؟
هل سأقرأ رقمًا؟
هل سأقرأ اسمًا؟
هل سأقرأ مجموعة أرقام؟
هل سأقرأ نصًا؟
━━━━━━━━━━━━━━━━━━━
مثال
إذا أردت حساب مساحة مستطيل.
فالمدخلات هي:
الطول.
العرض.
━━━━━━━━━━━━━━━━━━━
الخطوة الثالثة: تحديد المخرجات (Identify the Outputs)
بعد معرفة المدخلات، اسأل نفسك:
ما الذي يجب أن يظهر في النهاية؟
هذه تسمى المخرجات (Outputs).
━━━━━━━━━━━━━━━━━━━
مثال
في برنامج حساب مساحة المستطيل.
المدخلات:
الطول والعرض.
المخرجات:
مساحة المستطيل.
━━━━━━━━━━━━━━━━━━━
الخطوة الرابعة: التفكير في طريقة الحل (Processing)
هذه هي أهم خطوة في الخوارزمية.
هنا تبدأ بالتفكير.
كيف سأحول المدخلات إلى المخرجات؟
ما العمليات المطلوبة؟
━━━━━━━━━━━━━━━━━━━
اسأل نفسك
هل أحتاج إلى عملية جمع؟
هل أحتاج إلى طرح؟
هل أحتاج إلى ضرب؟
هل أحتاج إلى قسمة؟
هل أحتاج إلى مقارنة؟
هل أحتاج إلى تكرار؟
هل أحتاج إلى ترتيب؟
هل أحتاج إلى البحث عن عنصر؟
━━━━━━━━━━━━━━━━━━━
مثال
لحساب مساحة المستطيل.
المعالجة هي:
المساحة = الطول × العرض.
━━━━━━━━━━━━━━━━━━━
الخطوة الخامسة: تقسيم المشكلة إلى خطوات صغيرة
من أكبر أخطاء المبتدئين أنهم يحاولون حل المشكلة كاملة دفعة واحدة.
الطريقة الصحيحة هي تقسيمها إلى أجزاء صغيرة.
كل خطوة تقوم بمهمة واحدة فقط.
━━━━━━━━━━━━━━━━━━━
مثال
المطلوب:
حساب معدل طالب.
بدلًا من التفكير في الحل مرة واحدة.
قسمه إلى خطوات.
1- اقرأ الدرجات.
2- اجمعها.
3- احسب عدد المواد.
4- اقسم المجموع على العدد.
5- اعرض المعدل.
أصبحت المشكلة أسهل بكثير.
━━━━━━━━━━━━━━━━━━━
الخطوة السادسة: كتابة الخوارزمية
بعد أن أصبحت جميع الخطوات واضحة.
ابدأ بكتابتها بالترتيب.
مثال:
ابدأ.
اقرأ الطول.
اقرأ العرض.
احسب المساحة.
اعرض المساحة.
انتهى.
━━━━━━━━━━━━━━━━━━━
الخطوة السابعة: اختبار الخوارزمية (Dry Run)
هذه خطوة يهملها كثير من المبتدئين.
قبل كتابة الكود، جرّب الخوارزمية بنفسك.
استخدم بيانات حقيقية.
وتأكد من أن جميع الخطوات تعطي النتيجة الصحيحة.
━━━━━━━━━━━━━━━━━━━
مثال
إذا كانت الخوارزمية تحسب مساحة المستطيل.
جرب:
الطول = 5
العرض = 4
هل الناتج 20؟
إذا كانت الإجابة نعم.
فالخوارزمية صحيحة.
━━━━━━━━━━━━━━━━━━━
الخطوة الثامنة: تحويل الخوارزمية إلى كود
بعد التأكد من أن الخوارزمية تعمل.
ابدأ بتحويلها إلى لغة البرمجة التي تريدها.
مثل:
Java
Python
💯1
C++
C#
أي لغة.
وهنا يصبح الكود مجرد ترجمة للخطوات التي فكرت فيها مسبقًا.
━━━━━━━━━━━━━━━━━━━
الأسئلة التي يجب أن تضعها في عين الاعتبار عند حل أي خوارزمية
قبل أن تبدأ الحل، اسأل نفسك دائمًا هذه الأسئلة:
1- ما المطلوب مني؟
هل المطلوب حساب؟
أم مقارنة؟
أم بحث؟
أم ترتيب؟
━━━━━━━━━━━━━━━━━━━
2- ما هي المدخلات؟
ما البيانات التي سأحتاج إليها؟
━━━━━━━━━━━━━━━━━━━
3- ما هي المخرجات؟
ما النتيجة التي يجب أن تظهر؟
━━━━━━━━━━━━━━━━━━━
4- ما العمليات المطلوبة؟
هل سأستخدم:
جمع؟
طرح؟
ضرب؟
قسمة؟
مقارنة؟
تكرار؟
━━━━━━━━━━━━━━━━━━━
5- هل يوجد شرط؟
هل سأحتاج إلى:
if
else
switch
━━━━━━━━━━━━━━━━━━━
6- هل سأكرر العملية أكثر من مرة؟
إذا كانت الإجابة نعم.
فقد أحتاج إلى:
for
while
do-while
━━━━━━━━━━━━━━━━━━━
7- هل أحتاج إلى تخزين أكثر من قيمة؟
إذا كانت الإجابة نعم.
فقد أحتاج إلى:
Array
List
أو أي هيكل بيانات مناسب.
━━━━━━━━━━━━━━━━━━━
8- هل جميع الحالات مغطاة؟
اسأل نفسك:
ماذا لو كانت القيمة صفرًا؟
ماذا لو كانت سالبة؟
ماذا لو كانت فارغة؟
ماذا لو كانت كبيرة جدًا؟
لا تختبر الحالة العادية فقط، بل فكر أيضًا في الحالات الخاصة والحدية.
━━━━━━━━━━━━━━━━━━━
9- هل يمكن تبسيط الحل؟
أحيانًا تكتب عشر خطوات، بينما يمكن تنفيذ الفكرة نفسها بخمس خطوات فقط.
ابحث دائمًا عن الحل الأبسط والأوضح.
━━━━━━━━━━━━━━━━━━━
10- هل الخوارزمية ستنتهي؟
إذا استخدمت حلقة تكرار، فتأكد من وجود شرط يجعلها تتوقف.
وإلا ستقع في الحلقة اللانهائية (Infinite Loop).
━━━━━━━━━━━━━━━━━━━
مثال عملي
المشكلة:
إيجاد أكبر رقم بين ثلاثة أرقام.
فكر بالإجابة من خلال الأسئلة السابقة:
ما المطلوب؟
إيجاد أكبر قيمة.
ما المدخلات؟
ثلاثة أرقام.
ما المخرجات؟
أكبر رقم.
هل يوجد شرط؟
نعم.
هل يوجد تكرار؟
لا.
ما طريقة الحل؟
قارن الرقم الأول بالثاني والثالث.
إذا كان أكبر منهما فهو الأكبر.
وإلا قارن الرقم الثاني بالثالث.
ثم اعرض أكبر رقم.
لاحظ أن التفكير في الحل سبق كتابة أي كود.
━━━━━━━━━━━━━━━━━━━
أكثر الأخطاء التي يقع فيها المبتدئون
البدء بكتابة الكود قبل فهم المشكلة.
عدم تحديد المدخلات والمخرجات.
محاولة حل المشكلة دفعة واحدة.
تجاهل الحالات الخاصة والحدية.
عدم تجربة الخوارزمية قبل البرمجة.
التركيز على لغة البرمجة بدلًا من طريقة التفكير.
━━━━━━━━━━━━━━━━━━━
قاعدة ذهبية في حل الخوارزميات
كلما واجهت أي مسألة، لا تسأل نفسك:
"كيف سأكتب الكود؟"
بل اسأل:
"كيف سأحل المشكلة لو لم يكن لدي أي لغة برمجة؟"
إذا استطعت كتابة الحل على ورقة باستخدام خطوات واضحة ومنطقية، فقد أنجزت أصعب جزء من العمل. بعد ذلك، تصبح البرمجة مجرد ترجمة لهذه الخطوات إلى أوامر يفهمها الحاسوب.
━━━━━━━━━━━━━━━━━━━
الخلاصة
حل الخوارزميات لا يبدأ من لوحة المفاتيح، بل يبدأ من طريقة التفكير. وكل خوارزمية ناجحة تمر بمراحل واضحة: فهم المشكلة، وتحديد المدخلات والمخرجات، وتصميم خطوات الحل، واختبارها، ثم تحويلها إلى كود.
ويمكن تلخيص الدرس بجملة واحدة:
إذا تعلمت كيف تفكر، ستستطيع كتابة الخوارزمية، وإذا أتقنت الخوارزمية، ستصبح كتابة الكود أسهل بكثير مهما كانت لغة البرمجة التي تستخدمها.
#خوارزميات_من_الصفر
C#
أي لغة.
وهنا يصبح الكود مجرد ترجمة للخطوات التي فكرت فيها مسبقًا.
━━━━━━━━━━━━━━━━━━━
الأسئلة التي يجب أن تضعها في عين الاعتبار عند حل أي خوارزمية
قبل أن تبدأ الحل، اسأل نفسك دائمًا هذه الأسئلة:
1- ما المطلوب مني؟
هل المطلوب حساب؟
أم مقارنة؟
أم بحث؟
أم ترتيب؟
━━━━━━━━━━━━━━━━━━━
2- ما هي المدخلات؟
ما البيانات التي سأحتاج إليها؟
━━━━━━━━━━━━━━━━━━━
3- ما هي المخرجات؟
ما النتيجة التي يجب أن تظهر؟
━━━━━━━━━━━━━━━━━━━
4- ما العمليات المطلوبة؟
هل سأستخدم:
جمع؟
طرح؟
ضرب؟
قسمة؟
مقارنة؟
تكرار؟
━━━━━━━━━━━━━━━━━━━
5- هل يوجد شرط؟
هل سأحتاج إلى:
if
else
switch
━━━━━━━━━━━━━━━━━━━
6- هل سأكرر العملية أكثر من مرة؟
إذا كانت الإجابة نعم.
فقد أحتاج إلى:
for
while
do-while
━━━━━━━━━━━━━━━━━━━
7- هل أحتاج إلى تخزين أكثر من قيمة؟
إذا كانت الإجابة نعم.
فقد أحتاج إلى:
Array
List
أو أي هيكل بيانات مناسب.
━━━━━━━━━━━━━━━━━━━
8- هل جميع الحالات مغطاة؟
اسأل نفسك:
ماذا لو كانت القيمة صفرًا؟
ماذا لو كانت سالبة؟
ماذا لو كانت فارغة؟
ماذا لو كانت كبيرة جدًا؟
لا تختبر الحالة العادية فقط، بل فكر أيضًا في الحالات الخاصة والحدية.
━━━━━━━━━━━━━━━━━━━
9- هل يمكن تبسيط الحل؟
أحيانًا تكتب عشر خطوات، بينما يمكن تنفيذ الفكرة نفسها بخمس خطوات فقط.
ابحث دائمًا عن الحل الأبسط والأوضح.
━━━━━━━━━━━━━━━━━━━
10- هل الخوارزمية ستنتهي؟
إذا استخدمت حلقة تكرار، فتأكد من وجود شرط يجعلها تتوقف.
وإلا ستقع في الحلقة اللانهائية (Infinite Loop).
━━━━━━━━━━━━━━━━━━━
مثال عملي
المشكلة:
إيجاد أكبر رقم بين ثلاثة أرقام.
فكر بالإجابة من خلال الأسئلة السابقة:
ما المطلوب؟
إيجاد أكبر قيمة.
ما المدخلات؟
ثلاثة أرقام.
ما المخرجات؟
أكبر رقم.
هل يوجد شرط؟
نعم.
هل يوجد تكرار؟
لا.
ما طريقة الحل؟
قارن الرقم الأول بالثاني والثالث.
إذا كان أكبر منهما فهو الأكبر.
وإلا قارن الرقم الثاني بالثالث.
ثم اعرض أكبر رقم.
لاحظ أن التفكير في الحل سبق كتابة أي كود.
━━━━━━━━━━━━━━━━━━━
أكثر الأخطاء التي يقع فيها المبتدئون
البدء بكتابة الكود قبل فهم المشكلة.
عدم تحديد المدخلات والمخرجات.
محاولة حل المشكلة دفعة واحدة.
تجاهل الحالات الخاصة والحدية.
عدم تجربة الخوارزمية قبل البرمجة.
التركيز على لغة البرمجة بدلًا من طريقة التفكير.
━━━━━━━━━━━━━━━━━━━
قاعدة ذهبية في حل الخوارزميات
كلما واجهت أي مسألة، لا تسأل نفسك:
"كيف سأكتب الكود؟"
بل اسأل:
"كيف سأحل المشكلة لو لم يكن لدي أي لغة برمجة؟"
إذا استطعت كتابة الحل على ورقة باستخدام خطوات واضحة ومنطقية، فقد أنجزت أصعب جزء من العمل. بعد ذلك، تصبح البرمجة مجرد ترجمة لهذه الخطوات إلى أوامر يفهمها الحاسوب.
━━━━━━━━━━━━━━━━━━━
الخلاصة
حل الخوارزميات لا يبدأ من لوحة المفاتيح، بل يبدأ من طريقة التفكير. وكل خوارزمية ناجحة تمر بمراحل واضحة: فهم المشكلة، وتحديد المدخلات والمخرجات، وتصميم خطوات الحل، واختبارها، ثم تحويلها إلى كود.
ويمكن تلخيص الدرس بجملة واحدة:
إذا تعلمت كيف تفكر، ستستطيع كتابة الخوارزمية، وإذا أتقنت الخوارزمية، ستصبح كتابة الكود أسهل بكثير مهما كانت لغة البرمجة التي تستخدمها.
#خوارزميات_من_الصفر
⚡1❤1