الدرس السادس(100):حل معادلة من الدرجة الثانية


أكثر شيء أحبه بعد البرمجة هو الرياضيات...خصوصا و أن البرمجة هي أصلا وليدة علم الرياضيات.
باﻹستناد إلى ما أخذناه في الدروس السابقة فإنه بإمكاننا اﻵن أن نقوم بكتابة سكريبت بسيط يقوم بحل المعادﻻت الرياضياتية من الدرجة الثانية...لنبدأ العمل:
لدينا معادلة من الدرجة الثانية تكتب على الشكل التالي:
ax²+bx+c=0
تكون هته المعادلة من الدرجة الثانية إذا لم يكن a=0 و إن كان كذلك فإن المعادلة تصبح من الدرجة الأولى و بالتالي فإنها ستكتب كالتالي:
bx+c=0 
و عليه فإن حل هذه المعادلة هو كالتالي:
X0=-c/b 
و هنا ينتهي العمل،أما أن كان a يختلف عن الصفر(0) فإن علينا حساب معامل ديلتا من أجل أن نجد الحلول الممكنة،يتم حساب معامل ديلتا عن طريق الصيغة التالية:
b²-4ac
اﻵن إذا كان معامل ديلتا أقل من الصفر(سالب) فالمعادلة السابقة ﻻ تقبل حلول،إذا كان معامل ديلتا يساوي الصفر فإن المعادلة تقبل حلا وحيدا و يساوي:
-b/2a 
أما إذا كان معامل ديلتا أكبر من الصفر فهنا المعادلة تقبل حلين هما :
x1=(-b-(delta)**0.5)/2a
x2=(-b+(delta)**0.5)/2a
أعتقد بأنك تعرف ما معنى 1/2(delta)،هي ببساطة الجذر التربيعي للمعامل ديلتا...اﻵن سنقوم بكتابة السكريبت الذي سيقوم بحل المعادﻻت من الدرجة الثانية...

بداية سنستقبل المدخلات من المستخدم عن طريق الدالة raw_input و التي ستستقبل المدخلات باعتبارها سلاسل نصية و بالتالي علينا تحويلها إلى شكلها الرقمي كالتالي  

ﻻ أعتقد بأنه يوجد شيء يحتاج إلى شرح،فنحن استقبلنا مدخلات المستخدم و حولناها إلى أرقام و وضعناها في متغيرات فقط،اﻵن سنبدأ في عملية التحقق:

و هي تطبيق للشرط اﻷول فإن كان a يساوي الصفر فسنقوم بطباعة الحل X0 أما إن لم يكن يساوي 0 فسننتقل إلى التحقق الثاني:

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

تعليقات

  1. المعادلة خاطئة الجزء المتعلق بحساب x1,x2
    جذر دلتا لا يساوي دلتا *0.5
    قم باستبدالها بعبارة:
    math.sqty(delta)
    مع import math

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

      حذف
    2. في الحقيقة انت لم ترفع القوة ولكنك قمت بالضرب في 0.5 قم بتصحيح الكود البرمجي ((-b-0.5*delta)/2*a)
      الى ((-b-0.5**delta)/2*a)

      حذف
    3. نعم هذا صحيح و أشكرك على التنبيه أخي الحبيب

      حذف
    4. العفو اخي الكريم فهذا خطأ بسيط لا ينقص من معلوماتك انا متابع لهذا الموقع الرائع
      هل ممكن نتواصل على الخاص ؟

      حذف
    5. شكرا لك أخي الحبيب،وشكرا على الكلمات المشجعة،يمكنك مراسلتي عبر صفحة التواصل

      حذف
    6. اين هي صفحة التواصل ؟

      حذف
    7. من هنا
      http://www.hackercademy.com/p/twasol.html

      حذف
  2. انا للامانه لم افهم شي من هذه المعادلة بحكم ضعفي بالرياضيات

    ردحذف
    الردود
    1. الرياضيات شيء جميل جدا

      حذف
    2. طيب ماهي الرياضيات المستخدمة

      حذف
    3. رياضيات بسيطة جدا،يتم تدريسها في اﻹعدادية

      حذف
  3. http://dzair-web.blogspot.com/2014/11/blog-post_21.html

    ردحذف
  4. بتواجه مشكلة لبعض الطلبة و والمهندسين وهي الالة الحاسبة الموجودة بالكومبيوتر او الموبيل بانها لا تمكنك من حل المعادلات الرياضية والدوال .

    فتوجد الات اون لاين علمة تمكنك من حل المعادلات والدوال وادخال عليها المعادلات المختصرة لتعطيك النتيجة النهائية:
    http://tools.electronicbub.com/

    او يمكنك استخدام تطبيق الموبيل مثل:
    https://play.google.com/store/apps/details?id=cz.hipercalc&hl=ar

    وايضاً برنامج للكومبيوتر:
    http://www.mediafire.com/file/l90ld43rtucy933/%D8%A7%D9%84%D8%A7%D9%84%D8%A9+%D8%A7%D9%84%D8%AD%D8%A7%D8%B3%D8%A8%D8%A9.exe

    ردحذف
  5. أزال المؤلف هذا التعليق.

    ردحذف
  6. السلام عليكم ورحمة الله وبركاته
    أولا اشكركم على معلوماتكم واطروحاتكم الجميلة والمفيدة.
    أنا بدأت اتعلم لغة البايثون في الجامعة وأعطانا الدكتور هذا الواجب :
    برنامج لحل المعادلة الربيعية
    النموذج القياسي للمعادلة التربيعية هو :
    ax**2+bx+c=0
    حيث a,b,cتكون إعداد حقيقية وa لايساوي صفر.
    انت يجب عليك ادخال القيمa,b,c
    وناقش الأكواد سطرا سطرا

    ردحذف
    الردود
    1. لوتكرمتوا اكتبوا لي البرنامج مع شرح الأكواد بأسرع وقت

      حذف

إرسال تعليق

شاركنا رأيك حول الموضوع...