Viết chương trình giải phương trình bậc 2 (ax2 + bx + c =0) python

Hôm nay mình giới thiệu đến các bạn bài 4 trong seri lập trình python , đó là lập trình python . Các bạn có thể xem toàn bộ seri tại đây . 

Bài toán giải phương trình bậc 2 với python

  1. Phương trình bậc 2 là gì ?  

Trong đại số sơ cấp, phương trình bậc hai là phương trình có dạng: {\displaystyle ax^{2}+bx+c=0}

Với x là ẩn số chưa biết và abc là các số đã biết sao cho a khác 0. Các số ab, và c là những hệ số của phương trình và có thể phân biệt bằng cách gọi tương ứng hệ số bậc hai, hệ số bậc một, và hằng số hay hệ số tự do.[1]

Vì phương trình bậc hai chỉ có một ẩn nên nó được gọi là phương trình “đơn biến“. Phương trình bậc hai chỉ chứa lũy thừa của x là các số tự nhiên, bởi vậy chúng là một dạng phương trình đa thức, cụ thể là phương trình đa thức bậc hai do bậc cao nhất là hai.

Các cách giải phương trình bậc hai phổ biến là nhân tử hóa [phân tích thành nhân tử], phương pháp phần bù bình phương, sử dụng công thức nghiệm, hoặc đồ thị. Giải pháp cho các vấn đề tương tự phương trình bậc hai đã được con người biết đến từ năm 2000 trước Công Nguyên . Theo wiki

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

Việc còn lại là biến cách giải này thành code python thôi nào . Nghe đơn giản đấy , Mình bắt đầu nào !

3. Code thôi nào !

Đầu tiên bạn vào visual code , chọn file => open folder =>chọn folder bất kỳ=>ctrl + n =>ctrl +s => tenfile.py[p2.py] .

bước tạo file xong rồi ! Mình code thôi

+ Đầu tiên bạn khai báo mình đang viết cái gì đã !

print["đây là phần mềm giải phương trình bậc 2 "]

+ Yêu cầu người dùng nhập hệ số a,b,c của phương trình

print["phương trình bậc 2 có dạng L: aX^2 + bx +c = 0\n"] print["mời bạn nhập \n"] a = input["a = "] b = input["b = "] c = input["c = "]

+Kiểm tra a = 0 ? Nếu a = 0 thì yêu cầu người dùng nhập lại!

a = input["bạn đã nhập sai , nhập lại ! .a = "]

+ Khai báo dental = b*b-4*a*c

dental = b*b - 4*a*c

