Đề Xuất 1/2023 # Giải Phương Trình Bậc 2 Trong Java Swing # Top 9 Like | Asianhubjobs.com

Đề Xuất 1/2023 # Giải Phương Trình Bậc 2 Trong Java Swing # Top 9 Like

Cập nhật nội dung chi tiết về Giải Phương Trình Bậc 2 Trong Java Swing mới nhất trên website Asianhubjobs.com. Hy vọng thông tin trong bài viết sẽ đáp ứng được nhu cầu ngoài mong đợi của bạn, chúng tôi sẽ làm việc thường xuyên để cập nhật nội dung mới nhằm giúp bạn nhận được thông tin nhanh chóng và chính xác nhất.

Đề bài

Viết chương trình giải phương trình bậc 2 trong java sử dụng Swing. Phương trình bậc 2 có dạng:

Lời giải

Thay vì sử dụng java.util.Scanner như trong bài giải phương trình bậc 2 trong java, bài này chúng ta sẽ sử dụng Swing để tạo giao diện window như sau:

Bài này được viết trên eclipse, bạn có thể tham khảo bài tạo chương trình java đầu tiên trên eclipse.

Tạo 3 lớp như sau:

PTB2View.java: lớp này extends lớp JFrame được sử dụng để tạo giao diện window.

PTB2.java: lớp này chứa hàm main() để khởi chạy chương trình.

Lớp PTB2View.java

package vn.viettuts.swing.ptb2; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JTextField; public class PTB2View extends JFrame { private JTextField textFieldA; private JTextField textFieldB; private JTextField textFieldC; private JButton btnKetQua; private JTextArea textArea; public PTB2View() { setTitle("Java Swing - giải phương trình bậc 2"); JLabel labelHangSo = new JLabel("Hằng số:"); JLabel labelHangSoA = new JLabel("a:"); JLabel labelHangSoB = new JLabel("b:"); JLabel labelHangSoC = new JLabel("c:"); labelHangSo.setBounds(20, 20, 50, 20); labelHangSoA.setBounds(20, 50, 30, 20); labelHangSoB.setBounds(100, 50, 30, 20); labelHangSoC.setBounds(180, 50, 30, 20); textFieldA = new JTextField(); textFieldB = new JTextField(); textFieldC = new JTextField(); textFieldA.setBounds(40, 50, 40, 20); textFieldB.setBounds(120, 50, 40, 20); textFieldC.setBounds(200, 50, 40, 20); btnKetQua = new JButton("Kết Quả"); btnKetQua.setBounds(20, 80, 80, 30); textArea = new JTextArea(); textArea.setBounds(20, 120, 350, 150); add(labelHangSo); add(labelHangSoA); add(textFieldA); add(labelHangSoB); add(textFieldB); add(labelHangSoC); add(textFieldC); add(btnKetQua); add(textArea); setLayout(null); setSize(450, 400); setVisible(true); } public JTextField getTextFieldA() { return textFieldA; } public void setTextFieldA(JTextField textFieldA) { this.textFieldA = textFieldA; } public JTextField getTextFieldB() { return textFieldB; } public void setTextFieldB(JTextField textFieldB) { this.textFieldB = textFieldB; } public JTextField getTextFieldC() { return textFieldC; } public void setTextFieldC(JTextField textFieldC) { this.textFieldC = textFieldC; } public JButton getBtnKetQua() { return btnKetQua; } public void setBtnKetQua(JButton btnKetQua) { this.btnKetQua = btnKetQua; } public JTextArea getTextArea() { return textArea; } public void setTextArea(JTextArea textArea) { this.textArea = textArea; } }

Lớp PTB2Controller.java

