1.這個作業屬於那個課堂 | C語言程序設計 |
2.這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9886 |
3.我在這個課堂的目標是 | 學好C語言,能很好的運用它 |
4.這個作業在那個具體方面幫助我實現目標 | 從實際運用出發,使我從實踐中更加熟練地掌握它 |
5.參考文獻 | 《C語言程序設計(第三版)》 |
一.本周作業
1.PTA實驗作業
1.1 計算火車運行時間
題目內容:
本題要求根據火車的出發時間和達到時間,編寫程序計算整個旅途所用的時間。
輸入格式:輸入在一行中給出2個4位正整數,其間以空格分隔,分別表示火車的出發時間和到達時間。每個時間的格式為2位小時數(00-23)和2位分鍾數(00-59),假設出發和到達在同一天內。
輸出格式:在一行輸出該旅途所用的時間,格式為“hh:mm”,其中hh為2位小時數、mm為2位分鍾數。
輸入樣例:1201 1530
輸出樣例:03:29
1.1.1數據處理
介紹實現本題過程中,你的數據表達 數據處理是怎么做的.
數據表達:用int定義整型變量 hour,minute,depart,arrive;hour代表所用小時數,minute代表所用分鍾數,depart代表開始時間,arrive代表到達時間,
數據處理:表達式:hour=arrive/100-depart/100;minute=arrive%100-depart%100;minute=60+minute; hour=hour-1;("/"取整,"%'取余),因為minute<0時小時要減1,所hour=hour-1,%02d 控制格式,使其始終有四個數字。
1.1.2實驗代碼截圖
1.1.3造測試數據
1.1.4PTA提交列表及說明
根據PTA提交列表,簡要描述調試程序碰到的問題及解決辦法.
提交列表說明:
1.段錯誤:段錯誤就是指訪問的內存超出了系統所給這個程序的內存空間,通常這個值是由gd tr來保存的,他是一個48位的寄存器,其中的32位是保存由它指向的 gdt表,后13位保存 相應於gdt的下標,最后3位包括了程序是否在內存中以及程序的在cpu中的運行級別,指向 的gdt是由以64位為一個單位的表,在這張表中就保存着程序運行的代碼段以及數據段的起 始地址以及與此相應的段限和頁面交換還有程序運行級別還有內存粒度等等的信息。
解決辦法:這是我第一次遇到這種錯誤,如果不是出現了這種錯誤,我都快忘了錯誤不僅僅只有我們常見的幾種,上百度查,看雲班課里老師發的PTA常見問題解答,里面講到您的程序發生段錯誤,可能是數組越界,堆棧溢出(比如,遞歸調用層數太多)等情況引起
1.2 高考成績
題目內容:
高考結束不久,各校的入取分數線也出來了,北京大學(Peking University)720,浙江大學(Zhejiang University)650,工業大學(University Of Technology)600,文理學院(Shaoxing University)550,文理學院元培學院(Shaoxing University Yuanpei College)500,紹興職業技術學院(Shaoxing Vocational & Technical College)400,張三的分數為n,請問張三能去哪個大學? 如果分數低於400,則回家種地(to be a farmer)。很多學生都想知道自己能去哪個學校,求身為程序員的你幫幫他們。 輸入格式:一個高考分數N。 輸出格式:錄取大學的名字或者to be a farmer。
1.2.1數據處理
介紹實現本題過程中,你的數據表達 數據處理是怎么做的.
數據表達:用int定義了整型變量N,N代表高考分數
數據處理:代碼中多次用了if-else語句結構,用到了邏輯運算符&&(且)
1.2.2實驗代碼截圖
1.2.3造測試數據
1.2.4PTA提交列表及說明
根據PTA提交列表,簡要描述調試程序碰到的問題及解決辦法.
提交列表說明:
1. 部分正確:忘記打int main()
解決辦法:看錯誤提示,上面寫到"("應該在“{”前面
2.部分正確:沒有考慮到上限問題
解決辦法:只有第一個答案正確,其他的錯誤,沒有考慮到不僅僅要超過那個學校的分數線,還有考慮在上一個分數線之下,如N>650&&N<720,而不是N>650就可以了。
2.代碼互評
找2份同學代碼,和自己代碼比較,建議互評代碼盡量找代碼風格差異較大.
(1)
風格差異:
a.我們定義的變量不一樣,她把路程用n定義,而我用s定義,我個人認為s要好一點,因為我們常常用s表示路程讓人一看就清楚你的變量代表的是什么。
b.她直接用了題目中給出的單詞,而我重新定義了變量T,t,並且是用了整型變量,而她是用的雙精度浮點型變量.
c.她的代碼比我的要簡潔,但是她這樣到最后輸出的難道不是一個數嗎?因為她的語句是 Bike=27+23+S/3; Walk=S/1.2;最后出來的結果不應該是騎車和走路所用的時間還有All嗎.
(2)
風格差異:
a.我們考慮的方式不一樣,他先考慮了21世紀之外的,而我先考慮21世紀之內的。
b.用的不一樣的單詞做變量,他用了year代表年份,而我用了n,
c.都用了三個if語句和一個for語句,他一次性把需要的變量都輸入進來了,而我是到后面需要的時候才輸入的,他的顯得有安排,而我的就沒有考慮清楚,要用的時候才輸,應該向他學習,無論做什么事情都要想清楚了再做,不要做一步想一步,這樣很容易出錯.
3.學習總結
3.1學習進度條
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
9/18-9/22 | 48小時 | 8 | C語言中簡單的輸出函數 | C語言到底是什么,它有什么用 |
10/2-10/4 | 48小時 | 16 | 攝氏溫度與華氏溫度的轉變 | 我們做的作業除了讓我們熟練運用以外還有什么用呢 |
10/8-10/12 | 50小時 | 39 | 用計算機計算分段函數、if-else語句 | 直到型循環結構等怎么編程 |
10/15-10/18 | 26小時 | 220 | 掌握使用for循環語句實現指定次數的循環程序設計 | 我什么時候才能完全弄懂我的編程 |
10/22-10/25 | 48小時 | 360 | 怎樣編程函數的階乘 | 我該怎樣才能真正的學好老師所教的知識 |
10/29-11/2 | 24小時 | 400 | 二分支結構和if-else語句 | 對基礎知識掌握不到位 |
3.2累積代碼行和博客字數
3.3學習內容總結和感悟
3.3.1學習內容總結
整理本周學習的主要知識點,並能對每個知識點介紹簡單案例或語法.
3.3.2學習體會
請回顧自己的本周的學習過程,描述學習感受,也可以提出你不理解的地方 對教師教學建議等。如果你有新的想法或者新的方法,請及時記錄下來.
1.相當於上周來說我覺得自己還是有一定的進步,就是可以在做題目之前不借助工具自己開始慢慢的寫代碼,即使時間用了很久,很多因素沒有考慮到,但自己至少敢於嘗試了,而不是一看到題目就搜怎么做了,
2.雖然看其他人的博客作業可以提高自己的知識面,也可以使自己的博客作業做好,但是我認為有一個缺點,就是看了這些同學的博客作業,我們的思維方式就受到了一定的限制,就很難做出比這些同學更好的博客作業,因為她們的作業被老師表揚了,我們就理所當然的認為她們的很好,自己稍微改動一下好像就沒有她原來的好,這也許只是我個人的看法。
3.我希望自己的勇氣多一些,自己不要去墨守成規,而要敢於不斷突破,這樣自己才會有更大的進步,我相信沒有人不想優秀.
4.自己要加強基礎知識的注意,無論我們干什么事,都是建立在基礎知識上的,沒有基礎,我們將一事無成,所以我們不要覺得基礎知識不重要。