2020-2021 1學期20212329《計算機科學概論》第三周學習總結


第三周學習第六章低級程序設計語言與偽代碼,第七章問題求解與算法設計。
從第六章中學習到計算機執行程序指令使用的是機器語言,給每條機器語言指令分配一個助記指令碼是匯編語言。從機器語言到匯編語言,緩解了程序員效率低工作量大的問題,同時能夠減少編程中的錯誤。將兩種語言聯系起來的是匯編器,它將編程語言翻譯成等價的機器語言,反之亦然。虛擬機Pep/9內存由65536字節個存儲空間構成,65536=2的16次方,一元指令的長度為1字節,指令說明符中后三位為000為立即尋址,001為直接尋址。立即尋址為操作數說明符包含將要處理的數據,直接尋址為操作數說明符包含將要處理的數據的地址。載入寄存器尋址模式為立即尋址或直接尋址。編寫程序中包括載入、存儲以及停止程序運行(偽代碼為END.),行為與二進制指令與十六進制指令一一對應,一般情況下,操作數用0x(十六進制)表示,然后是逗號,最后是尋址模式(i=立即尋址(immediately),d=直接選址(directly))。DECI(十進制輸入)指令設計將輸入的字符轉為數字的操作,不支持立即尋址。DECO指令輸出特定的十進制數字,支持兩種尋址模式。STRO指令被用來打印完整的一串字符串。分支操作中斷程序的正常線性流。CPWA指令將累加器當前的值減去操作數,存儲累加器的結果。若此時結果≤0,則BRLT和BREQ指令可被用來判斷。偽代碼是一種能夠表達算法的語言,有五個必須表示的概念:變量,賦值,輸入/輸出,選擇,重復。特別地,布爾表達式為評價真假的表達式(while if旁的括號里)涉及縮進語句,何時跳過縮進語句與其語句類型有關:在if中真則進入縮進語句,假則跳過(有else則執行其下面的代碼塊):在while中與if不同的是沒有else。測試分為明箱測試法(代碼覆蓋測試法)和暗箱測試法(數據覆蓋測試法),前者基於代碼來測試,后者基於數據來測試。
從第七章中圍繞“問題”展開學習由提出問題到解決問題,首先需要理解問題,找到數據和問題之間的關系,分析執行方案以及最終方案。方法大致歸為:分析問題、明確主要任務、編寫其余模塊、重組與改寫。帶有循環的算法包括計數控制循環、事件控制循環和平方根,而事件控制循環中又包含嵌套結構(控制結構嵌入另一個控制結構的結構),以上為有簡單變量的算法。數組是同構項目中的有名集合,通過單個項目在集合中的位置訪問他們。記錄是異構項目的有名集合,可以通過名字單獨訪問其中的項目。異構就是指集合中的元素可以不必相同。搜索算法包括順序搜索和二分檢索。二者各有所長,在數組是有序且排好的情況下,不超過20個時,使用二分法更勝一籌。排序分為選擇排序、冒泡排序、插入排序(、快速排序)。當一個算法中使用它自己時,這樣的算法成為遞歸算法。遞歸就是算法調用它本身的能力。子程序是抽象的強力工具,命名子程序列表允許程序的讀者了解到任務已經完成並且不被任務實現的細節所打擾。用遞歸階乘和遞歸二分檢索來測試計算機的算力及內存。在進行高層設計時不能看見低層的細節,這被稱之為信息隱蔽(隱蔽模塊的細節以控制對這些細節的訪問的做法)。抽象指復雜系統的一種模型,只包括對觀察者來說必需的細節。在計算領域,算法就是需要實現的步驟的抽象。抽象有數據抽象(分離數據邏輯視圖與其實現)、過程抽象(分離動作邏輯視圖與其實現)、控制抽象(分離控制結構邏輯視圖與其實現)三類。控制結構(用於改變正常順序控制流的語句)。給數據和過程一個名字,這個名字叫做標識符,數據和動作的標識符都是抽象的一種形式。測試:白盒測試、黑盒測試(與明箱暗箱測試法類似)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM