Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
初学者在Java中完成正方形时遇到的困难_Java_Math - Fatal编程技术网

初学者在Java中完成正方形时遇到的困难

初学者在Java中完成正方形时遇到的困难,java,math,Java,Math,我是Java领域的初学者,我被指派编写代码来求系数,然后完成平方运算。我已经花了几个小时研究该怎么做,但没有结果(还是初学者),如果有任何帮助,我将不胜感激 import java.util.Scanner; // Declare class public class Squares { // Main method of class. Execution starts public static void main(String[]

我是Java领域的初学者,我被指派编写代码来求系数,然后完成平方运算。我已经花了几个小时研究该怎么做,但没有结果(还是初学者),如果有任何帮助,我将不胜感激

    import java.util.Scanner;

    // Declare class
    public class Squares
 {
        // Main method of class. Execution starts
        public static void main(String[] args)
    {
    // Declare variables
    double a, b, c;
    char x = 'x';

    // Print name
    System.out.println("Program 2 (Complete the Square) by <your name> \n");

    // Create scanner
    Scanner scan = new Scanner(System.in);

    // Print prompt for variable a
    System.out.println("Enter value for a, a=");
    // Set a to input value
    a = Double.parseDouble(scan.nextLine());

    System.out.println("Enter value for b, b=");
    b = Double.parseDouble(scan.nextLine());

    System.out.println("Enter value for c, c=");
    c = Double.parseDouble(scan.nextLine());

    System.out.println(a*Math.pow(x, 2)+b*x+c=0);
    }
 }
该示例给出了所需的输出

    > java Program2
    Program 2 (Complete the Square) by <your name>
    Enter a: 1
    Enter b: 2
    Enter c: 0
    01.0*x^2 + 2.0*x + 0.0 = 0
    01.0*(x + 1.0)^2 – 1.0 = 0
>java程序2
程序2(完成正方形)由
输入a:1
输入b:2
输入c:0
01.0*x^2+2.0*x+0.0=0
01.0*(x+1.0)^2–1.0=0

因此,完成平方运算通常用于找到二次方程的x截距值

假设你有三个系数,
a,b,c
s.t.
ax^2+bx+c=0
。 您需要找到使上述等式为真的
x

一种方法是使用二次方程,但您希望使用完成平方法

您需要一种从
ax^2+bx+c=0
(x+m)^2=n
的方法,很容易找到
x=-m+sqrt(n)
x=-m-sqrt(n)

在我给出任何代码之前,我会在纸上给你做这件事的步骤

对于任何数量
(x+a)^2=x^2+2ax+a^2
,此方法将非常有用

假设您给定:
a、b、c

步骤1:规范化系数,使
a=1
(将
a、b、c
除以
a
) 此步骤之所以有效,是因为
ax^2+bx+c=0
相当于
x^2+(b/a)x+c/a=0

步骤2:将标准化的
c
移动到等式的另一侧。
x^2+bx=-c

第三步:将(b/2)^2添加到等式的两侧
x^2+bx+(b/2)^2=-c+(b/2)^2

步骤4:重写左侧(作为正方形)
(x+b/2)^2=-c+(b/2)^2

步骤5:求解x
x=-b/2+/-sqrt(-c+(b/2)^2)

现在是代码:如果存在任何实值截取,第一部分实际上会查找
x
的值

public static void complete_square(double a, double b, double c) {
  b /= a;
  c /= a;
  c *= -1;
  c += (b/2)*(b/2);
  if (c < 0){
    System.err.println("Error: no real valued roots");
    return;
  }
  if (c == 0){
    System.out.format("X = %f", -b/2); // solution (only 1 distinct root)
    return;
  }
  System.out.format("X = %f", -b/2 + sqrt(c)); // solution 1
  System.out.format("X = %f", -b/2 - sqrt(c)); // solution 2
}
public static void complete_square(双a、双b、双c){
b/=a;
c/=a;
c*=-1;
c+=(b/2)*(b/2);
if(c<0){
System.err.println(“错误:无实值根”);
返回;
}
如果(c==0){
System.out.format(“X=%f”,-b/2);//解决方案(仅1个不同的根)
返回;
}
System.out.format(“X=%f”,-b/2+sqrt(c));//解决方案1
System.out.format(“X=%f”,-b/2-sqrt(c));//解决方案2
}
编辑:将输出更新为请求的格式,并提供更完整的代码框架

import java.util.Scanner;
import Java.lang.Math;

public class Squares {
  public static void main(String args[]){
    // Do your header output and input to get a,b,c values

    // Print the input equation. Uses format to "pretty print" the answer
    // %s - expects a string and %c expects a character
    System.out.format("%s*x^2 %c %s*x %c %s = 0\n",
                      Double.toString(a),
                      (b < 0 ? '-' : '+'),  // ternary operator. Select '-' if b is negative and '+' if b is positive
                      Double.toString(Math.abs(b)),
                      (c < 0 ? '-' : '+'),
                      Double.toString(Math.abs(c)));
    complete_square(a, b, c);
  }

