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

6
11006

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
3 Comment threads
3 Thread replies
4 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Nguyễn Văn Hiếunhan nguyenlong haitrung Recent comment authors
  Subscribe  
newest oldest most voted
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

Nguyễn Văn Hiếu
Admin
Nguyễn Văn Hiếu

Giá trị return đó để mình biết phương trình có bao nhiêu nghiệm đó em. Còn trong trường hợp có nghiệm thì nghiệm được lưu ở x1 x2. 2 tham số này được truyền theo “tham chiếu” nhé em.

long hai
Guest
long hai

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

Nguyễn Văn Hiếu
Admin
Nguyễn Văn Hiếu

Em chạy bằng Visual Studio hả?

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 ạ

Nguyễn Văn Hiếu
Admin
Nguyễn Văn Hiếu

&x1 với &x là biến tham chiếu em nhé. Em xem thêm về tham trị và tham chiếu trong C nhé:
https://youtu.be/NfsqBRMoQE8?list=PLh91SaQgRYnrFE9CMxpaN2x6zDc5vgb5E