網路空間安全第三週學習總結
阿新 • • 發佈:2021-10-17
低階程式
機器語言是讓計算機直接執行程式設計的。每一條機器語言只可以完成簡單的操作,如移動記憶體,儲存結果等。很繁瑣,故幾乎沒有程式是由機器語言編寫的,而大多是高階語言。
每個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 之類只有我看得懂 的命名