Bạn đang xem bài viết Giải Phương Trình Bậc 2 Trong Java Swing được cập nhật mới nhất tháng 9 năm 2023 trên website Ictu-hanoi.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung 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.
Đề bàiViế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ảiThay 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 2 Trong Java
Đề bài
Viết chương trình giải phương trình bậc 2 trong java. Phương trình bậc 2 có dạng:
Lời giảiKiến thức sử dụng trong bài này, java.util.Scanner được sử dụng để đọc dữ liệu nhập vào từ bàn phím và từ khóa static trong java. Bạn cũng nên tìm hiểu về package trong java.
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.
File: chúng tôi
package vn.viettuts.baitap; import java.util.Scanner; /** * Giải phương trình bậc 2 * * @author viettuts.vn */ public class BaiTap1 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập hệ số bậc 2, a = "); float a = BaiTap1.scanner.nextFloat(); System.out.print("Nhập hệ số bậc 1, b = "); float b = BaiTap1.scanner.nextFloat(); System.out.print("Nhập hằng số tự do, c = "); float c = scanner.nextFloat(); BaiTap1.giaiPTBac2(a, b, c); } /** * 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 */ public static void giaiPTBac2(float a, float b, float c) { if (a == 0) { if (b == 0) { System.out.println("Phương trình vô nghiệm!"); } else { System.out.println("Phương trình có một nghiệm: " + "x = " + (-c / b)); } return; } 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)); System.out.println("Phương trình có 2 nghiệm là: " + "x1 = " + x1 + " và x2 = " + x2); } else if (delta == 0) { x1 = (-b / (2 * a)); System.out.println("Phương trình có nghiệm kép: " + "x1 = x2 = " + x1); } else { System.out.println("Phương trình vô nghiệm!"); } } }Kết quả:
Nhập hệ số bậc 2, a = 2 Nhập hệ số bậc 1, b = 1 Nhập hằng số tự do, c = -1 Phương trình có 2 nghiệm là: x1 = 0.5 và x2 = -1.0Trong ví dụ trên, phương thức Math.sqrt(double a) được sử dụng để tính căn bậc 2 của 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"); } }Giải Phương Trình Bậc Nhất Trong Java
Ví dụ: Chương trình giải phương trình bậc nhất trong Java.
Chúng ta sẽ yêu cầu người dùng nhập vào hai hệ số a và b khi đó phương trình có dạng ax + b = 0, sau đó xét điều kiện cho a và b
Nếu a = 0 thì phương trình có hai trường hợp đó là:
Trường hợp 1: Phương trình có vô số nghiệm khi a = 0 và b = 0.
Trường hợp 2: Phương trình vô nghiệm khi a = 0 và b != 0.
Nếu a != 0 thì nghiệm của phương trình sẽ bằng -b / a.
import java.util.Scanner; import java.text.DecimalFormat; public class GiaiPTBacNhat { public static void main(String[] args) { int aNumber, bNumber; double nghiem; DecimalFormat decimalFormat = new DecimalFormat("#.##"); Scanner scanner = new Scanner(System.in); System.out.println("Nhập vào số a: "); aNumber = scanner.nextInt(); System.out.println("Nhập vào số b: "); bNumber = scanner.nextInt(); System.out.println("Phương trình bạn vừa nhập vào là: " + aNumber + "x + " + bNumber + " = 0."); if (aNumber == 0) { if (bNumber == 0) { System.out.println("Phương trình này có vô số nghiệm."); } else { System.out.println("Phương trình vô nghiệm."); } } else { nghiem = (double) -bNumber / aNumber; System.out.println("Phương trình có nghiệm x = " + decimalFormat.format(nghiem) + "."); } System.out.println("Chương trình này được đăng tại Freetuts.net"); } }Hướng Dẫn Giải Phương Trình Bậc 2 Trong Java
Bài toán phương trình bậc 2 là một trong những bài toán cổ điển mà 90% những người khi mới học lập trình đều phải trải qua và nắm được, vì vậy trong 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 trinh bậc 2 trong ngôn ngữ lập trình Java nói riêng. Bài học nằm trong Serie lập trình Java căn bản.
Giải phương trình bậc 2 trong Java như thế nào?
Mục tiêu : Sử dụng câu lệnh điều kiện
Yêu cầu : Giải bài toán tìm nghiệm phương trình bậc hai : ax2 + bx + c =0, với a # 0
Tương tự như cách giải bài toán phương trình bậc nhất, trong bài này mình vẫn sẽ sử dụng phương pháp tách hàm quen thuộc.
Ở đây mình tách thành 2 hàm NhapSoNguyen, GiaiPTbac2 và 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ả
Những bài bạn nên xem:
2.8
/
5
(
17
bình chọn
)
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
Cập nhật thông tin chi tiết về Giải Phương Trình Bậc 2 Trong Java Swing trên website Ictu-hanoi.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!