حل معادلات الدرجة الثانية باستخدام فيجوال بيسيك 2008
ما هى معادلة الدرجة الثانية؟
هى المعادلة التى على الصورة التالية

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

ولكن هذة الطريقة أيضا لا يمكننا الإعتماد عليها فى بعض الحالات لأنة قد ينتج أحيانا رقم غير معرف أى أن ليس لة وجود مثل الذى يظهر فى الحالة التالية
هى المعادلة التى على الصورة التالية
حيث أن a وb وc ثوابت وهى أرقام وa و b أكبر أو أقل من الصفر ولكنها لا تساوى صفر و X لا تساوى صفر
المطلوب فى حل هذة المعادلة هو إيجاد قيمة X الذى هو المتغير الوحيد الذى يمكن تمثيل الدالة بدلالتة
يمكن حل بعض معادلات الدرجة الثانية باستخدام طريقة تحليل المقدار الثلاثى ولكن هذة حالات محدودة وعلى ذلك لا بد من موجود طريقة مؤكدة لحل المعادلة
باستخدام طريقة إكمال المربع فإن
ولكن هذة الطريقة أيضا لا يمكننا الإعتماد عليها فى بعض الحالات لأنة قد ينتج أحيانا رقم غير معرف أى أن ليس لة وجود مثل الذى يظهر فى الحالة التالية
إذن X عدد معقد ولا يمكننا التعامل معة بأى صورة لأنة لا يوجد جذر تربيعى لعدد سالب فكيف يمكننا حل هذة النقطة لكى نقوم بعمل برنامج يقوم بحل المعادلة
الحل كالتالى
الحل كالتالى
وعلى ذلك فقد قمنا بتقسيم المعادلة إلى جزئين
-جزء حقيقى Real Part
-جزء تخيلى Imaginary Part
وعلى سبيل المثال فإنة لوكانت لدينا المعادلة التالية
-جزء حقيقى Real Part
-جزء تخيلى Imaginary Part
وعلى سبيل المثال فإنة لوكانت لدينا المعادلة التالية
إذن الجزء الذى يجب أن نتعامل معة لأنشاء البرنامج هو المعادلة الأخيرة التى توصلنا إليها
سنستخدم هذة وليست المعادلة العامة لحل معادلة الدرجة الثانية
وعلى ذلك نقوم بفتح مشروع جديد فى فيجوال بيسيك ونقوم بتصميم شكل مناسب مثل هذا
وعلى ذلك نقوم بفتح مشروع جديد فى فيجوال بيسيك ونقوم بتصميم شكل مناسب مثل هذا
ثم نقوم بإنشاء هذة الدالة
كود:
Private Function QuadRoots(ByVal A As Decimal, ByVal B As Decimal _ , ByVal C As Decimal) As String() Dim Root(1) As String Dim X1 As Decimal = Nothing Dim X2 As Decimal = Nothing Dim Discriminant As Decimal = B ^ 2 - 4 * A * C Dim RealPart As Double = (-B) / (2 * A) Dim ImaginaryPart As Double = (Math.Sqrt(-Discriminant)) / (2 * A) If Discriminant >= 0 Then X1 = (-B + Math.Sqrt(B ^ 2 - 4 * A * C)) / (2 * A) X2 = (-B - Math.Sqrt(B ^ 2 - 4 * A * C)) / (2 * A) Root(0) = X1.ToString Root(1) = X2.ToString End If If Discriminant < 0 Then X1 = (RealPart) + (ImaginaryPart) X2 = (RealPart) - (ImaginaryPart) Root(0) = RealPart.ToString & "+" & ImaginaryPart.ToString & "i" Root(1) = RealPart.ToString & "-" & ImaginaryPart.ToString & "i" End If Return Root End Function
وفى الزر حساب
كود:
Dim Root(1) As String Root = QuadRoots(TextBoxA.Text, TextBoxB.Text, _ TextBoxC.Text) TextBox1.Text = Root(0) TextBox2.Text = Root(1)
End
ليست هناك تعليقات:
إرسال تعليق