2024-2025-1 20241401 《計算機基礎與程式設計》 第五週學習總結

Xseventeen發表於2024-10-24
班級連結 2024計算機基礎與程式設計
作業要求 第五週作業
作業目標 ①Pep/9虛擬機器 ②機器語言與組合語言 ③演算法與虛擬碼 ④測試:黑盒,白盒

教材學習內容總結

《電腦科學概論》第六章

  • 計算機操作:
  1. 介紹了計算機的基本操作,包括機器語言的基本概念。
  2. 機器語言是由一系列二進位制程式碼組成,計算機可以直接理解和執行的語言,但它難以編寫和理解。
  • Pep/9虛擬機器:
  1. 作為一臺虛擬機器,Pep/9用來說明機器語言的輸入/輸出操作。
  • 組合語言:
  1. 組合語言是一種低階語言,使用助記符代替機器語言的二進位制程式碼,使得程式更易於編寫和理解。
  2. 組合語言需要透過彙編器轉換成機器語言才能被計算機執行。
  • 表達演算法:
  1. 介紹了虛擬碼的功能,包括變數、賦值、輸入/輸出、重複和選擇等。
  2. 虛擬碼是一種表達演算法的語言,它使得演算法的描述更加接近自然語言,易於理解。
  • 測試:
  1. 討論了所有程式都必須經過測試以確定其正確性。
  2. 測試計劃是一個文件,說明了要全面測試程式需要執行的次數以及執行程式使用的資料。
  3. 每套輸入的資料稱為測試用例。

《C語言程式設計》第四章

  • 單個字元的輸入/輸出:
  1. 介紹字元常量的概念。
  2. 講解如何進行字元的輸入和輸出操作。
  • 資料的格式化螢幕輸出:
  1. 討論如何使用不同的格式符(如%d、%f、%s等)來格式化輸出資料。
  2. 介紹printf函式的使用,包括字串、數值、字元等不同型別資料的輸出。
  • 資料的格式化鍵盤輸入:
  1. 討論如何使用scanf函式進行格式化輸入,包括如何處理輸入的數值、字元和字串。
  2. 介紹輸入時的格式控制和輸入驗證。
  • 擴充內容:
  1. 討論使用%c格式符輸入字元時可能遇到的問題,例如緩衝區讀取換行符的問題。
  2. 提供解決%c格式符存在問題的解決方法,比如如何正確讀取單個字元。

教材學習中的問題與解決過程

問題1:如何將演算法轉換為虛擬碼?
AI:

  1. 理解演算法:
    在開始之前,確保你完全理解演算法的邏輯流程和目標。
  2. 確定輸入和輸出:
    確定演算法的輸入(即演算法開始時需要的資料)和預期的輸出(即演算法完成後應產生或返回的資料)。
  3. 分解演算法:
    將演算法分解為更小的步驟或邏輯塊,例如初始化、迭代、條件判斷、計算等。
  4. 使用控制結構:
    使用順序結構(步驟按順序執行)、選擇結構(如if-else語句)和迭代結構(如for或while迴圈)來控制演算法的流程。
  5. 描述操作:
    用簡單的英語描述每個步驟的操作。例如,“計算總和”,“檢查是否滿足條件”等。
  6. 使用虛擬碼關鍵字:
    引入虛擬碼關鍵字,如 if, else, while, for, function, return 等,來表示不同的控制結構。
  7. 定義變數和資料結構:
    為演算法中使用的資料定義變數和資料結構,並在演算法中適當位置進行初始化。
  8. 註釋和清晰性:
    在需要的地方新增註釋,以提高虛擬碼的可讀性。
  9. 檢查邏輯:
    檢查虛擬碼的邏輯是否與原始演算法一致,確保沒有遺漏任何步驟。
  10. 迭代和最佳化:
    根據需要對虛擬碼進行迭代和最佳化,以提高畫質晰度和效率。

問題2:為什麼使用兩次scanf時第二次會出現故障?
AI:
存在輸入緩衝區問題:在使用scanf函式時,可能會遇到輸入緩衝區中殘留的換行符或其他字元,導致程式行為異常。
可以在scanf之後使用getchar()函式迴圈讀取並丟棄緩衝區中的字元,直到遇到換行符或檔案結束符(EOF)。另一種方法是使用scanf的格式字串來忽略緩衝區中的特定字元。

基於AI的學習


學習進度條

計劃學習時間:20h
實際學習時間:20h

相關文章