這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2 |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11635 |
這個作業的目標 | 鞏固舊知識,進一步掌握函數的定義和調用及相關運用 |
學號 | 20208990 |
1.PTA實驗作業(20分/題)
1.1 統計各位數字之和是5的數
題目內容描述:
1.1.1 數據處理
數據表達:用了變量number,n,a,b,j,sum,count,且均為整型變量。
a和b的值由用戶輸入得來,兩個數形成一個定區間,number為區間[a,b]中的任意一個數,n表示正整數的各位數字之和,j為循環變量,
count = 滿足條件的整數個數, sum = 這些整數的和。
數據處理:表達式:n += number % 10;
number = number / 10;
n == 5;
sum = 0 ;
count = 0;
j = a;
sum = sum + j;
流程結構:用了函數嵌套調用,首先運用while語句和if-else語句來判斷正整數的各位數字之和是否等於5,
與循環求出定區間內有多少個滿足上述要求的整數,接着通過for循環與if語句嵌套,
並使用is函數與循環求出定區間內有多少個滿足上述要求的整數和這些整數的和。
1.1.2 實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
104 999 | 104 is counted. count = 15, sum = 3720 | 104的的各位數字之和是否等於5·在區間[104,999]內有15個滿足的各位數字之和是否等於5的整數,這些整數的和為3720 |
0 50 | 50 is counted. count = 6, sum = 165 | 50的各位數字之和是否等於5·在區間[6,50]內有6個滿足上述要求的整數,這些整數的和為165 |
501 600 | count = 0, sum = 0 | 501和600的各位數字之和是否等於5,在區間[501,600]內有0個滿足上述要求的整數,這些整數的和為0 |
1.1.4 PTA提交列表及說明
提交列表說明:
編譯錯誤:思路錯誤,導致過程錯誤。
解決方法:重新閱讀題目,畫流程圖,仔細分析。
編譯錯誤:“n += number % 10;”這個表達式后沒有加“number = number / 10;”導致結果錯誤;
解決方法:在“n += number % 10;”這個表達式后加“number = number / 10;”
1.2 解一元二次方程
題目內容描述:
1.2.1 數據處理
數據表達:用了變量 a, b, c, x, x1, x2, i, y, z, n, l;均為浮點型變量。a,b,c為一元二次方程的系數,由用戶輸入,
x,x1,x2為計算得出的解,i為循環變量, y, z, n, l儲存過程中的數據。
數據處理:表達式:n = b * b - 4 * a * c;
x1 = (-b + sqrt(n)) / (2 * a);
x2 = (-b - sqrt(n)) / (2 * a);
l = -b / (2 * a);
y = sqrt(-n) / (2 * a);
z = -sqrt(-n) / (2 * a);
x = -c / b;
流程結構:用了if-else語句,順序結果,按順序將各情況進行分類討論,得出結果。
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
0 4.5 -3.6 | x = 0.8 | a=0,為一元一次方程,b≠0,方程有唯一解 |
0 0 3.6 | 無解 | a=0,為一元一次方程,b=0,c≠0,方程無解 |
0 0 0 | 無窮多解 | a=0,為一元一次方程,b=0,c=0,則方程有無窮多解 |
-2 0.8 -0.06 | x1 = 0.1, x2 = 0.3 | a≠0,為一元二次方程,Δ>0,則方程有兩個不等的實根 |
1 -0.4 0.04 | x1 = x2 = 0.2 | a≠0,為一元二次方程,Δ=0,則方程有兩個相等的實根 |
-0.2 0.04 -0.01 | x1 = 0.1-0.2i, x2 = 0.1+0.2i | a≠0,為一元二次方程, Δ<0,則方程有兩個共軛的虛根 |
1.2.4 PTA提交列表及說明
提交列表說明:
部分正確:沒有注意-0這一結果。
解決方法:加入一個過程:如果解為-0,則取其絕對值。
編譯錯誤:對“部分正確”進行修改時,if語句運用不正確。
解決方法:對if語句進行修改完善。
部分正確:解為共軛虛數該計算錯誤,計算過程不對。
解決方法:重新思考,理清思路,重新編寫代碼。
2.代碼互評(5分)
題目1: 統計某類完全平方數
同學代碼截圖1
自己代碼截圖1
1.我與同學都是用了if語句,for語句。
2.同學運用的是switch語句與while語句,我只運用了while語句,直觀上我的更簡便一些,但同學的更易理解。
3.同學在一開始就將變量全都定義好,而我是在要用到變量時才定義的。
題目2: 統計各位數字之和是5的數
同學代碼截圖2
自己代碼截圖2
1.我和同學的代碼思路差不多,但在一些細節上有不同。
2.在while語句中我認為我的簡便一點,但在if語句中同學的更簡便,值得我學習。
3.學習總結(15分)
3.1 學習進度條(5分)
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第一周 | 10h | 76 | 基本格式,定量定義,輸入輸出 | |
第二周 | 15h | 249 | 賦值,算數運算,if-else語句 | 一些格式不太理解 |
第三周 | 17h | 358 | for循環語句 | 理解但不太會運用 |
第四周 | 20h | 500 | 函數的調用,自定義函數 | 實參,形參不太理解。不太會定義函數 |
第五周 | 22h | 590 | 二分支結構及多分支結構,if-else語句及else-if語句,字符型變量的運用 | 數學函數的使用 |
第六周 | 25h | 650 | switch語句,多分支結構 | 對switch語句掌握得不夠熟練,遇到分類討論的題時思路不清晰 |
第七周 | 26h | 680 | while和do while語句,循環結構 | do while語句的使用 |
第八周 | 27h | 700 | break語句,continue語句,循環嵌套 | 對循環嵌套方面寫代碼時容易思路混亂 |
第九周 | 28h | 750 | 函數 | 函數的定義與調用 |
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會
①經過一周的學習,對函數的定義和調用更加的理解,也了解了無返回值的函數,局部變量和全局變量等。
②要在補齊自己的短板的同時好好學習新知識,更好掌握。
③接下來的一周,我計划練習函數相關題型,鍛煉解題思維,邏輯能力。
④養成畫流程圖的習慣,鍛煉思維,使思路清晰。