一、主題介紹:
在學校中會遇到數學課解答一元二次方程式的解,老師時常在課堂上講解得很輕鬆,學生們聽得矇矇懂懂的,所以會寫程式的人就可以透過程式讓它自動求出解答出來,就很方便許多,今天就透過 TQC+ 考題練習這方面的程式邏輯。
(1) 題目
請撰寫一程式,將使用者輸入的三個整數(代表一元二次方程式
的三個係數a、b、c)作為參數傳遞給一個名為compute()的函式,該函式回傳方程式的解,如無解則輸出【Your equation has no root.】
提示:
輸出有順序性
回傳方程式的解,無須考慮小數點位數
(2) 輸入輸出
#輸入
三個方程式係數 a、b、c
#輸出
兩個解,如無解則輸出【Your equation has no root.】
#範例輸入
2
-3
1
#範例輸出
1.0 0.5
二、程式範例:
1. def compute(a,b,c):
2. i = pow(b,2)-4*a*c
3. if i>=0:
4. d1 = (-b + pow(i,0.5)) / (2*a)
5. d2 = (-b - pow(i,0.5)) / (2*a)
6. else:
7. d1,d2 = 'no','no'
8. return d1,d2
9. 10. a = eval(input())
11. b = eval(input())
12. c = eval(input())
13. ans1,ans2 = compute(a,b,c)
14. if ans1=='no' and ans2=='no':
15. print("Your equation has no root.")
16. else:
17. print(ans1,ans2)
#執行結果
2
-3
1
1.0 0.5
三、程式解說:
第 1~8 行: 定義函式 compute() 帶入參數 a、b、c 計算解答後回傳。
第 10~12 行: 將使用者輸入的三個參數分別存入 a、b、c 變數中。
第 13 行: 參數帶入函式中回傳兩個解答存入 ans1 與 ans2 變數中。
第 14~17 行: 判斷答案如果有解則列印輸出解答,若無解則列印輸出 Your equation has no root.
沒有留言:
張貼留言