2024-2025-1 20241322 《計算機基礎與程式設計》 第九周學習總結

谦个大铭發表於2024-11-23

2024-2025-1 20241322 《計算機基礎與程式設計》 第九周學習總結

作業資訊

這個作業屬於哪個課程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP
這個作業要求在哪裡 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK09
這個作業的目標 - 作業系統責任 - 記憶體與程序管理 - 分時系統 - CPU排程 - 檔案、檔案系統 - 檔案保護-磁碟排程
作業正文 https://www.cnblogs.com/qiangedaming/p/18563920

教材學習內容總結

第8章 陣列和演算法基礎

8.1 一維陣列的定義和初始化

  • 介紹一維陣列的基本概念
  • 一維陣列的宣告和初始化方法

8.2 二維陣列的定義和初始化

  • 介紹二維陣列的基本概念
  • 二維陣列的宣告和初始化方法

8.3 向函式傳遞一維陣列

  • 如何將一維陣列作為引數傳遞給函式
  • 函式內部對陣列的操作和返回值的處理

8.4 排序和查詢

  • 各種排序演算法的原理和實現
  • 查詢演算法的原理和實現

8.5 向函式傳遞二維陣列

  • 如何將二維陣列作為引數傳遞給函式
  • 函式內部對二維陣列的操作和返回值的處理

第10章 作業系統

10.1 作業系統的角色

  • 記憶體、程序與 CPU管理
  • 批處理
  • 分時
10.1.1 記憶體、程序與 CPU管理
10.1.2 批處理
10.1.3 分時
10.1.4 其他OS要素

10.2 記憶體管理

  • 單塊記憶體管理
  • 分割槽記憶體管理
  • 頁式記憶體管理
10.2.1 單塊記憶體管理
10.2.2 分割槽記憶體管理
10.2.3 頁式記憶體管理

10.3 程序管理

  • 程序狀態
  • 程序控制塊
10.3.1 程序狀態
10.3.2 程序控制塊

10.4 CPU排程

  • 先到先服務
  • 最短作業優先
  • 輪詢法
10.4.1 先到先服務
10.4.2 最短作業優先
10.4.3 輪詢法

第11章 檔案系統和目錄

11.1 檔案系統

  • 文字檔案和二進位制檔案
  • 檔案型別
  • 檔案操作
  • 檔案訪問
  • 檔案保護
11.1.1 文字檔案和二進位制檔案
11.1.2 檔案型別
11.1.3 檔案操作
11.1.4 檔案訪問
11.1.5 檔案保護

11.2 目錄

  • 目錄樹
  • 路徑名
11.2.1 目錄樹
11.2.2 路徑名

11.3 磁碟排程

  • 先到先服務磁碟排程法
  • 最短尋道時間優先磁碟排程法
  • SCAN磁碟排程法
11.3.1 先到先服務磁碟排程法
11.3.2 最短尋道時間優先磁碟排程法
11.3.3 SCAN磁碟排程法

教材學習中的問題和解決過程(先問 AI)

  • 問題1:怎麼新增資料進陣列?
  • 問題1解決方案:在C語言中,陣列的大小是固定的,一旦在編譯時確定,就不能在執行時改變。因此,你不能直接向一個已經定義好的陣列“新增”資料,因為那樣會超出陣列的邊界,導致未定義行為(可能是記憶體損壞、程式崩潰等)。

不過,有幾種方法可以間接地實現向陣列中新增資料的效果:

使用更大的陣列:在定義陣列時,預估一個足夠大的大小,以確保在程式執行期間不會超出這個邊界。當然,這種方法會浪費一些記憶體空間,特別是當預估的大小遠大於實際使用時。

動態記憶體分配:使用malloc、calloc或realloc等函式在堆上動態地分配記憶體。特別是realloc函式,它可以在不丟失原有資料的情況下調整已分配記憶體塊的大小。這種方法需要手動管理記憶體,包括在適當的時候釋放記憶體。

使用結構體或類:如果你使用的是C++或其他支援物件導向程式設計的語言,可以定義一個結構體或類來封裝陣列和它的當前大小,並提供新增元素的方法。這個方法內部可以處理陣列的擴容(例如,當陣列滿時,分配一個更大的新陣列,將舊陣列的資料複製過去,然後釋放舊陣列的記憶體)。

使用標準庫容器:在C++中,你可以使用std::vector等標準庫容器,它們會自動處理記憶體的分配和釋放,以及陣列的擴容。

基於AI的學習

程式碼除錯中的問題和解決過程

  • 問題1:不會將新資料加入進陣列,使得新資料參與後續運算。
  • 問題1解決方案:查詢資料,詢問同學,學會使用goto語句。

其他(感悟、思考等,可選)

仍然無法理解“指標 ”的重要作用,還需要勤加練習。

學習進度條

程式碼行數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 000/000 2/2 07/07
第二週 000/000 1/3 07/14
第三週 000/000 1/4 07/21
第四周 050/050 1/5 07/28
第五週 050/100 1/6 07/35
第六週 070/170 1/7 07/42
第七週 080/250 1/8 07/49
第八週 100/350 1/9 07/56
第九周 200/550 1/10 07/63

相關文章