1. 程式人生 > 其它 >2021-2022-1學期 20212307 《網路空間安全專業導論》第四周學習總結

2021-2022-1學期 20212307 《網路空間安全專業導論》第四周學習總結

20212307孫以諾

學習收穫

第八章 抽象資料型別與子程式

抽象資料型別

抽象資料型別:屬性明確地與特定實現分離的容器;、
應用層是特定問題中資料的檢視。邏輯層是資料值和處理它們的操作的抽象檢視。實現層明確表示出了存放資料項的結構;,並用程式設計語言對資料的操作進行編碼;
棧是一種抽象複合結構,只能從一端訪問棧中的元素。可以在第一個位置插入元素,也可以刪除第一個元素;
棧沒有長度屬性,所以沒有返回棧中專案個數的操作;
佇列也是種抽象結構,佇列中的專案從一端入,從另一端出;
列表有三個屬性特徵:專案是同構的,專案是線性的,列表是變長的;
根不是任何節點的子女;
如果一個節點沒有子女,則這個節點叫作樹葉;
二叉樹:具有唯一起始節點的抽象複合結構,其中每個節點可以有兩個子女節點,根節點和每個節點之間都有且只有一條路徑;
如果一個節點是另一個節點的父母或者是另一個節點先輩的父母,那麼前者是後者的先輩,根節點是樹中其他所有節點的先輩;
二叉檢索樹中的節點可以具有0個,1個或兩個子女;
任何節點的值都要大於它的左子樹中的所有節點的值,並且要小於它的右子樹中的所有節點的值;
null是一個特殊值,說明指標指向空值。因此,如果一個指標是null,那麼這個子樹就是空的;
如果在搜尋路徑中沒有找到要找的專案,那麼最後達到的就是這個專案應該在的位置;
一個空樹有0個節點,任意一個樹的節點是1加上左子樹中的節點個數和右子樹中的節點的個數;
棧返回的元素是在其中停留時間最少的元素,佇列返回的是在其中停留時間最長的元素;
深度優先搜尋,廣度優先搜尋和單源最短路搜尋;
棧是一種儲存頂點的合適的資料結構;
不能多次處理同一個頂點;
我們採用佇列來儲存元素的順序可以按照它們出現的先後順序;
資訊的交流是通過引數列表的概念實現的;
傳遞引數的基本方式有兩種,即通過值傳遞和通過引用傳遞;
要訪問一個引用引數,子程式必須訪問留言板上列出的地址中的內容。要訪問一個值參,子程式只需要訪問留言板自身的內容即可;

第九章 面向物件設計與高階程式設計語言

面向物件方法

在面向物件的思想中,資料和處理資料的演算法繫結在一起;
類描述的是類中的物件表現出的屬性和行為,特定的物件只是類的一個例項;
CRC卡就是用來記錄責任演算法階段的類資訊的工具;
四個階段:頭腦風暴 過濾 場景 責任演算法 總結;
建議用波浪線標出名詞,用下劃線標出動詞;
在自頂向下設計中,動詞是重點;在面向物件設計中,名詞是重點;
當一個類達到CRC階段,類名以大寫字母開頭;

翻譯過程

用匯編語言編寫的程式要輸入彙編器;
翻譯用高階程式設計語言編寫的程式的程式叫作編譯器;
編譯器是一種程式,要編譯一個程式,就必須具有這個編譯器在特定機器上的機器碼版本;
直譯器在翻譯過語句之後會立即執行這個語句;
翻譯器和模擬器都接受用高階語言編寫的程式作為輸入。翻譯器只用適合的機器語言生成等價的程式,這個程式再單獨執行。而模擬器則直接執行輸入的的程式;
第二代高階語言可以分為兩種:一種是要編譯的,一種是要解釋的;
Java編譯器輸出的程式將被解釋,而不是直接被執行。Java程式總是被翻譯成位元組碼;

程式設計語言範型

命令式範型具有順序執行指令的特徵,變數的使用代表了記憶體地址,而使用賦值語句則改變這些變數的值;
在面向過程的範型中,資料被認為是被動並且被程式所操控的。在面向物件的範型中,資料物件是活躍的;
宣告式範型是一個描述結果的模型,但是完成結果的過程則不被描述;
Scheme是解釋型語言,因此結果在聲明後立即顯示;
為了避免使用“=”和“==”在不同語言中代表相等的混淆。我們在演算法中用“相等”而不是兩者中的任意一種符號;
我們將要探討的的語言中,C++,Java,VB.NET是強型別的語言,而Python則不是;
計算機能夠執行一條指令,是因為這條指令的地址被載入了程式計數器;
Pep/9的Stop指令是一個所有位為0的位元組;
應用於整數的操作是標準的算術運算子和關係運算符;
表示ASCII字符集中的字元需要一個位元組,表示Unicode字符集中的字元則需要兩個位元組;
整數,實數,字元和布林型稱為簡單資料型別或原子資料型別,因為每個值都是獨立的,不能再分割;
使用單引號圈起字元,用雙引號圈起字串;
C++、Java、Python和VB.NET是區分大小寫的;
變量出現在輸入語句中的順序必須與值出現在輸入流中的資料一樣;
在非強型別語言中,輸入的格式決定了型別;

遇到的問題