2014-02-16 16 views
0
import java.util.Scanner; 

public class LinearDrive { 
    public static void main(String[] args) { 

     Scanner in = new Scanner(System.in); 

     System.out.print("Enter value for a: "); 
     double a= in.nextDouble(); 

     System.out.print("Enter value for b: "); 
     double b= in.nextDouble(); 

     System.out.print("Enter value for c: "); 
     double c= in.nextDouble(); 

     System.out.print("Enter value for d: "); 
     double d= in.nextDouble(); 

     System.out.print("Enter value for e: "); 
     double e= in.nextDouble(); 

     System.out.print("Enter value for f: "); 
     double f= in.nextDouble(); 

     Linear linear = new Linear(a,b,c,d,e,f); 
     System.out.println("X= "+ linear.getX); 
     System.out.println("Y= "+ linear.getY); 


    } 
} 

    public class Linear { 

private double a; 
private double b; 
private double c; 
private double d; 
private double e; 
private double f; 

public Linear(double a, double b, double c, double d, double e, double f) { 
    this.setA(a); 
    this.setB(b); 
    this.setC(c); 
    this.setD(d); 
    this.setE(e); 
    this.setF(f); 
} 

public Linear(){ 

} 


public double getA() { 
    return a; 
} 

public void setA(double a) { 
    this.a = a; 
} 

public double getB() { 
    return b; 
} 

public void setB(double b) { 
    this.b = b; 
} 

public double getC() { 
    return c; 
} 

public void setC(double c) { 
    this.c = c; 
} 

public double getD() { 
    return d; 
} 

public void setD(double d) { 
    this.d = d; 
} 

public double getE() { 
    return e; 
} 

public void setE(double e) { 
    this.e = e; 
} 

public double getF() { 
    return f; 
} 

public void setF(double f) { 
    this.f = f; 
} 

public boolean isSolvable(){ 
    boolean isSolvable= ((a*d) - (b*c)); 
    if (isSolvable!=0){ 
    isSolvable = true; 
    } 

    return isSolvable; 

} 

public double otherCase(){ 
    double otherCase=((a*d) - (b*c)); 
    if(otherCase==0){ 
     otherCase="The equation has no solution"; 
    } 

} 

public double getX(){ 
    double x = ((this.e*this.d) - (this.b*this.f))/((this.a*this.d) - (this.b*this.c)); 
    return x; 
} 

public double getY(){ 
    double y= ((a*f) - (e*c))/((a*d) - (b*c)); 
    return y; 
} 

}Как исправить ошибки в моей объектно-ориентированной программе линейного уравнения?

Я новичок на этом о выполнении объектно-ориентированных программ с просьбой пользователя для ввода. Я знаю, что у меня много ошибок. Мне нужна помощь в том, как сделать мои методы

Программа: попросите пользователя ввести b c d e f и результат отображения. Если ад-Ьс = 0 отчета `Уравнение не имеет решений

ошибки: = не определен на булевом уравнении не имеет решения не могут быть преобразованы из строки в два раза, я попытался строка не может грима он работает. Исключение в потоке «основного» java.lang.Error: Нерешенные проблемы компиляции: GetX не может быть разрешен или не является полем GetY не может быть разрешен или не является полем

+3

'Я знаю, что у меня много ошибок, каковы они? 'как заставить мои методы работать, что не работает сейчас? постарайтесь быть настолько конкретными, насколько сможете. – amit

+0

Могу ли я узнать, почему 'this.setA (this.a)' для? –

+0

1. 'getY()' закомментирован 2. если класс 'Linear' находится в другом файле, он должен скомпилировать и 3. что Генри написал ниже – alfasin

ответ

1

Эта линия

this.setA(this.a); 

должен быть

this.setA(a); 

в противном случае getX и getY методы кажутся нормально. Для того, чтобы позвонить им, что нужно добавить(), например:

System.out.println("X= "+ linear.getX()); 

Чтобы проверить, может ли система быть решена вы можете использовать этот метод следующим образом:

public boolean isSolvable() { 
    return Math.abs(a*b - c*d) > 1e-10; 
} 

Обратите внимание, что вы никогда не должны сравнивать с плавающей номера позиций с ==. Из-за ошибок округления результаты вычислений почти никогда не точны. В приведенном выше коде используется интервал 10 -10, чтобы проверить нулевой детерминант.

+0

Я просто добавил ошибки, которые у меня есть в верхней части –

+0

Большинство из них находятся в коде, который закомментирован; кроме того, этот код не вызывается. Но: 1) вы не можете назначить двойное значение логической переменной, 2) вы не можете сравнивать логическое число с числом, 3) вы не можете назначить String двойной переменной, 4) строковый литерал должен быть разделен символом '' ' – Henry

+0

Как я могу сказать, что, если уравнение равно 0, отображается true? –

Смежные вопросы