這個作業屬於哪個課程 | C語言程序設計 |
---|---|
這個作業要求在哪里 | 作業 |
我在這個課程的目標是 | 學會使用C語言,並做一個屬於自己的小程序 |
這個作業在哪個具體方面幫助我實現目標 | 學會結合已學內容做題 |
參考文獻 | C語言程序設計(第三版);百度 |
1.PTA實驗作業
1.1 輸入一組二進制字符,輸出其對應的十進制數。當輸入回車鍵時,輸入結束。若輸入非二進制字符,輸出error input!
1.1.1數據處理
數據表達:定義了一個字符型的變量:op,和一個整型變量a。
數據結構:
表達式:op=getchar())!='\n';a=a*2+op-'0'
結構式:用了while循環語句其中還嵌套了if-else語句
偽代碼:
定義變量;
while語句(條件);
if輸入的字符為1or0;
則運行 a=a*2+op-'0';
否則 錯誤;
輸出十進制;
返回0;
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
11111111 | 255 | 該二進制對應的十進制為255 |
34 | error input! | 輸入的數字不是二進制字符 |
1010 | 10 | 該二進制對應的十進制為10 |
1.1.4 PTA提交列表及說明
提交列表說明:
部分正確:'op'的限制條件沒有寫(op=getchar())!='\n')
編譯錯誤:a=a*2+op-'0'中的‘’沒有寫
1.2在中國數學史上,廣泛流傳着一個“韓信點兵”的故事:韓信是漢高祖劉邦手下的大將,他英勇善戰,智謀超群,為漢朝建立了卓越的功勞。據說韓信的數學水平也非常高超,他在點兵的時候,為了知道有多少兵,同時又能保住軍事機密,便讓士兵排隊報數:按從1至5報數,記下最末一個士兵報的數為1;再按從1至6報數,記下最末一個士兵報的數為5;再按從1至7報數,記下最末一個士兵報的數為4;最從至11報數,最末一個士兵報的數為10;請編寫程序計算韓信至少有多少兵。
1.2.1數據處理
數據表達:定義了一個整型變量i用於控制循環變量
數據結構:
表達式:i%51&&i%65&&i%74&&i%1110
結構式:用了for循環語句以及使用break跳出循環
偽代碼:
定義變量i;
用if語句限制條件;
輸出循環次數;
break跳出;
返回0;
1.2.2實驗代碼截圖
1.2.4 PTA提交列表及說明
提交列表說明:
本題的難點就在於i%51&&i%65&&i%74&&i%1110 這個條件,搞清楚了該題就很容易寫出。
2.代碼互評
同學代碼截圖
自己代碼截圖
代碼比較
首先該同學用的是while循環語句,而我使用的是for循環語句,並且我定義的變量是一些簡單的字母。
同學代碼截圖
自己代碼截圖
代碼比較
總的來說我的代碼潔簡看上去更舒服些,然后該同學的代碼考慮的問題比我的多。體現了他的謹慎。
3.學習總結
3.1 學習進度條
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
10/14-20 | 5h | 100行 | for循環結構 | 不能夠熟練for語句 |
10/20-27 | 7h | 120行 | 自定義函數 | 對定義和調用函數知識點上還是很模糊 |
10/28-3 | 8h | 380行 | char字符型 | 有些代碼所用的格式 |
11/4-10 | 8h | 150行 | switch語句 | 怎么尋找到解題的正確思路 |
11/11-17 | 6h | 160 | do-while語句和其他循環語句 | 怎么綜合運用已學內容 |
3.2 累積代碼行和博客字數
3.3 學習內容總結和感悟
3.3.1 學習內容總結
3.3.2 學習體會
我覺得pta好難啊,有些題完全沒有思路。。只能查百度,或者詢問大佬,然后讓我感到深深的自卑。總的來說,時間過得很快,知識點也越學越多,希望自己在吸收知識的同時能夠很好的將知識應用起來,然后應該多思考問題,試着用多種方法解題,能夠歸納總結。C語言有時候很難,有時候亦有趣。放棄很容易,但堅持一定很酷!繼續加油。