package vn.viettuts.swing.ptb2; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JOptionPane; public class PTB2Controller implements ActionListener { private PTB2View view; private float hangsoA; private float hangsoB; private float hangsoC; public PTB2Controller(PTB2View view) { chúng tôi = view; view.getBtnKetQua().addActionListener(this); view.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(1); } }); } /** * Giải phương trình bậc 2: ax2 + bx + c = 0 * * @param a: hệ số bậc 2 * @param b: hệ số bậc 1 * @param c: số hạng tự do */ private static String giaiPTBac2(float a, float b, float c) { String ketqua = null; if (a == 0) { if (b == 0) { ketqua = "Phương trình vô nghiệm!"; } else { ketqua = "Phương trình có một nghiệm: " + "x = " + (-c / b); } } float delta = b*b - 4*a*c; float x1; float x2; x1 = (float) ((-b + Math.sqrt(delta)) / (2*a)); x2 = (float) ((-b - Math.sqrt(delta)) / (2*a)); ketqua = "Phương trình có 2 nghiệm là: " + "x1 = " + x1 + " và x2 = " + x2; } else if (delta == 0) { x1 = (-b / (2 * a)); ketqua = "Phương trình có nghiệm kép: " + "x1 = x2 = " + x1; } else { ketqua = "Phương trình vô nghiệm!"; } return ketqua; } private boolean validateHangSoA() { boolean isValid = false; try { if (!"".equals(view.getTextFieldA().getText())) { hangsoA = Float.parseFloat(view.getTextFieldA().getText()); isValid = true; } else { JOptionPane.showMessageDialog(view, "Hằng số a không được trống."); } } catch (NumberFormatException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(view, "Hằng số a không hợp lệ."); } return isValid; } private boolean validateHangSoB() { boolean isValid = false; try { if (!"".equals(view.getTextFieldB().getText())) { hangsoB = Float.parseFloat(view.getTextFieldB().getText()); isValid = true; } else { JOptionPane.showMessageDialog(view, "Hằng số b không được trống."); } } catch (NumberFormatException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(view, "Hằng số b không hợp lệ."); } return isValid; } private boolean validateHangSoC() { boolean isValid = false; try { if (!"".equals(view.getTextFieldC().getText())) { hangsoC = Float.parseFloat(view.getTextFieldC().getText()); isValid = true; } else { JOptionPane.showMessageDialog(view, "Hằng số c không được trống."); } } catch (NumberFormatException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(view, "Hằng số c không hợp lệ."); } return isValid; } @Override public void actionPerformed(ActionEvent e) { if (validateHangSoA() && validateHangSoB() && validateHangSoC()) { view.getTextArea().setText(giaiPTBac2(hangsoA, hangsoB, hangsoC)); } else { view.getTextArea().setText(""); } } public PTB2View getView() { return view; } public void setView(PTB2View view) { chúng tôi = view; } }

Lớp PTB2.java

package vn.viettuts.swing.ptb2; public class PTB2 { public static void main(String[] args) { PTB2View view = new PTB2View(); PTB2Controller controller = new PTB2Controller(view); } }

Kết quả:

Hiển thị ban đầu:

Nhập giá trị đúng cho các hằng số:

Nhập hằng số a không hợp lệ.

Không nhập hằng số a.

Giải Phương Trình Bậc Hai Trong Java

Trong bài tập này chúng ta sẽ thực hiện chương trình giải phương trình bậc hai trong Java. Đây là một bài tập phổ biến khi bắt đầu học ngôn ngữ lập trình.

Phương trình bậc hai có 3 hệ số là a, b, c có dạng như sau:

Ví dụ: Chương trình giải phương trình bậc hai trong Java.

Giải thích:

Đầu tiên chúng ta sẽ yêu cầu người dùng nhập vào các hệ số a, b, c cho phương trình bậc hai.

Tiếp đến tính Delta = b*b-4*a*c

Sau đó xét điều kiện cho Delta:

Nếu Delta < 0 thì phương trình vô nghiệm.

Nếu Delta = 0 thì phương trình có nghiệp kép là x1 = x2 = -b / 2 * a.

Và cuối cùng là hiển thị kết quả ra màn hình.

import java.util.Scanner; public class GiaiPTBacHai { public static void main(String[] args) { double a, b, c, x1, x2, delta; String ketQua = ""; Scanner scanner = new Scanner(System.in); do { System.out.print("Nhập a (a # 0): "); a = scanner.nextDouble(); } while (a == 0); System.out.print("Nhập b: "); b = scanner.nextDouble(); System.out.print("Nhập c: "); c = scanner.nextDouble(); System.out.println("Phương trình bậc hai bạn vừa nhập có dạng: "+a+"x^2 + "+b+"x + "+c+" = 0"); delta = Math.pow(b, 2) - 4 * a * c; if (delta < 0) { ketQua = "Phương trình vô nghiệm!"; } else if (delta == 0) { x1 = x2 = -b/ (2*a); System.out.println("Phương trinh có nghiệm kép là x1 = x2 = "+x1); } else { x1 = (-b + Math.sqrt(delta)) / (2 * a); x2 = (-b - Math.sqrt(delta)) / (2 * a); ketQua = "Phương trình có 2 nghiệm x1 = " + x1 + " và x2 = " + x2; } System.out.println(ketQua); System.out.println("Chương trình này được đăng tại Freetuts.net"); } }

Bài Toán Phương Trình Bậc Nhất Trong Java

