Viết chương trình bằng ngôn ngữ lập trình python giải phương trình ax^2 + bx + c = 0

Viết chương trình giải phương trình bậc 2 trong Python. Phương trình bậc 2 có dạng:


Lời giải

Khi bạn đang đọc bài này thì phương trình bậc 2 là một bài kinh điển mà chắc chắn bạn đã được học và có cách giải phải không?

Hãy xem code mẫu sau để biết cách giải phương trình bậc 2 trong Python:

Ví dụ này được viết trên PyCharm.

Code mẫu:

import math

"""
# 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
"""
def giaiPTBac2[a, b, c]:
    # kiểm tra các hệ số
    if [a == 0]:
        if [b == 0]:
            print ["Phương trình vô nghiệm!"];
        else:
            print ["Phương trình có một nghiệm: x = ", + [-c / b]];
        return;

    # tính delta
    delta = b * b - 4 * a * c;
    # tính nghiệm
    if [delta > 0]:
        x1 = [float][[-b + math.sqrt[delta]] / [2 * a]];
        x2 = [float][[-b - math.sqrt[delta]] / [2 * a]];
        print ["Phương trình có 2 nghiệm là: x1 = ", x1, " và x2 = ", x2];
    elif [delta == 0]:
        x1 = [-b / [2 * a]];
        print["Phương trình có nghiệm kép: x1 = x2 = ", x1];
    else:
        print["Phương trình vô nghiệm!"];

# Nhập các hệ số
a = float[input["Nhập hệ số bậc 2, a = "]];
b = float[input["Nhập hệ số bậc 1, b = "]];
c = float[input["Nhập hằng số tự do, c = "]];
# Gọi hàm giải phương trình bậc 2
giaiPTBac2[a, b, c]

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.0

Trong ví dụ trên, hàm math.sqrt[a] được sử dụng để tính căn bậc 2 của a. Hàm input[] được sử dụng để nhập dữ liệu từ bàn phím.

Đề 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

Có thể bạn sẽ thích…

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

  • 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]

Cùng chuyên mục:

Bài Viết Liên Quan

Chủ Đề