btvn.vn
Tìm kiếm Đăng nhập

Giải phương trình theo từng trường hợp

Lưu trên thiết bị này
Thực hành tổng hợp Python · Chọn bài khác

Tách nhánh trước phép chia

Phương trình `ax²+bx+c=0` có thể trở thành bậc nhất nếu a=0. Khi a=b=0, c=0 cho vô số nghiệm còn c khác 0 cho vô nghiệm. Chỉ khi a khác 0 mới xét `delta=b*b-4*a*c` và chia cho `2*a`. Với delta âm, phương trình **không có nghiệm thực**; delta bằng 0 có nghiệm kép; delta dương có hai nghiệm thực phân biệt. Không làm phép chia trước khi loại trường hợp mẫu bằng 0. Nhiệm vụ: lưu mã vào `giai-phuong-trinh.py`, chạy sáu bộ hệ số bên dưới; bảng kiểm là các nhãn và nghiệm in ra: ```python from math import sqrt def giai(a, b, c): if a == 0: if b == 0: return "Vô số nghiệm" if c == 0 else "Vô nghiệm" return f"Một nghiệm: {-c / b:g}" delta = b * b - 4 * a * c if delta < 0: return "Vô nghiệm thực" if delta == 0: return f"Nghiệm kép: {-b / (2 * a):g}" x1 = (-b + sqrt(delta)) / (2 * a) x2 = (-b - sqrt(delta)) / (2 * a) return f"Hai nghiệm: {x1:g} và {x2:g}" for he_so in [(0, 0, 0), (0, 0, 5), (0, 2, -4), (1, 0, -4), (1, 2, 1), (1, 0, 1)]: print(he_so, giai(*he_so)) ``` Sáu dòng lần lượt là vô số nghiệm; vô nghiệm; một nghiệm 2; hai nghiệm 2 và -2; nghiệm kép -1; vô nghiệm thực. Nếu một dòng sai, kiểm nhánh đầu tiên mà bộ hệ số đi qua và giá trị delta. Mã dùng hệ số nguyên nhỏ để kết quả dễ đối chiếu; với số thực tính trên máy, so sánh bằng 0 cần cân nhắc sai số nếu bài toán yêu cầu độ chính xác cao.

Bài luyện

Với hệ số `(0, 2, -4)`, nhánh nào cho nghiệm?
Chọn một đáp án

Bài luyện

Với `(1, 0, 1)`, delta bằng bao nhiêu và kết luận trong số thực là gì?
Chọn một đáp án

Bài luyện

Vì sao mã kiểm `a == 0` trước khi tính nghiệm bậc hai?
Chọn một đáp án

Đang học