1. 程式人生 > 其它 >網路空間安全第三週學習總結

網路空間安全第三週學習總結

低階程式

機器語言是讓計算機直接執行程式設計的。每一條機器語言只可以完成簡單的操作,如移動記憶體,儲存結果等。很繁瑣,故幾乎沒有程式是由機器語言編寫的,而大多是高階語言。

每個CPU都因為其機器的不同而擁有不同的機器語言。故我們可以使用虛擬機器來解決這個問題,虛擬機器是個假象的機器。

Pep、9由1024*64個位元組的儲存空間構成。

暫存器裡有PC IR A

組合語言給每一個機器語言都編了註記指令碼,讓程式設計師可以通過指令碼來編寫程式,但是最後組合語言都會轉化為機器語言而在機器上完成。

定址模式(i(立即定址)(d(直接定址))

虛擬碼:

一種可以無視各種高階語言語法,直接表達意思的計算機語言,不像python c++可以編譯,執行,但是便於理解與程式設計師之間的溝通

一些概念:
變數:

不用定義,直接寫就可以,sum就代表和,i,t什麼的迭代遞迴時使用的變數基本上不會有

賦值

sum<-0 //將sum賦值為0

箭頭代表賦值

輸出

write//代表輸出

不用printf,cout>>,print()啥的

重複

while(條件)

選擇

if

如此就基本上可以完成計算機的大部分運算

程式碼的測試:
測試計劃 即一個文件 說明了要全面測試的程式及資料

程式碼覆蓋測試法

資料覆蓋測試法 程式碼為暗箱,基於資料測試

測試計劃實現 即完成了目標

問題求解與演算法設計:

解決問題四步:

理解問題

設計方案

執行方安

分析方案 找問題

排序演算法我還是懂一些的

有氣泡排序。快速排序。插入排序。選擇排序。二叉樹排序。堆排序,。後面兩個實現有些困難,不過原理都理解

幾個重要思想:
訊息遮蔽,抽象 我理解就是黑箱 只關注它有啥用,即輸入輸出,而忽略內部結構

事物命名

我應該使用有意義的命名,而非i a z b 之類只有我看得懂 的命名