Các bạn bấm Ctrl + Shift +` và gõ vào : python p2.py =>ra lỗi bên dưới

dental = b*b - 4*a*c TypeError: can't multiply sequence by non-int of type 'str'

=> Lỗi rồi :V => Mình nhập như thế nó sẽ hiểu là mình nhập ký tự nên báo lỗi không tính được dental

+ Cách giải quyết :

a = float[input["a = "]] b = float[input["b = "]] c = float[input["c = "]] if[a==0]: a = float[input["bạn đã nhập sai , nhập lại ! .a = "]]

+ Xem lại code từ đầu đã ok chưa bằng cách in ra màn hình dental [gõ lại trên tearnimal: python p2.py]

print["đây là phần mềm giải phương trình bậc 2\n"] print["phương trình bậc 2 có dạng L: aX^2 + bx +c = 0\n"] print["mời bạn nhập \n"] a = float[input["a = "]] b = float[input["b = "]] c = float[input["c = "]] if[a==0]: a = float[input["bạn đã nhập sai , nhập lại ! .a = "]] dental = b*b - 4*a*c print[dental]

cách bạn nhập nhập 1 ,1,1 => dental = -3

+Xét 3 điều kiên >,< ,= 0 của deltal và suy ra nghiệm là xong

if[dental < 0 ]: print["phương trình vô nghiệm\n"] elif[dental > 0]: x1 = [-b + math.sqrt[dental]]/[2*a] x2 = [-b - math.sqrt[dental]]/[2*a] print["phuong trinh co 2 nghiem x1 ="+ str[x1] + " và "+" x2 = " +str[x2]] else: x = -b/[2*a] print["phuong trinh co 2 nghiem x1 = x2 = " + str[x]]

+Chú ý trong python để sử dụng được hàm căn bậc 2 bạn cần import thư viên math và để in xen kẽ số với chuỗi bạn cần đưa số về dạng chuỗi bằng hàm str[biến].

#ví dụ import math x1 = [-b + math.sqrt[dental]]/[2*a] x2 = [-b - math.sqrt[dental]]/[2*a] print["phuong trinh co 2 nghiem x1 ="+ str[x1] + " và "+" x2 = " +str[x2]]

+ FULL CODE CHO BÀI NÀY !

import math print["đây là phần mềm giải phương trình bậc 2\n"] print["phương trình bậc 2 có dạng L: aX^2 + bx +c = 0\n"] print["mời bạn nhập \n"] a = float[input["a = "]] b = float[input["b = "]] c = float[input["c = "]] if[a==0]: a = float[input["bạn đã nhập sai , nhập lại ! .a = "]] dental = b*b - 4*a*c if[dental < 0 ]: print["phương trình vô nghiệm\n"] elif[dental > 0]: x1 = [-b + math.sqrt[dental]]/[2*a] x2 = [-b - math.sqrt[dental]]/[2*a] print["phuong trinh co 2 nghiem x1 ="+ str[x1] + " và "+" x2 = " +str[x2]] else: x = -b/[2*a] print["phuong trinh co 2 nghiem x1 = x2 = " + str[x]]

Vậy đã xong ! Chạy và test thôi nào

Một ví dụ về if else khá đơn giản phải không nào [if với else như là nếu với thì của tiếng việt thôi mà :v]

TỔNG KẾT

Qua bài này hy vọng các bạn nhìn ra được if else rất dễ sử dụng , bài sau mình xin giới thiệu các vòng lặp khác như for,while …thông qua các bài toán thực tế hay nhé ! Hy vọng các bạn theo dõi .

Đề bài: Viết chương trình bằng ngôn ngữ lập trình Python giải phương trình bậc 2 [đủ]: ax^2 + bx + c = 0 [a, b != 0]


Yêu cầu kiến thức:

  • Phân tích, thiết kế giải thuật cho bài toán giải phương trình bậc 2

Code tham khảo dưới đây được viết trên Python ver 3.8:

# Ho ten: Hoang Van Tuan # Website: timoday.edu.vn # Thu vien import math # Nhap du lieu a = float[input['Nhap he so a: ']] while a == 0: if a == 0: print['Hay nhap lai he so a!'] a = float[input['Nhap he so a: ']] b = float[input['Nhap he so b: ']] while b == 0: if b == 0: print['Hay nhap lai he so b!'] b = float[input['Nhap he so b: ']] c = float[input['Nhap he so c: ']] # Giai va bien luan delta = b * b - 4 * a * c if delta > 0: x1 = [-b + math.sqrt[delta]] / [2 * a] x2 = [-b - math.sqrt[delta]] / [2 * a] print['Phuong trinh co 2 nghiem phan biet la:'] print['x1 = ', x1] print['x2 = ', x2] elif delta == 0: x = -b / [2 * a] print['Phuong trinh co nghiem kep la:'] print['x1 = x2 = ', x] else: print['Phuong trinh vo nghiem']


Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây

Các thẻ: lap trinhlập trình python

Hãy viết chương trình giải phương trình bậc hai một ẩn ax^2 + bx + c = 0 bằng Python, đây là phương trình mà bạn đã được học ở bậc trung học cơ sở lớp 9.

Bài giải

-------------------- ######## --------------------

Trước tiên bạn cần phải biết cách giải phương trình bậc hai, và cũng từ công thức toán học đó mà ta đưa ra được thuật toán giải phương trình này bằng ngôn ngữ Python.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Để giải phương trình bậc hai ax^2 + bx + c = 0 thì ta phải tính chỉ số Delta, dựa vào kết quả này mà ta xác định được nghiệm. Cụ thể như hình sau:

Ok, bây giờ ta sẽ viết chương trình trong Python như sau:

Bài viết này được đăng tại [free tuts .net]

Bước 1: Nhập các số a, b và c. Kiểm tra điều kiện một trong hai số a và b phải khác 0.

Bước 2: Tính Delta

Bước 3: Dựa vào Delta để tìm ra nghiệm của phương trình [có 3 trường hợp như trong hình].

# HỌC PYTHON TẠI FREETUTS.NET # TÁC GIẢ: CƯỜNG NGUYỄN # Giải phương trình bậc hai 1 ẩn ax^2 + bx + c = 0 import math print["Chương trình đăng tại freetuts.net!"] # Nhập số a và kiểm tra điều kiện khác 0 print["Nhập vào số a: "] a = int[input[]] print["Nhập vào số b: "] b = int[input[]] while True: if a == 0 and b == 0: print["Một trong hai số a và b phải khác 0: "] print["Nhập lại số a: "] a = int[input[]] print["Nhập lại số b: "] b = int[input[]] else: break # Nhập số c print["Nhập vào số c: "] c = int[input[]] # Tính Delta delta = b**2 - 4 * a * c # Nghiệm if delta < 0: print["Phương trình vô nghiệm"] elif delta == 0: print["Phương trình có nghiệm kép x1 = x2 = ", -[b / [2 * a]] ] else: print["Phương trình có hai nghiệm phân biệt:"] print["x1 = ", [-[b] + math.sqrt[delta]]/[2*a] ] print["x1 = ", [-[b] - math.sqrt[delta]]/[2*a] ]

Ví dụ mình giải phương trình x^2 - 5x + 4 = 0 thì có hai nghiệm: x1 = 4 và x2 = 1.

Danh sách bài tập Python cơ bản

Cùng chuyên mục:

Video liên quan

Chủ Đề