البرمجة

برنامج حساب المعادلات التربيعية في C#

برنامجك لحساب المعادلات التربيعية في C# يحتاج إلى بعض التعديلات ليعمل بشكل صحيح. دعني أشرح لك الأخطاء وكيفية تصحيحها.

أولاً وقبل كل شيء، يبدو أنك تقوم بتحويل الأعداد المدخلة من النص إلى أعداد عشرية باستخدام Convert.ToDouble، وهذا قد يتسبب في مشاكل إذا قام المستخدم بإدخال نصوص غير صالحة. لذا يمكنك استخدام double.TryParse للتحقق من صحة الإدخالات قبل تحويلها.

ثانياً، يجب التحقق من قيمة الديسكريمينانت (D) قبل حساب الجذر التربيعي له، حيث يجب على المستخدم التحقق من قيمة D قبل القيام بعملية الجذر التربيعي لتجنب حدوث خطأ تقسيم على الصفر.

ثالثاً، عندما يكون الديسكريمينانت (D) أقل من الصفر، يجب عليك إظهار رسالة تفيد بأنه لا يوجد حل حقيقي.

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

إليك نسخة معدلة من برنامجك:

csharp
using System; class Program { static void Main(string[] args) { double a, b, c, x1, x2, x, D; string A, B, C; Console.Write("a="); A = Console.ReadLine(); Console.Write("b="); B = Console.ReadLine(); Console.Write("c="); C = Console.ReadLine(); if (double.TryParse(A, out a) && double.TryParse(B, out b) && double.TryParse(C, out c)) { if (a != 0) { D = b * b - 4 * a * c; if (D > 0) { x1 = (-b + Math.Sqrt(D)) / (2 * a); x2 = (-b - Math.Sqrt(D)) / (2 * a); Console.WriteLine("x1=" + x1); Console.WriteLine("x2=" + x2); } else if (D < 0) { Console.WriteLine("No real roots exist."); } else { x = (-b / (2 * a)); Console.WriteLine("x=" + x); } } else { Console.WriteLine("a cannot be zero."); } } else { Console.WriteLine("Invalid input. Please enter valid numbers for a, b, and c."); } Console.ReadKey(); } }

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

المزيد من المعلومات

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

أولاً، لقد قمنا بتغيير نوع المتغيرات الذي يُستخدم لتخزين قيم a، b، و c من String إلى double، مما يسمح بتمثيل الأعداد العشرية بشكل صحيح ويسهل عمليات الحساب الرياضي.

csharp
double a, b, c; string A, B, C;

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

csharp
if (double.TryParse(A, out a) && double.TryParse(B, out b) && double.TryParse(C, out c))

ثالثاً، قمنا بإضافة التحقق من قيمة a لتجنب القسمة على الصفر، حيث إذا كانت قيمة a تساوي الصفر، فإن المعادلة لن تكون تربيعية وبالتالي لن يكون هناك حل.

csharp
if (a != 0) { // حساب قيمة الديسكريمينانت (D) وحساب الجذور } else { Console.WriteLine("a cannot be zero."); }

أخيرًا، لقد قمنا بإضافة رسالة تظهر في حالة عدم وجود جذور حقيقية عندما يكون الديسكريمينانت (D) أقل من الصفر.

csharp
else if (D < 0) { Console.WriteLine("No real roots exist."); }

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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