2015-10-05 33 views
0

我想在C#中制作一个方程组的程序。我知道如何在纸上解决这个问题,但我很难将其写入代码。我在这方面很新颖(不到一个月前开始编程,几天前C#也开始编程),所以我知道这是不正确的,但这是我能想到的最好的。我试着在这里和其他网站上搜索某些东西,以便向正确的方向发送我,但找不到任何东西。我不想让你为我编写整个程序,只需要几行就可以给我正确的想法。这是我到目前为止,我意识到它的错误,为什么它不工作,我只是无法找到如何解决它们。方程程序系统

  Console.WriteLine("Enter first equation A: "); 
      string str1A = Console.ReadLine(); 
      Console.WriteLine("Enter first equation B: "); 
      string str1B = Console.ReadLine(); 
      Console.WriteLine("Enter first equation C: "); 
      string str1C = Console.ReadLine(); 

      Console.WriteLine("Enter the second equation A: "); 
      string str2A = Console.ReadLine(); 
      Console.WriteLine("Enter the second equation B: "); 
      string str2B = Console.ReadLine(); 
      Console.WriteLine("Enter the second equation C: "); 
      string str2C = Console.ReadLine(); 

      double dbl1A = Convert.ToDouble(str1A); 
      double dbl1B = Convert.ToDouble(str1B); 
      double dbl1C = Convert.ToDouble(str1C); 
      double dbl2A = Convert.ToDouble(str2A); 
      double dbl2B = Convert.ToDouble(str2B); 
      double dbl2C = Convert.ToDouble(str2C); 

      double dbl2AN = dbl2A * -1; 
      double dbl2BN = dbl2B * -1; 
      double dbl2CN = dbl2C * -1; 

      double dbl3A = dbl1A + dbl2AN; 
      double dbl3B = dbl1B + dbl2BN; 
      double dbl3C = dbl1C + dbl2CN; 

      Console.WriteLine(dbl3A + "+" + dbl3B + "+" + dbl3C); 
      Console.ReadLine(); 
+0

通过你一步做在纸上,一步就什么走,并写相同的指令转换为C#。这个技能对于当程序员来说至关重要。此外,请考虑使用数组而不是变量“1A,2A”,并且您通常不会在C#中使用匈牙利符号。 – BradleyDotNET

+1

你也可以简单地写'double dbl3A = dbl1A - dbl2A;'而不用这个过时的'dbl2AN'。 –

回答

0

我建议你退后一步,考虑一下你期望的变量,你有表达式计算和什么是数字被传递到程序。

是“第一个公式A”应该是“3倍”或“3X = 2”还是其他什么东西在这里的表现?方程式将具有相同的标志,因此必须将其解析为我怀疑的左侧和右侧。虽然矩阵求逆是编码解决方案的一种途径,但您首先必须让用户输入矩阵的值。例如,考虑你是否有2个方程,如:x + y = 4和x-y = 2。请注意,要解决这些问题,您可以添加它们并获得x = 3,而使用基本的行操作时,减法将给y = 1。

如果你有一个矩阵,其中第一行是:(1,1),第二行是:(1,-1),那么你可以用一个公式来反转,并产生了如何对我的想法的解决方案来处理一个2×2的情况,可能会推广到3×3这可能有点丑陋的计算。

+0

也许这个方程就像'y = A * x^2 + B * x + C',并且总是相同的。所以只有常数A,B和C在改变。 –

2

我假设你正在做的系数两个方程的形式Ax + By = C如果是这样的过程将是相同的,因为它是在纸面上的情况。将每个第二方程的系数乘以A1/A2,然后从第一个方程中的相应系数中减去它们(A的结果应为0)。这使你的B*y = C*的方程(其中B*C*是值),它可以很容易地解决用于Y。然后将该y插回到原始方程中并求解x