Home > Python > Python căn bản > Giải phương trình bậc hai một ẩn bằng Python (ax^2 + bx + c = 0)

Giải phương trình bậc hai một ẩn bằng Python (ax^2 + bx + c = 0)

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.

Để 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:

giao phuong trinh bac hai JPG

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

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.

nghiem phuong trinh bac hai JPG

Nguồn: freetuts.net

Danh sách bài tập Python cơ bản
Kiểm tra dữ liệu là number hay string bằng Python
Tính tổng S(n) = 1 + 2 + 3 + … + n bằng Python
Tính tổng S(n) = 1^2 + 2^2 + … + n^2 bằng Python
Tính tổng S(n) = 1 + ½ + 1/3 + … + 1/n bằng Python
Tính tổng S(n) = ½ + ¼ + … + 1/2n bằng Python
Tính tổng S(n) = 1/3 + 1/5 + … + 1/(2n + 1)
Liệt kê tất cả các ước số của số nguyên dương n bằng Python
Tính tổng tất cả các ước số của số nguyên dương N bằng Python
Tìm ước số lẻ lớn nhất của một số bằng Python
Kiểm tra một số có phải là số hoàn hảo bằng Python
Kiểm tra số chính phương bằng Python
Kiểm tra số nguyên tố bằng Python
Đảo ngược một số bằng Python
In ra từng ký tự của một số bằng Python
Giải phương trình bậc nhất một ẩn bằng Python (ax + b = 0)
Giải phương trình bậc hai một ẩn bằng Python (ax^2 + bx + c = 0)

BÀI VIẾT

notice png LIST home png HOME hot gif BÁO
LỖI
top png TOP