`***` Code của bạn có tác dụng đánh giá xem phương trình `a^2 x + bx + c` vô nghiệm hay có nghiệm.
`*` Về mặt lỗi do code:
`-` Hàm gptb2 là 1 hàm thủ tục. Hàm này không trả về bất kì giá trị nào. Thay vào đó nó sẽ thực hiện 1 đoạn code đã được cài đặt trong nó.
Như code trên, nó sẽ in ra Pt vô nghiệm hoặc Pt có 2 nghiệm.
Vì nó không trả về bất kì giá trị nào, nên ta không thể in ra hàm đó, mà gọi nó ra như gptb2(7,8,9), gptb2(1,2,9).
`+` Fix: Thay print(gptb2(a,b,c)) bằng gptb2(a,b,c)
`-` Tham số nhập vào hàm gptb2 là kiểu dữ liệu số nguyên. Nhưng hàm input() lại chỉ trả về kiểu dữ liệu xâu nên ta không thể đưa tham số vào hàm gptb2.
`+` Fix: Thay a=input('a=') thành a=int(input('a=')). Tương tự với b, c
`*` Về mặt logic:
`-` Ta vẫn còn 1 trường hợp nữa chưa xét là phương trình có nghiệm kép.
Phương trình có nghiệm kép khi `d = 0`
`*` Đây là code sau khi sửa tất cả các lỗi trên
def gptb2(x, y, z):
d = y * y - 4 * x * z
if d < 0:
print('Pt vo nghiem')
elif d == 0:
print('Pt co 1 nghiem kep')
else:
print('Pt co 2 nghiem')
gptb2(7, 8, 9)
gptb2(1, 2, 9)
a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
gptb2(a, b, c)
`\color{red}{\text{@hoangduy67}}`
Hàm gptb2 không trả về giá trị nào cả chỉ in ra kết quả mình nghĩ nên sửa hàm này để trả về kết quả thay vì in ra còn hàm input trả về một chuỗi không phải một số mình nghĩ nên chuyển đổi kiểu dữ liệu của biến a, b, c sang kiểu số trước khi truyền chúng vào hàm gptb2 và muốn in ra kết quả của hàm gptb2 nên cần sử dụng lệnh print để in ra giá trị trả về của hàm
Code đã sửa:
def gptb2(x,y,z):
d=y*y-4*x*z
if(d<0): return 'Pt vô nghiệm'
else: return ' Pt có 2 nghiệm'
a=float(input('a='))
b=float(input('b='))
c=float(input('c='))
print(gptb2(a,b,c))
Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!
Lớp 10 - Năm đầu tiên ở cấp trung học phổ thông, chúng ta sẽ có nhiều bạn bè mới đến từ những nơi khác nhau. Ngôi trường mới, xa nhà hơn, mở ra một thế giới mới với nhiều điều thú vị. Hãy mở lòng đón nhận và tận hưởng những trải nghiệm mới!
Copyright © 2021 HOCTAPSGK