2013-06-03 2 views
-1

Я уже задал этот вопрос. Но сделали огромное редактирование. И хотел бы попросить помощи в исправлении моих шагов, так как код java не компилируется.сделать код Java, который печатает корни квадратного уравнения

написать метод printRoots, который задает 3 члена в качестве входных данных, представляющих a, b и c в этом порядке, печатает их корни.

Мы имеем следующую данную информацию

** Если b²-4ac положительного число, ваша программа должна печатать «Эти два корня X и Y», где X является большим корнем и Y является меньший корень

Если b²-4ac равен 0, программа должна напечатать. «Уравнение имеет один X», где Х представляет собой только корневой

Если b²-4ac является отрицательным числом, то программа должна печатать «. Уравнение имеет два корня (-x1 + y1i) и (-x2 и Y2i) * *

термин может быть определена на основе:

Если Ь^2 - 4ac является отрицательным числом, то квадратное уравнение принимает вид: (-b +/- √C)/2a Это означает, что уравнение можно упростить, чтобы стать (-b +/- √Ci)/2a, где квадратный корень не является положительным числом. Рассчитайте коэффициент и печати, (т.е. X1 является -b/2a и Y1 является SQRT (-C)/2i)

Примечание: Не разрешается использовать сканеры для этого вопроса

Можно ли для кого-то, чтобы рассмотреть мой и скажите мне, где я поступил не так, и просто удалю свои сканеры, чтобы сделать его программой без сканеров? Как я могу ввести a, b, c, тогда?

Обратите внимание: вы не должны использовать сканер внутри этого метода. Чтобы протестировать ваш метод, вы можете использовать SCanner в основном методе или вы можете жестко ввести значения кода в свой код из основного метода, а затем вызвать метод printRoots с этими входами или выводами.


import java.util.Scanner;//delete this part after 
public class findingRoots { 
    public static void main(String[] args) 
    { 
    } 
    public static double printRoots(){ //should it be double here or int? 
     //read in the coefficients a,b,and c 
    Scanner reader = new Scanner(System.in); 
    System.out.println("Enter the value of a"); 
    int a=reader.nextInt(); 
    System.out.println("Enter the value of b"); 
    int b=reader.nextInt(); 
    System.out.println("Enter the value of c"); 
    int c=reader.nextInt();   
    //now compte the discrimintat d 
    double discriminant = (Math.pow(b, 2.0)) - (4 * a * c); 
    d=Math.sqrt(discriminant); 
    double X,Y; //root 1 & root 2, respectively 
    // is the step double X,Y necessary? 
    double d = (b*b)-(4.0*a*c); 

     if (discriminant > 0.0){ 
     X = (-b + d)/(2.0 * a); //X= root 1, which is larger 
     **//do i put int or double in front of X?** 
     Y = (-b - d)/(2.0 *a); //Y= root 2, which is the smaller root 
      String root1 = Double.toString(X) 
     String root2 = Double.toString(Y) 
    System.out.println("The two roots are X and Y:" + root1 + "and" + root2); 
} 
else{ 
    if (discriminant==0.0) 
    X = (-b + 0.0)/(2.0 * a);//repeated root 
    String root2 = Double.toString(X) 
    System.out.println("The equation has one root X:" + root1);//where X is the only root 
} 
if(discriminant < 0.0){ 
    X1 = -b/(2*a); 
    Y1 = (Math.sqrt(-C))/(2*a); 
    X2 = -b/(2*a); 
    Y2 = (-(Math.sqrt(-C)))/(2*a); 
    String root1 = Double.toString(X1) 
    String root2 = Double.toString(Y1) 
    String root3 = Double.toString(X2) 
    String root4 = Double.toString(Y2) 
    System.out.println("The equation has two roots:" + (root1 + (root2)"i") "and" + (root3 + (root4)"i"); 
    // where i represents the square root of negative 1 
} 
} 
} 
+1

Возможно, '**' в передней части строки является проблемой компиляции. Но еще лучше, вы можете сказать нам, какие ошибки вы получаете. Мы можем помочь вам понять эти сообщения. –

+1

Возможно, вы захотите перейти на http://codereview.stackexchange.com/ – OldProgrammer

+2

На самом деле это не связано с Javascript? –

ответ

0

Ok, так что довольно немного неправильно с кодом. Вот бегущая версия вашей программы. (или, по крайней мере, как можно ближе к тому, что вы пытаетесь сделать).

//import java.util.Scanner;//delete this part after 
public class findingRoots { 
    public static void main(String[] args) { 
     double temp = printRoots(Integer.parseInt(args[0]), Integer.parseInt(args[1]), Integer.parseInt(args[2])); 
    } 
    public static double printRoots (int a, int b, int c){ //should it be double here or int? 
     //read in the coefficients a,b,and c 
     //now compte the discrimintat d 
     double discriminant = (Math.pow(b, 2.0)) - (4 * a * c); 
     double d=Math.sqrt(discriminant); 
     double X = 0,Y = 0; //root 1 & root 2, respectively 
     // is the step double X,Y necessary? 
     d = (b*b)-(4.0*a*c); 

     if (discriminant > 0.0) { 
      X = (-b + d)/(2.0 * a); //X= root 1, which is larger 
      //do i put int or double in front of X?** 
      Y = (-b - d)/(2.0 *a); //Y= root 2, which is the smaller root 
      String root1 = Double.toString(X); 
      String root2 = Double.toString(Y); 
      System.out.println("The two roots are X and Y:" + root1 + "and" + root2); 
     } 
     else if (discriminant==0.0){ 
      X = (-b + 0.0)/(2.0 * a);//repeated root 
      String root2 = Double.toString(X); 
      System.out.println("The equation has one root X:" + root2);//where X is the only root 
     } 
     else if (discriminant < 0.0){ 
      double X1 = -b/(2*a); 
      double Y1 = (Math.sqrt(-c))/(2*a); 
      double X2 = -b/(2*a); 
      double Y2 = (-(Math.sqrt(-c)))/(2*a); 
      String root1 = Double.toString(X1); 
      String root2 = Double.toString(Y1); 
      String root3 = Double.toString(X2); 
      String root4 = Double.toString(Y2); 
      System.out.println("The equation has two roots:" + root1 + root2 + "and" + root3 + root4); 
      // where i represents the square root of negative 1 
     } 
     return -1; 
    } 
} 

Чтобы запустить этот код просто наберите: java findingRoots 1 2 3 где 1 2 3 Ваши значения а, Ъ, с соответственно.

Это не работает так, как вы этого хотите (я полагаю). Это должно помочь вам начать стрельбу, хотя теперь она может работать. Давайте посмотрим, что вы можете сделать здесь.

+0

Сравните код с кодом. Убедитесь, что вы завершаете каждое утверждение «;». Вы видите после всех моих заявлений, что у меня есть «?»? Это необходимо, просто не забудьте поставить это после ваших заявлений. – LiverpoolFTW

+0

Я понял, что забыл поставить; после моего заявления. Я удалил комментарий, потому что понял это. Хотя еще раз спасибо за отличный ответ –

+0

Он наконец-то СОЗДАЛ! = p СПАСИБО за помощь. Я застрял на этом некоторое время. –

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