這個作業屬於那個課程 |
這個作業要求在哪里 |
我在這個課程的目標是 |
這個作業在那個具體方面幫助我實現目標 |
參考文獻 |
1.PTA實驗作業
1.1 換硬幣
將一筆零錢換成5分、2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?
輸入格式:
輸入在一行中給出待換的零錢數額x∈(8,100)。
輸出格式:
要求按5分、2分和1分硬幣的數量依次從大到小的順序,輸出各種換法。每行輸出一種換法,格式為:“fen5:5分硬幣數量, fen2:2分硬幣數量, fen1:1分硬幣數量, total:硬幣總數量”。最后一行輸出“count = 換法個數”。
輸入樣例:
13
輸出樣例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
1.1.1數據處理:
數據表達:用了變量f5, f1, f2, total, count, x;x是用戶輸入值,f5, f1, f2,分別用於計算5分,1分,2分的硬幣個數,total是所用硬幣個數,count是換法個數;f5, f1, f2, total, count, x都是整形變量。
數據處理:
定義一些用於運行代碼的變量
輸入
if (判斷x的取值范圍) {
for (先從5分硬幣最多開始計算)
for (2分硬幣最多開始計算) {
利用輸入與f5和f2之間的關系得到f1
if ( 進行輸出判斷) {
計算總硬幣數
輸出數據
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
9 | fen5:1, fen2:1, fen1:2, total:4 count = 1 | 9是待換的零錢數額,fen5, fen2, fen1,是分別所需硬幣的個數,total 是總共所需硬幣數量,count是換法總數; |
10 | fen5:1, fen2:2, fen1:1, total:4 fen5:1, fen2:1, fen1:3, total:5 count = 2 | 10是待換的零錢數額,fen5, fen2, fen1,是分別所需硬幣的個數,total 是總共所需硬幣數量,count是換法總數; |
11 | fen5:1, fen2:2, fen1:2, total:5 fen5:1, fen2:1, fen1:4, total:6 count = 2 | 11是待換的零錢數額,fen5, fen2, fen1,是分別所需硬幣的個數,total 是總共所需硬幣數量,count是換法總數; |
1.1.4 PTA提交列表及說明
部分正確:我把內外循環里面的變量弄反了
1.2 跟奧巴馬一起畫方塊
美國總統奧巴馬不僅呼吁所有人都學習編程,甚至以身作則編寫代碼,成為美國歷史上首位編寫計算機代碼的總統。2014年底,為慶祝“計算機科學教育周”正式啟動,奧巴馬編寫了很簡單的計算機代碼:在屏幕上畫一個正方形。現在你也跟他一起畫吧!
輸入格式:
輸入在一行中給出正方形邊長N(3≤N≤21)和組成正方形邊的某種字符C,間隔一個空格。
輸出格式:
輸出由給定字符C畫出的正方形。但是注意到行間距比列間距大,所以為了讓結果看上去更像正方形,我們輸出的行數實際上是列數的50%(四舍五入取整)。
輸入樣例:
10 a
輸出樣例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
1.2.1 數據處理
數據表達:用了變量n,i,m,j,a;n,a,ch是用戶輸入的數據,i,j用於循環判斷,m是方便用於四舍五入取整;n,i,m,j,a是整形變量,。
數據處理:
定義變量
輸入數據
if (對輸入進行判斷) {
通過對(輸入%2)取余數的方法進行四舍五入取整
嵌套循環輸出字符
}
1.2.2實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
4 b | bbbb\bbbb | 4是確定正方形的邊長,b是組成正方形邊的某種字符 |
3 c | ccc\ccc | 3是確定正方形的邊長,c是組成正方形邊的某種字符 |
5 a | aaaaa\aaaaa\aaaaa | 5是確定正方形的邊長,a是組成正方形邊的某種字符 |
1.2.4 PTA提交列表及說明
部分正確:我把ch = getchar()放入循環內了
2.代碼互評
同學代碼截圖:
同學代碼截圖:
自己代碼截圖:
1.第一個同學:該同學的代碼和我的代碼風格大致相同,但我認為該同學可以將兩個int合並,並且我對於這個題目的算法我也不是很清楚,所以我在輸出的時候我多加了if判斷一下,現在看來可能是多余了。
2.第二位同學:該同學在解決問題時用了3個for循環,在能用更低次數的for循環就盡量用最低次數對的for循環,因為對循環次數很大的程序需要考慮執行效率問題。
3.總體來說:我們在編寫代碼的時候,盡量用最簡潔代碼解決實際問題,這需要我們對思考問題的程度比較深,也許就是這樣,我們需要更努力的學習新的知識。
3.學習總結
3.1 學習進度條
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第八周 | 17h | 121 | 定義兩個變量,對for循環有更進一步的了解 | 對於基本知識還是不夠扎實 |
第九周 | 20h | 178 | while循環,定義和調用函數 | 對於定義和調用函數還是不怎么了解 |
第十周 | 18h | 143 | for循環和if-else語句之間嵌套 | 讀完題目后大腦里面沒有相應的代碼 |
第十一周 | 17h | 193 | switch可以處理多分支問題 | 對於編程題不能很快的寫出代碼 |
第十二周 | 15h | 156 | 新學了do-while循環,了解了for,while,do-while循環之間的區別,並對在相應環境用最合適的循環有了初步認識 | 題目做的比較慢,一些基本知識還是不夠扎實 |
第十三周 | 16h | 183 | 學到了嵌套循環和break,continue語句 | 不能很好的把所學的東西交叉運用 |
3.2 累積代碼行和博客字數
3.3 學習內容總結和感悟
3.3.1 學習內容總結
3.3.2 學習體會
1.在新的一周中我學習了break語句和continue語句,並了解到break可以結束循環,continue是跳過后面語句繼續循環,在多條件控制的循環語句后,經常需要由條件語句來區分不同的情況。
2.在此次作業中,我感覺我好不容易提上來的做提速度有所下降,我覺得這可能是最近做事不怎么上心的原因,所以我希望在以后的的時間里繼續提高自己的解題速度,同時解題質量也要有保證哈。
3.從最近這幾天做題目的情況看來,我還需要更加努力,同時我希望自己弄點休閑時間來看些課外書。