01/10/2018, 08:46

Java Nhập Môn mong anh em giúp đỡ!

Đậy là phần code mình mới tự làm về giải phương trình bậc hai nhưng lỗi ở chỗ phần tính delta vì mình tao cho nó một public static double delta(double a,double b,double c).Nhưng phương trình chỉ cho nghiệm kép còn lại mình nhập a,c,b bằng bất cứ số nào đều ra vô nghiệm. Mọi người giúp mình giải nhé

/
*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package practicephuongtrinhbachai;

import java.util.Scanner;

/**
 *
 * @author Welcome
 */
public class PracticePhuongTrinhBacHai {
public static double delta(double b,double c,double a){
    return b*b-4*a*c;
}
public static double nghiemkep(double b,double c){
    return -c/b;
}
public static double omega(double b,double a){
    return -b/2*a; 
}

    /**
     * @param args the command line arguments
     */

    public static void main(String[] args) {
        // TODO code application logic here
       Scanner scan = new Scanner(System.in);
       System.out.println("Hay nhap ba so a,b,c");
        System.out.println("a co gia tri la: ");
        double a= scan.nextDouble();
        System.out.println("b co gia tri la: ");
        double b= scan.nextDouble();
        System.out.println("c co gia tri la: ");
        double c= scan.nextDouble();
        if(a==0){
            double nghiem=nghiemkep(b,c);
            System.out.println("phuong co nghiem la"+nghiem);
        }
        else{
            double del=delta(a,b,c);
            if(del<0){
                System.out.println("phuong trinh vo nghiem");
            }
            else if(del==0){
                double nghiem1=omega(a,b);
                System.out.println("phuong trinh co nghiem la: "+nghiem1);
            }
            else{
                  double x1=(-b-Math.sqrt(del))/2*a;
                  double x2=(-b+Math.sqrt(del))/2*a;
                  System.out.println("phuong trinh co nghiem la: "+x1+x2);
              }
        }
    }
    
}
Luân Hồ viết 10:57 ngày 01/10/2018

public static double delta(double b,double c,double a){ return bb-4a*c;}
Bạn nhầm phần này nhé. double b,double c,double a --> double a, double b, double c mới đúng

Đoạn này nữa
System.out.println("phuong trinh co nghiem la: "+x1+x2);
x1+x2 là phép cộng hai số , sửa thành "x1 = "+x1+ " \n x2 = "+x2

HaThanhDung viết 10:57 ngày 01/10/2018

bạn ơi vấn đề của mình là lúc nào mình bấm 3 giá trị a,b,c thì nó cũng hiện ra là phương trình vô nghiệm hết

Phạm Tiến Thành Đạt viết 10:58 ngày 01/10/2018

Là vì khi bạn khởi tạo method delta lúc đầu thứ tự bạn truyền tham số là (b,c,a) nhưng khi bạn gọi method thì bạn lại truyền là (a,b,c)

HelloWorld viết 10:49 ngày 01/10/2018

C1:

public static double delta(double b,double c,double a){
return bb-4a*c;
}

Bạn sửa lại thứ tự tham số là double a, double b, double c.

C2:

else{
double del=delta(a,b,c);

Bạn có thể sửa lại delta(b,c,a);

Và ở cái có 2 nghiệm

else{
double x1=(-b-Math.sqrt(del))/2a;
double x2=(-b+Math.sqrt(del))/2
a;
System.out.println("phuong trinh co nghiem la: "+x1+x2);
}

Bạn sửa lại thành

double x1=(-b-Math.sqrt(del))/ (2*a);
double x2=(-b+Math.sqrt(del))/ (2*a);

Bài liên quan
0