Một bài toán cơ bản tiếp theo trong ngôn ngữ lập trình nói chung và lập trình Java nói riêng đó là phương trình bậc nhất. Bài học hôm nay mình sẽ hướng dẫn các bạn cách giải bài toán phương trình bậc nhất trong Java. Bài học nằm trong Serie lập trình Java căn bản.

Giải bài toán phương trình bậc nhất trong Java như thế nào?

Nếu bạn chưa cài đặt Eclipse có thể xem qua bài này : Hướng dẫn cài đặt jdk và Eclipse

Bạn nên tạo thói quen tạo từng Package cho mỗi phần học để quản lý dễ dàng hơn.

Bạn sẽ thấy Class mà bạn vừa tạo và việc của bạn bây giờ là viết code xử lý bài toán phương trình bậc nhất

Đây là màn hình ban đầu.

Phương pháp giải bài toán phương trình bậc nhất trong Java mình vẫn sẽ áp dụng phương pháp tách hàm giống như các bài toán tính chu vi và diện tích hình tam giác, hình tròn. Đây là phương pháp nên dùng và được sử dụng rất nhiều hiện nay, việc áp dụng tách hàm giúp bạn khi học đến lập trình hướng đối tượng bạn sẽ không còn lạ lẫm hay gặp quá nhiều khó khăn.

Mình tách thành 2 hàm NhapSoNguyen, GiaiPTbac1 và một phương thức main.

Bạn chạy chương trình, nhập vào hệ số phương trình sẽ thấy được kết quả:

Lời kết : Bài toán phương trình bậc nhất trong Java là một trong những bài toán cơ bản mà người mới học lập trình phải biết và viết được, vì vậy bạn nên tự tay viết từng dòng code để thành thục và nhớ lâu hơn. Bài học tới mình sẽ hướng dẫn các bạn cách giải bài toán phương trình bậc hai trong Java. Một trong những bài toán cổ điển mà bất kỳ ai mới học lập trình cũng phải trải qua.

Những bài bạn nên xem:

Câu lệnh điều kiện trong lập trình Java

Câu lệnh lặp trong lập trình Java

Tính chu vi và diện tích tam giác trong Java

Tính chu vi và diện tích hình tròn trong Java

Lập Trình C: Giải Phương Trình Bậc 2

Lập trình C: Giải phương trình bậc 2

Đăng ký nhận thông báo về những video mới nhất

Video hướng dẫn:

Code demo:

//

Bai

toan

giai

phuong

trinh

bac

hai

void

main

()

{

  

float

a

,

b

,

c

,

d

,

x1

,

x2

;

  

clrscr

();

  

printf

(

“nNhap vao a: “

);

  

scanf

(

“%f”

,&

a

);

  

printf

(

“nNhap vao b: “

);

  

scanf

(

“%f”

,&

b

);

  

printf

(

“nNhap vao c: “

);

  

scanf

(

“%f”

,&

c

);

  

if

(

a

==

0

){

    

if

(

b

==

0

){

      

if

(

c

==

0

){

        

printf

(

“nPhuong trinh vo so nghiem!”

);

      

}

      

else

{

        

printf

(

“nPhuong trinh vo nghiem!”

);

      

}

    

}

    

else

{

      

printf

(

“nPhuong trinh co mot nghiem, x = %g”

,-

c

/

b

);

    

}

  

}

  

else

{

    

d

=

b

*

b

4

*

a

*

c

;

    

if

(

d

<

0

){

      

printf

(

“nPhuong trinh vo nghiem!”

);

    

}

    

else

if

(

d

==

0

){

      

printf

(

“nPhuong trinh co nghiem kep, x1 = x2 = %g”

,-

b

/(

2

*

a

));

    

}

    

else

{

      

printf

(

“nPhuong trinh co hai nghiem phan biet:”

);

     

x1

=(-

b

+

sqrt

(

d

))/(

2

*

a

);

      

x2

=(-

b

sqrt

(

d

))/(

2

*

a

);

      

printf

(

“nx1 = %g”

,

x1

);

      

printf

(

“nx2 = %g”

,

x2

);

    

}

  

}

  

getch

();

}

1. Khóa học lập trình C/C++ dành cho các bạn từ 12-17 tuổi

2. Khóa học lập trình C/C++ dành cho các bạn từ 18 tuổi

Đăng ký khóa học

Họ và tên bạn

*

: Số điện thoại

*

:

Email:

Thời gian học:

Sáng

Chiều

Tối

Lời nhắn:

Bạn đang đọc nội dung bài viết Giải Phương Trình Bậc 2 Trong Java Swing trên website Asianhubjobs.com. Hy vọng một phần nào đó những thông tin mà chúng tôi đã cung cấp là rất hữu ích với bạn. Nếu nội dung bài viết hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!