Java でのデカルト勾配の計算に問題があります。したがって、私のソースコードでは、デカルト座標系の 2 点の 2 つの座標を表す 4 つの数値 x1 y1 x2 y2 を入力できます。
次に、deltaX と deltaY を計算して勾配を計算します。(deltaY / deltaX)
そのため、10 分の 1 の数値を取得する場合に備えて、勾配の終了計算に double を使用します。
次に、IF 関数を使用して次のように言いますif slope = 0 --> println("not a linear line")
。そうでなければ、X極とY極のクロスポイントを計算し、結果を印刷します
ここに問題があります: 勾配が 0 の場合 (例 x1:0 y1:1 x2:0 y2:9)、エラーが発生します:Exception in thread main java.lang.ArithmeticException: / by zero
完全なスクリプトは次のとおりです。
import java.io.*;
public class Cartesian
{
public static int leesIn(String var, BufferedReader in) throws IOException
{
System.out.println("type een getal in die " + var + " moet voorstellen.");
return Integer.parseInt(in.readLine());
}
public static void main(String[] args) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int x1, x2, y1, y2;
x1 = leesIn("X1", in);
y1 = leesIn("Y1", in);
x2 = leesIn("X2", in);
y2 = leesIn("Y2", in);
System.out.println("The Coördinates of point 1 is: (" + x1 + ", " + y1 + "). The Coördinates of point 2 is: (" + x2 + ", " + y2 + ").");
int deltaY = y2 - y1;
int deltaX = x2 - x1;
double RC = deltaY / deltaX;
if ((RC) == 0)
{
System.out.println("The slope is 0, no linear line.");
}else
{
System.out.println("The slope is: " + RC);
double B = y1-(RC*x1);
System.out.println("The crosspoint with Y, if x is 0, : " + B);
}
}
}
誰でも私の問題を解決する方法を知っていますか? 事前にtnx!