  public static void complete_square(double a, double b, double c) {
    b /= a;
    c /= a;
    a /= a;
    c -= (b/2)*(b/2);
    System.out.format("%s*(x %c %s)^2 %c %s = 0",
                      Double.toString(a),
                      (b < 0 ? '-' : '+'),
                      Double.toString(Math.abs(b/2)),
                      (c < 0 ? '-' : '+'),
                      Double.toString(Math.abs(c)));
  }
}
import java.util.Scanner;
导入Java.lang.Math;
公共类广场{
公共静态void main(字符串参数[]){
//执行标题输出和输入以获得a、b、c值
//打印输入公式。使用格式“漂亮地打印”答案
//%s-需要一个字符串,%c需要一个字符
System.out.format(“%s*x^2%c%s*x%c%s=0\n”,
双。toString(a),
(b<0?'-':'+'),//三元运算符。如果b为负,则选择'-',如果b为正,则选择'+'
Double.toString(Math.abs(b)),
(c<0?'-':'+),
Double.toString(Math.abs(c));
完成方(a、b、c);
}
公共静态空白完整方格(双a、双b、双c){
b/=a;
c/=a;
a/=a;
c-=(b/2)*(b/2);
System.out.format(“%s*(x%c%s)^2%c%s=0”,
双。toString(a),
(b<0?'-':'+),
双.toString(数学abs(b/2)),
(c<0?'-':'+),
Double.toString(Math.abs(c));
}
}

注意:我强烈建议您在复制和粘贴上述代码之前,尝试理解此代码背后的数学知识。

因此,完成平方运算通常用于找到二次方程x截距值的方法

假设你有三个系数,
a,b,c
s.t.
ax^2+bx+c=0
。 您需要找到使上述等式为真的
x

一种方法是使用二次方程,但您希望使用完成平方法

您需要一种从
ax^2+bx+c=0
(x+m)^2=n
的方法,很容易找到
x=-m+sqrt(n)
x=-m-sqrt(n)

在我给出任何代码之前,我会在纸上给你做这件事的步骤

对于任何数量
(x+a)^2=x^2+2ax+a^2
,此方法将非常有用

假设您给定:
a、b、c

步骤1:规范化系数,使
a=1
(将
a、b、c
除以
a
) 此步骤之所以有效,是因为
ax^2+bx+c=0
相当于
x^2+(b/a)x+c/a=0

步骤2:将标准化的
c
移动到等式的另一侧。
x^2+bx=-c

第三步:将(b/2)^2添加到等式的两侧
x^2+bx+(b/2)^2=-c+(b/2)^2

步骤4:重写左侧(作为正方形)
(x+b/2)^2=-c+(b/2)^2

步骤5:求解x
x=-b/2+/-sqrt(-c+(b/2)^2)

现在是代码:如果存在任何实值截取,第一部分实际上会查找
x
的值

public static void complete_square(double a, double b, double c) {
  b /= a;
  c /= a;
  c *= -1;
  c += (b/2)*(b/2);
  if (c < 0){
    System.err.println("Error: no real valued roots");
    return;
  }
  if (c == 0){
    System.out.format("X = %f", -b/2); // solution (only 1 distinct root)
    return;
  }
  System.out.format("X = %f", -b/2 + sqrt(c)); // solution 1
  System.out.format("X = %f", -b/2 - sqrt(c)); // solution 2
}
public static void complete_square(双a、双b、双c){
b/=a;
c/=a;
c*=-1;
c+=(b/2)*(b/2);
if(c<0){
System.err.println(“错误:无实值根”);
返回;
}
如果(c==0){
System.out.format(“X=%f”,-b/2);//解决方案(仅1个不同的根)
返回;
}
System.out.format(“X=%f”,-b/2+sqrt(c));//解决方案1
System.out.format(“X=%f”,-b/2-sqrt(c));//解决方案2
}
编辑:将输出更新为请求的格式,并提供更完整的代码框架

import java.util.Scanner;
import Java.lang.Math;

public class Squares {
  public static void main(String args[]){
    // Do your header output and input to get a,b,c values

    // Print the input equation. Uses format to "pretty print" the answer
    // %s - expects a string and %c expects a character
    System.out.format("%s*x^2 %c %s*x %c %s = 0\n",
                      Double.toString(a),
                      (b < 0 ? '-' : '+'),  // ternary operator. Select '-' if b is negative and '+' if b is positive
                      Double.toString(Math.abs(b)),
                      (c < 0 ? '-' : '+'),
                      Double.toString(Math.abs(c)));
    complete_square(a, b, c);
  }

  public static void complete_square(double a, double b, double c) {
    b /= a;
    c /= a;
    a /= a;
    c -= (b/2)*(b/2);
    System.out.format("%s*(x %c %s)^2 %c %s = 0",
                      Double.toString(a),
                      (b < 0 ? '-' : '+'),
                      Double.toString(Math.abs(b/2)),
                      (c < 0 ? '-' : '+'),
                      Double.toString(Math.abs(c)));
  }
}
imp