C語言II博客作業01


這個作業屬於哪個課程 計科二班
這個作業要求在哪里 作業要求
這個作業的目標 <將各種測試文件寫入文件並用測試程序檢查代碼>
學號 <20208998>

一、給定一個十進制正整數N,寫下從1開始,到N的所有整數,然后數一下其中出現的所有“1”的個數。

1.寫出一個函數f(N),返回1到N之間出現的”1“的個數,比如f(12)=5;

2.滿足條件”f(N)=N“的最大的N是多少?

例如:
N=2,寫下1,2。這樣只出現了1個”1“。
N=12,我們會寫下1,2,3,4,5,6,7,8,9,10,11,12。這樣,1的個數是5。
要求:

1.貼出代碼圖片,寫出解題思路,列出測試數據(5分)


解題思路:

定義兩個函數,一個用來計算1到N中有多少個1,另一個用來計算最大的N值。

測試數據:

2.給出不同測試數據的運算時間,如果你的運算時間不變,說明你的測試數據不夠大(5分)

3.思考針對足夠大的數據,如何減少運算時間,並給出在原有算法基礎上的改進算法和改進思路。(10分)

改進的代碼:


改進思路:

原來的代碼是在計算最大的N的時候多用了一個函數,運行時間就很慢,改良的代碼把那個函數縮在的另外一個函數里,運算時間在那些大數據中就特別省時。

2.2 將上題中多組測試數據寫入文件,並給出測試程序以檢測你的代碼有沒有問題,貼出你的代碼、運行結果和文件內容。(5分)




2.3 用自己的語言回答兩個問題,並給出所查閱資料的引用(10分)

1.什么是文件緩沖系統?工作原理如何?

系統自動地在內存區為每一個正在使用的文件開辟一個緩沖區。從磁盤向內存讀入數據時,則一次從磁盤文件將一些數據輸入到內存緩沖區(充滿緩沖區),
然后再從緩沖區逐個地將數據送給接收變量;向磁盤文件輸出數據時,先將數據送到內存中的緩沖區,裝滿緩沖區后才一起送到磁盤去。
寫入的數據沒有裝滿內存中的緩沖區,就不會將數據寫入到磁盤文件中。當程序運行結束后,系統就會將緩沖區中的數據寫入到磁盤上的文件中,因此就可以看到文件中的內容。

2.什么是文本文件和二進制文件?

文本文件是基於字符編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等等。
二進制文件是基於值編碼的文件。

2.4 請給出本周學習總結(15分)

1 學習進度條(5分)

周/日期 所花時間 學到的知識 目前不懂的問題
第一周 12h 測試數據寫入文件輸入代碼 如何優化代碼的時間

2 累積代碼行和博客字數(5分)

3 學習內容總結和感悟(5分)

學習總結和感悟:這周的學習,在首先沒有經過特別詳細的講解的情況下,應對這次作業可謂是岌岌可危,無數次的放棄的念頭從腦子中升起,因為真的對這次作業確實是無從下手,
也確實看到了自己與同學之間的差距,他們預習了的,做的可是得心應手,我卻是無從下手,因為在寫這個題的過程中,會需要用到一些未知的領域,所以就會做着做着做不下
去,就某些如計算時間的代碼就有很多都是借鑒書上的內容,但卻不知道這些東西放在此處的意義如何,者須都需要自己的日積月累去慢慢積累,慢慢成長。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM