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

Alphl發表於2024-10-27

作業資訊

|這個作業要求在哪裡|<作業要求的連結>(如2024-2025-1計算機基礎與程式設計第一週作業)|
|這個作業的目標|Pep/9虛擬機器 機器語言與組合語言 演算法與虛擬碼 測試:黑盒,白盒|
|作業正文|https://i.cnblogs.com/posts/edit |

教材學習內容總結

演算法的特性:
有窮性:演算法必須在執行有限步驟後終止。
確定性:演算法的每一步驟都必須有明確的定義。
可行性:演算法的每一步都必須足夠基本,以至於可以準確無誤地執行。
輸入:一個演算法有0個或多個輸入。
輸出:一個演算法有一個或多個輸出。
通用性:演算法可以被用來解決一類問題,而不僅僅是單個問題。
演算法的設計原則:
分解:將複雜問題分解成更小、更易於管理的部分。
模式識別:識別重複出現的問題,併為它們設計通用解決方案。
抽象:忽略細節,關注問題的核心部分。
簡化:使用簡單的方法解決問題,避免不必要的複雜性。
演算法的分析:
時間複雜度:演算法執行時間隨輸入規模增長的變化趨勢。
空間複雜度:演算法執行過程中需要的儲存空間隨輸入規模增長的變化趨勢。
虛擬碼的組成部分:
變數宣告:定義演算法中使用的變數。
輸入/輸出:描述演算法的輸入和輸出。
控制結構:包括順序結構、選擇結構(如if-else語句)、迴圈結構(如for或while迴圈)。
操作:描述演算法中的基本操作,如賦值、算術運算、邏輯運算等。
註釋:對演算法的某些部分進行解釋,以提高可讀性。
虛擬碼的書寫風格:
使用清晰的語言和格式。
保持簡潔和精確。
使用縮排來表示程式碼塊的結構。
適當使用註釋來解釋複雜的邏輯。
常見的演算法型別:
排序演算法:如快速排序、歸併排序、氣泡排序等。
搜尋演算法:如二分搜尋、深度優先搜尋(DFS)、廣度優先搜尋(BFS)等。
圖演算法:如Dijkstra演算法、A*搜尋、Prim演算法、Kruskal演算法等。
動態規劃:用於解決具有重疊子問題和最優子結構特性的問題。
貪心演算法:在每一步選擇中都採取在當前狀態下最好或最優的選擇,以期望導致結果是最好或最優的演算法。
演算法的實現:
將虛擬碼轉換為具體的程式語言程式碼。
測試演算法以確保它正確地解決了問題。
最佳化演算法以提高效率和效能。
測試用例設計:
基於需求規格說明書。
考慮所有可能的輸入條件,包括邊界值。
測試型別:
等價類劃分:將輸入資料劃分為若干等價類,從每個等價類中選取測試用例。
邊界值分析:測試輸入或輸出值的邊界條件。
錯誤猜測:基於經驗和直覺選擇測試用例

決策表:使用表格形式列出條件和動作,以系統地設計測試用例。
狀態轉換:適用於具有明確狀態的系統,測試狀態之間的轉換。
測試目的:
驗證軟體的功能是否符合使用者需求。
檢查軟體介面是否友好。
確保軟體能夠處理異常情況。
測試過程:
不需要了解程式的內部結構。
測試者扮演使用者的角色。

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



相關文章