這個作業屬於哪個課程 | C語言程序設計II |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11531 |
這個作業的目標 | 熟練運用多分支結構 |
這個作業在那個具體方面幫助我實現目標 | while語句的運用 |
參考文獻 | C語言程序設計 |
你的學號 | 20208963 |
1.PTA實驗作業
1.1日本數學家古角靜夫研究自然數時,發現一個有趣現象:“如果是個偶數就除2,如果是奇數就乘以3加1”,經過有限個這樣的處理步驟,最后一定能得到1. 任意輸入一個自然數,給出得到結果1的運算過程。
1.1.1數據處理
數據處理:運用整數型變量n和item
數據表達:運用while和if-else混合語句,
偽代碼:
n,item
/定義整數型變量;
while(n>1)
/while用來判斷結果是否為1以此結束運算;
if(n%2==0)
else
/if-else判斷運算的過程;
item=n/2;
item=nx3+12;
/等式計算;
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
8 | 8/2=4 4/2=2 2/2=1 | 偶數8測試 |
3 | 3x3+1=10 10/2=5 5X3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 | 奇數3測試 |
1.1.4提交列表及說明
1.在編譯的過程中判斷n是偶數還是奇數時,
判斷語句錯用賦值運算符,將語句:
if (n%2=0)
改為 if (n%2==0) 后,
運算正確;
2.判斷n>1時寫為了n>=1。導致了運算結果出不來,改正后運算正確;
1.2用戶購買了若干個商品(商品數不超過10),現在,他告訴你每件商品的價格,你計算出這些商品的平均價格。
1.2.1數據處理
數據表達:運用整數型變量count以及雙精度浮點型變量 n sum item ,
其中sum為中間和變量,item為輸出結果;
數據處理:整體為while的不知道循環次數語句
偽代碼:
定義整數型變量count儲存輸入的數據個數,
運用sum n item 雙精度浮點型變量依次運算商品價格
while(n!=-1&&n<100000)
/判斷輸入的數據是否符合運算,以及使輸入-1時結束輸出;
sum =sum+ n;
/輸入的n值累加儲存到sum中以便使用;
count++;
/儲存運算次數,判斷得知輸入的n的數據有幾個;
item = sum /count;
/計算輸入數據的平均數;
1.2.2實驗代碼截圖
1.2.3造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
8956.12 54631.3 15649.1 4646.9 6000 -1 | 17976.68 | 大量小數數據和整數數據混合計算 |
25956.35 26451.36 1441.58 4594.25 44.264 5644.16 2652.14 -1 | 9540.59 | 大量小數混合運算 |
45642 1561 4654 64 566 4666 64465 -1 | 17374.00 | 大量整數混合運算 |
4545.36 2945.36 5446.36 4613.49 1245.36 598.36 4521.32 4512.36 4589.54 4587.96 | 3356.15 | 極限商品運算 |
1.2.4提交列表及說明
1.起先運用count作為判斷條件發現無論如何count的值在兩種情況下是想等的,隨后改用n來判斷
在判斷過程中忽略了n的取值范圍導致部分正確
把while(n!=0)改為
while(n!=0&&n<100000)后
運行正確
2.在輸入數據時沒有能夠按照輸入的次數來准確表達運算過程,
導致在輸入n的值的時候,沒有辦法判斷n的值是否符合條件,
使運算無法進行。在while前面加上了
scanf("%lf",&n)
后成功運算;
2.代碼互評
同學代碼1:
我的代碼1:
1.從整體上可以看出同學的代碼具有很大的簡潔性,而且運用的變量較少。
說明該同學對於代碼變量的掌握很是熟練,對於程序的編寫很是在行。
2.從程序編寫上看,兩者代碼的運用語句方式一樣,都運用了while語句,
但是在等式運算上我運用了一個中間等式變量,是為了表示輸出。
3.我可以從同學代碼中學到運用簡單的語句順序簡潔的輸出運算過程。
同學代碼2:
我的代碼2:
1.從整體上看,我的代碼要比同學代碼整潔,沒有太多復雜的變化和語句等式,
2.從代碼運用上看我只運用了while語句而同學運用了while和if混合語句;
可以看出同學對於代碼的理解能力很深,能夠熟練運用代碼是程序運行完整;
3.從使用方式上看,我的代碼比較簡便,但是細節比較多,一旦出錯不好找到錯誤點,
而同學代碼比較分散,各個語句結構簡單,不易出錯。
3.學習總結
周/日期 | 這周所花時間 | 代碼行 | 學到到的知識點 | 目前比較困惑的問題 |
---|---|---|---|---|
第一周 | 6小時 | 200 | 輸出Hello World | 對於循環的條件運用以及 |
第二周 | 8小時 | 500 | 數學運算 if分支語句 | 循環時具體的賦值狀態 |
第三周 | 15小時 | 900 | for循環語句 | |
第四周 | 18小時 | 700 | 調用自定義函數 | 對於自定義函數掌握不太熟練 |
第五周 | 19小時 | 800 | 邏輯運算以及if多分支結構 | 運用if多分支時容易搞混亂語句的結構順序 |
第六周 | 24小時 | 900 | switch語句的多分支結構 | 不能熟練掌握switch語句簡化語句的以及break跳出方式 |
第七周 | 27 | 950 | while語句 | 不能熟練運用while的判斷條件 |
3.2 累積代碼行和博客字數
3.3 學習內容總結和感悟
3.3.1 學習內容總結
3.3.2 學習體會
1:已經學習七周目了,對於程序的編寫也越來越復雜,對於代碼的研究也越來越深入。我從中慢慢感受到了這門學科的難點和重點
2:我已經能夠理解簡單的代碼數據類型,也能夠看懂其他人一些簡單的代碼結構,這將會對我以后自己研究代碼提供了一定的基礎
3:我也能夠從不同的代碼編寫上找出簡便的編寫方法,研究出一套適合自己的編寫路徑和獨特的代碼編寫特點。
4:學習完while后才發現好多東西代碼可以替換,每種代碼有着本身的特色和表達方式,不同代碼組合在一起會產生極大效果
每種代碼的相互配合和結合都會有助於程序的編寫,讓編程語句更加簡潔實用;
5: 希望以后自己能夠堅持住對代碼編寫的信心,對於代碼的運用越來越熟練。