Cách giải phương trình bậc 2 trong C/C++

9
42360
cach-giai-phuong-trinh-bac-2

Cách giải phương trình bậc 2 thì chúng ta đã được học ở lớp dưới rồi phải không nào ? Vậy giải phương trình bậc 2 trong C/C++ thì sẽ như thế nào ? Hôm nay chúng ta sẽ cùng tìm hiểu.

Cách giải phương trình bậc 2

cach-giai-phuong-trinh-bac-2
                  Phương trình bậc 2

Phương trình bậc 2 là phương trình có dạng: ax² +bx + c = 0. (a≠0)  (1)

Ở các lớp dưới ta đã có phương pháp giải bằng cách tính delta:

  • Đầu tiên tính delta = b² – 4ac
  • Nếu delta < 0 thì kết luận vô nghiệm
  • Nếu delta = 0 thì có nghiệm kép
  • Nếu delta > 0 thì sẽ có 2 nghiệm phân biệt

Ý tưởng

  • Dùng một vòng do while để nhập a, b, c nếu a = 0, thì nhập lại.
  • Chúng ta dùng hàm sqrt() trong thư viện math.h để tính căn delta hoặc tính căn không dùng hàm sqrt()tại đây.
  • Chúng ta tạo hàm giaiPT trả về kiểu int chính là số nghiệm của phương trình (1).
  • Chúng ta sẽ đưa tham chiếu 2 biến x1 , x2 vào hàm giaiPT để gán giá trị hai nghiệm.
  • Nếu pt (1) vô nghiện thì giaiPT sẽ trả về 0 , đồng thời gán x1 = x2 =0 .
  • Nếu pt (1) có nghiệm kép thì giaiPT sẽ trả về 1 , đồng thời gán x1 = x2 = -b/2a .
  • Nếu pt (1) có 2 nghiệm thì giaiPT sẽ trả về 2 , gán x1 = (-b+√delta ) / 2a  x = (-b-√delta ) / 2a .

Code C

Code C++

Bài học của mình đến đây là kết thúc.

avatar

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

  Subscribe  
Notify of
trung
Guest
trung

cho minh hoi tai sao phai return 0, return 1 , return 2 vay a de ra dc ket qua dung

long hai
Guest
long hai

minh nhap so vao rooi nhung no ko chay ma tat di la s vay

nhan nguyen
Guest
nhan nguyen

int giaiPT(float a, float b, float c,float &x1, float &x2) anh có thể giải thích giúp e chỗ này được không ạ

Kendo
Guest
Kendo

Anh ơi bài này có nhất thiết phải dùng hàm tham chiếu riêng cho thuật toán không ạ ?
Ta vẫn có thể viết trình bày code trong hàm main được ạ ? Trông đơn giản dễ nhìn hơn
Anh chỉ bảo e với ạ! Cảm ơn anh

tri
Guest
tri

cho minh hoi cach sap xep x1 x2 tang dan voi

Phát
Guest
Phát

a cho e hỏi tại sao ở vòng lặp do while lại có điều kiện là whille(!a) mà không phải là while(a!=0) vậy a