修正java中的公式
Posted
技术标签:
【中文标题】修正java中的公式【英文标题】:Correcting a formula in java 【发布时间】:2020-09-30 01:51:19 【问题描述】:我的第一个任务要求我编写一个表达公式的程序。作业中写的公式:
y = 4x^3 + 8x^2 - 31x - 35 / (3x2 + 1)^1/2 + 2 * | x - 1.5 |
|指绝对值; (...)1/2 表示平方根
另外我应该如何创建一个代码来打印公式打印出正数或负数或零的次数?
这是我创建作业程序的方式:
import java.io.*;
public class hw1
public static void main(String[] args) throws IOException
System.out.println("My name is Jibran Khan and this is the output of my first program.");
double x; double y;
PrintWriter outFile = new PrintWriter("testfile.txt");
for(x=-3.00; x <= 3.0; x = x + 0.50)
y=((4*(x*x*x))) + (8*(x*x))-(31*x)-35/Math.sqrt(3*x*x+1)+2* Math.abs(x-1.5);
System.out.println("X = " + x + "Y = " + y );
if (y<=0.0) System.out.println("Y is negative");
if (y>=0.0) System.out.println("Y is positive");
if (y == 0.0) System.out.println("Y is zero");
System.out.println();
System.out.println("My first program is complete");
outFile.close();
【问题讨论】:
那么你有什么问题? 我的公式不正确,也没有编写一个程序来打印一个数字是正负还是零。 如果 y 为零,则if (y<=0.0)
为真,if (y>=0.0)
也是如此
至于你的逻辑,先搞清楚计算的优先顺序,然后用括号/或中间变量确保顺序如你所愿。
你怎么知道你的公式不正确?
【参考方案1】:
好的,您想对一个简单的数学公式进行测试。您必须测试结果并定义有多少结果是正数、负数或等于 0 ... 您必须更新您的测试...结果等于 0,您的测试返回正、负和空结果。
您还必须计算结果。因此,为每种类型的结果实现计数器并在 if 语句中递增它们。
public static void main(String[] args) throws IOException
double x; double y;
int positive = 0;
int negative = 0;
int equalZero = 0;
PrintWriter outFile = new PrintWriter("testfile.txt");
for(x=-3.00; x <= 3.0; x = x + 0.50)
y = Math.pow(4,3) + ... ( your formula)
System.out.println("X = " + x + "Y = " + y );
if (y < 0.0)
System.out.println("Y is negative");
negative++;
else if (y > 0.0)
System.out.println("Y is positive");
positive++;
else
System.out.println("Y is zero");
equalZero++;
System.out.println();
System.out.println("Positive results : " + positive);
System.out.println("Negative results : " + negative);
System.out.println("Equal to zero : " + equalZero);
outFile.close();
【讨论】:
【参考方案2】:用不同的变量计算分母和分子,这将提高可读性,您将能够轻松发现错误。
此外,您为 y: (y <= 0.0) and (y >= 0.0)
提供的条件将为零,因此最后一个条件 y == 0.0
不可达。
【讨论】:
以上是关于修正java中的公式的主要内容,如果未能解决你的问题,请参考以下文章