第2页.doc_第1页
第2页.doc_第2页
第2页.doc_第3页
第2页.doc_第4页
第2页.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

空大97下學期程式語言期中考複習重點(P.1-P.153) 李豐良老師整理【本整理僅供幫助同學們複習參考,同學們仍需精讀課本與網路教材,尤其是網路教材的問題及自我評量部分為空大出題教授的最愛,謝謝!】第一章第2頁1.電腦系統(computer systems)包括了硬體系統(hardware system)與軟體系統(software system)。第3頁1. 用來和電腦溝通的程式語言。2. 程式語言並不是我們跟電腦溝通的唯一方式,以硬體設備來說,鍵盤、滑鼠、麥克風與手寫板等都是跟電腦溝通的工具,印表機與螢幕則是電腦回饋資訊給我們的平台。3. 電腦軟體的使用者介面也是常見的溝通管道。4. 以程式語言進行的溝通是非常深入的,可以讓我們發揮電腦最大的功能。第4頁1.和電腦溝通的主要原因是要使電腦替我們工作。2.主要的關鍵在於了解所要完成的工作,以及如何了解電腦的語言來描述即將進行這些工作的程序。3.程式語言在設計上都有一些要求,最重要的是描述能力。4.程式語言是用來撰寫解決問題的程式。5.軟體的工作是以資料的處理為主軸6.資料的表示與運算是任何程式邏輯的基礎。7.資料指最常見的數值資料。第5頁1.電腦使用的是2進位制數字系統。第6.7頁1. 進位制之間數值的變換整數部分(用連除法)。 小數部分(用連乘法)。第8.9頁1. 用2的補數(2s complement)表示負數的方式 2補數的表示方法是先取得2進位表示法的相反值,然後加上1所得到的結果。 2補數的好處是可以用來表示負數,假如把最左邊的位元拿來表示正負,則其餘位元則代表數值的大小。第10頁1.我們把電腦系統(Computer system)分成4大部分: 1.硬體(hardware) 2.作業系統(operating system) 3.應用程式(application program) 4.使用者(users)第11頁1. 它所以現出來的功能會因裡頭程式(program)的不同而有差異儲存程式的電腦(stored program computer)或通用型電腦(general-purpose computer)。2. 1940,凡紐曼電腦結構(von Neumann computer architecture)。3. 一部凡紐曼電腦的硬體結構,所有的組成都是經由匯流排(bus)連接在一起,當作彼此間溝通的管道。4.程式(program)與資料(data)由輸入設備傳入。5.中央處理器了解程式指令的涵義。6.電腦運算的結果可以透過輸出設備顯示或是列印出來。第12頁1. 圖1-1 凡紐曼電腦的結構2. 電腦所使用的資料都儲存記憶體(memory)中,次記憶體(secondary memory)儲存資料的時間較長,通常位於儲存設備(storage device)上,主記憶體(primary memory)只載入與程式執行相關的資料暫存,一旦程式結束或不再需要該筆資料,主記憶體會盡快把資料移出。3. 一個有效率的程式必須能善用電腦的主記憶體資源。第13頁1.作業系統中的記憶體管理程式(memory manager)負責將主記憶體分配給處理單元(process),同時輔助進行資料在主記憶體的載入與卸載。2.管理主記憶體的分享(sharing)。3.降低記憶體的存取時間(access time)。4.暫存器(register)、快取記憶體(cache memory)與主記憶體屬於所謂的執行用記憶體(executable memory)。5.執行記憶體的存取時間通常以nanoseconds為單位,即10的負九次方秒。6.圖1-2。第14頁1. 次記憶體的存取機制和儲存設備與驅動程式有關,存取的時間通常以microseconds為單位,即10的負六次方秒。2. 執行用記憶體講求效率,次記憶體強調空間與長期保存。3. 記憶體管理程式負責執行用記憶體的配置(allocation),以及資料在記憶體架構(memory hierarchy)各層級之間的交換。4. 虛擬記憶體系統(virtual memory system)負責主記憶體與次記憶體之間、以及快取記憶體與主記憶體之間資料的自動轉移。5. 檔案管理程式(file manager)則負責次記憶體空間的管理。6. 作業系統在電腦裡算是常駐程式(resident program),有時候人們把這一部分稱為核心(kernel)。7. 作業系統的角色,當然就不外乎電腦資源的配置與管理,讓使用者能方便地與電腦溝通,同時使電腦維持良好的效率。第15頁1. 作業系統的主要工作是安排程式依序執行到結束的過程,這種環境稱為批次系統(batch system)。2. 那些程式能被移入主記憶體等待執行,就得由作業系統來做工作排程(job scheduling)。3. 主記憶體中的那個程式可到CPU中執行,則由CPU排程。4. 圖1-3 多重程式處理(multiprogramming)。第16.17頁1. 我們現在常用的視窗作業系統是容許互動的,這就是分時系統(time-sharing system)的由來。2. 分時的意思是把CPU的時間切割,使CPU不會被一個程式拖得太久。3. 分時系統具有多工(multitasking)的能力。4. 個人電腦作業系統有:Microsoft Windows、IBM OS/2、UNIX。5. 即時系統(real-time system),電腦必須在時控條件(time constraints)容許的範圍內完成工作。第18頁1. 硬性即時(hard real-time)嚴格要求必須在時限之內完成,因此任何資料的存取或是作業系統完成每項請求的時間,都要加以管制。2. 軟性即時(soft real-time)只要求有即時性需求的工作給予較高的執行優先順序。3. 軟體系統執行時環境已經逐漸變成所謂的分散式運算(distributed computing)的架構。第19.20頁1. 緊密結合的(rightly-coupled)分散式運算架構:多個CPU共享記憶體,可作為彼此之間溝通的基礎,這一類的系統也常稱為平行處理系統(parallel processing system)。2. 鬆散結合的(loosely-coupled)分散式運算架構:多台電腦經由網路連接起來,因此主要的溝通方式是訊息的交換。例如常聽到的網路作業系統(network operating system)。3. 鬆散結合的分散式系統則有極大的擴充彈性。4. (Distributed Operating System,DOS)在定義上都算是鬆散結合的(loosely-coupled)分散式運算結構。5. 平行系統6. 網路作業系統7. 分散式作業系統:有點廣愈透明化的味道。第21頁1. 處理元是執行中的程式。2. 處理元(process)式電腦系統中進行運算的基本單元。3. 處理元是執行中的程式,處理元包括以下的元件:1. 執行的目標程式碼。2. 程式執行時所用到的資料。3. 程式執行時所需要的資源。4. 處理元執行時的狀態。4. 所謂的資源在此是指處理元必須從作業系統取得的任何東西。第22頁1.程式只是一種靜態的內容,程式拿來執行以後產生了具有動態特性的處理元。2.處理元資料描述是一種資料結構。3.處理元的狀態(process state)。第23頁1. 執行中(running)的狀態,這時候可能有四種情況發生:2. 電腦最擅長的事進行快速的算術(arithmetic)與邏輯(logical)運算。第24頁1. 送到CPU中處理的程式或資料,一般會先放在資料暫存區(buffer)中,處理完的結果也會放在那兒。2. CPU擁有一些內建的指令集(instruction set),通常是一種所謂的數值化語言(numerical language),只有CPU了解如何處理這些指令集,不同品牌的CPU,其所用的指令集也不一樣,一般將這一類的語言通稱為機器語言(machine language)。第25頁1. 要指揮CPU工作,就要用這些機器語言。2. 機器語言太過於原始,對於人類而言,並不是可以接受的溝通方式。3. 能做程式語言與機器語言之間的轉譯,通常這一類的程式被稱為編譯器(compiler)或是直譯器(interpreter)。第26頁1. 解決科學運算問題的FORTRAN。2. COBOL用在商業應用的資料處理。3. ALGOL的出現產生了以BNF來表示程式語言語法的方式。第27頁1. LISP程式執行完全是函數(function)的計算,整個程式看起來就像一個大串列(list)。2. (Beginners All-purpose Symbolic Instruction Code)是大眾熟知的語言,語法簡易。3. PASCAL語言是結構化程式設計盛行的主要助力。4. Prolog是有名的人工智慧語言。5. Smalltalk也是一種相當特殊的語言,以物件導向模型。6. 程式語言C在1970年代早期產生於貝爾實驗室,曾用來撰寫UNIX的作業系統。第二章第33頁1. 電腦有強大的運算、儲存、輸出、輸入與傳遞的能力。第36頁1. 大型電腦(mainframe computer)、中型電腦(midrange)與工作站(workstation)。2. 合作運算與主從架構。現在講求個人化,高效能的電腦成為組織與企業資訊資源入口。第38頁1. 工作站的發展在於精簡指令集(RISC)電腦架構的出現,在某些優於複雜指令集(CISC)的電腦架構,不過真正的關鍵還是在於軟體的發展。2. 多處理器的電腦。第40頁1. 程式語言可用來描述演算法,讓代表演算法的指令能在電腦上執行。2. 語法語語意,語法代表程式語言所提供的語言,會決定寫出來的程式外觀,語意代表所描述的功能,以及被執行時會產生的作用。3. 程式事由符號組合而成的。4. 原始程式多半是文字的檔案,而且以英文為主。5. 終結符號(terminal symbol)代表程式語言的基本組成,通常由字元或字串形成。第41頁1. 非終結符號(non-terminal symbol)。2. 產生規則(production)。3. 目標符號。4. 貝諾爾格式(Backus-Naur Form,BNF)。第42頁1. 非終結符號出現的法則2. 目標符號出現的法則第43頁1. 運算式的文法。2. 推演樹也稱為文法分析樹(parse tree)。第46頁1. 文法分析。2. BNF所適合描述的文法稱為與上下文無關的文法(context-free grammar),是一個單純的取代法則,與上下文(context)無關。第48頁1. 有人把程式語言分成低階的機器語言與組合語言以及高階語言。2. 常見的程式語言方法論有4種:命令式的、函數式的、邏輯式與物件導向的。3. 命令式的程式語言以下指令的方式來引導程式的執行,像Pascal、C等都是屬於這一類型,換句話說,大多數的開發語言都具有這種特徵。4. C+屬於物件導向式的程式語言。5. LISP式函數式的程式語言。第49頁1. Prolog是邏輯式程式語言的一種,利用語法來描述事實(facts)及推理的規則(rules)。2. 程式語言分成宣告式的語程序式的兩大類。3. 宣告式的語言不必詳細描述運算的步驟,像資料庫系統常用的結構化查詢語言(SQL)就是一種宣告式語言。4. 程序式的語言一步一步地描述運算的過程,像Pascal、C、C+等就可算是程序式的程式語言,這一類的語言能將各種描述的非常清楚,具有運算上的完整性。5. 一般資料庫系統中除了提供宣告式的SQL之外,也會支援程序式的語言,才有辦法有效率地描述各種應用系統的功能。第50頁1. 系統程式或是系統軟體包含很多種程式,主要的功能是支援電腦的作業,這裡的作業跟電腦內部機制有關。2. 編輯程式來輸入程式碼編輯程式把程式轉換成機器語言用linker與loader把程式載入到記憶體中執行debugger來偵錯。3. 組合語言(Assemblers)。4. 原始程式碼需要轉譯為目標碼,也就是所謂的機器語言的表示法。第51頁1. 程式的連結(Link)與載入(Load)。2. 目標程式含有從原程式轉換過來的指令與資料。3. 有數個彼此相關的目標程式需要載入,這時候還需要將目標程式連結在一起。4. 載入將object program載入到記憶體中執行的過程。5. 重定位更改object program,讓載入的位址可以跟原來的位址不一樣。6. 連結結合多個object programs,提供適當的資訊讓object program之間能夠互相引用。第52頁1. 編譯程式(compiler)2. 巨集處理器也是一種系統程式。3. 編譯程式是用來處理高階程式語言。4. 一般程式備處理的過程主要有直譯與編譯兩種方式,處理的目的是讓程式能轉換成可以在電腦執行的型式。第53頁1. 程式語言的最主要功能是用來開發各種軟體系統。2. Java程是經過編譯以後會產生Java位元碼,Java位元碼可以經由直譯的方式來執行。3. 直譯原始程式碼為直譯器的輸入,每譯完一個指令就馬上執行,然後再處理下一個指令,因此直譯的方式感覺效率比較高,但是實際上不見得如此。4. 編譯原始程式碼為編譯器的輸入,全部轉換成目標程式,這個過程叫做編譯時期,目標程式可直接對應成機器語言在電腦上執行,這個過程叫做執行時期。5. 而且一旦程式除錯完畢,只要編譯過一次就可反覆地執行。6. 不管是直譯器或編譯器,我們都把他們規劃成系統程式。第54頁1. 程序庫(library)。2. 通常還要經過一個鏈結(link)的程序,與所呼叫的程式庫結合成一個完整的可執行程式碼。第57頁1. 連結(binding)是程式語言理很重要的觀念。第58頁1. 靜態連結(static binding)表示連結發生在執行時期則稱為動態連結(dynamic binding)。2. 提早的連結時間(early binding times)有助於提升程式效能,延後的連結時間(late binding times)則容許比較大的彈性。第59頁1. 物件在生命週期中所占有的儲存空間有3種常見的配置方式: 1.靜態的物件(static objects):具有絕對的位址(absolute address ),程式執行過程中不會改變靜態物件的位址。全域變數(global variable)就是一種靜態物件,基本值(literal)也是以靜態的方式來配置的。 2.堆疊物件(stack objects):以後進先(last in, first out)的方式來配置。 3.堆積物件(heap objects):堆積空間的管理牽涉到碎片(fragmentation)的問題。第60頁1. 編譯程式由時候為了提升效率,會把一些資料放到暫存器。2. 通常堆疊的成長是向下的。第61頁1. 某個名稱的連結只在程式的某個範圍內才有效,這是連結範圍的由來。2. 連結的範圍是在編譯時期就決定的,所以屬於靜態的。第62頁1. 垃圾回收。由系統自動回收儲存空間的好處是比較不會因人為疏失造成錯誤。2. 分開編譯,編譯的單位常稱為模組。3. 程式語言在撰寫時需要編輯程式。第63頁1. 整合式的開發環境是把所支援的功能都集合起來。第64頁1. 程式語言依照出現的先後次序共可以分成五代,分別是機器語言、組合語言、高階語言、極高階語言及自然語言。軟體開發的主要過程可以分成五階段:需求、設計、分析、撰寫程式碼、和驗證的系統工程。微軟.NET平台架構就是在網頁服務的原則下,來提供網頁服務穩固的基礎開發架構。第三章第67頁1. 程式語言由一組系統化的符號所組成之集合,而程式語言的目的則是利用這些符號來表達某種機器解決特定問題的步驟。2. 程式(programs)。3. 符號組合成指令和敘述。第68頁1. 原始碼(source code)。2. 軟體是一種電腦執行的應用程式或作業系統。3. 應用程式是一種處理指定工作的電腦程式。4. 視窗應用程式(windows applications)是使用圖形介面(Graphic User Interface,GUI),一種更人性化使用者介面的應用程式。5. 使用者是在終端機(terminals)執行應用程式,其使用介面都是文字模式的鍵盤輸入,或單純文字內容輸出的結果。第69頁1. 第一代程式語言機器語言(由二進碼組成)。2. 第二代程式語言組合語言(利用組合語言所寫成的程式段必須經由組譯程式的處理財可以在機器上執行。機器語言合組合語言屬於低階語言。3. 第三代程式語言高階語言(又稱為程序導向語言,利用此類語言寫成的程式碼必須經過編譯程式或直譯程式處理方可執行)。4. 第四代程式語言極高階語言(此類語言又稱為問題導向語言)。5. 第五代程式語言自然語言(此類語言又稱為知識庫語言,語法時分接近人類日常生活所用語言,如英文)。第70頁1. 第四代程式語言是特定應用程式專屬的程式語言,例如:資料庫查詢的SQL語言。2. 第五代式語言主要是使用在人工智慧和專家系統的邏輯分析,也稱為自然語言(natural languages)。3. 低階語言是一種偏向電腦容易了解的程式語言。4. 機器語言程式使用0和1二進位表式的程式碼。5. 組合語言組呵語言使用簡單符號的指令集代表機器語言0和1表式的二進位程式碼,只需要使用組譯程式。第71頁1. 高階語言處理主要的作用即是將高階語言寫成的程式段翻譯成機器可接受的碼,主要分成編譯器及直譯器兩類。2. 編譯器(compilers)3. 編譯器會對原始碼中的每一敘述,按照先後順序均做一次之處理,並產生對應的目的碼。4. 功能有兩項1.檢查程式錯誤。 2.將程式翻譯成機器語言的程式檔案。5. 直譯器(interpreters)6. 直譯器對原始程式碼中的敘述,按照執行的先後順序作處理,並直接產生程式執行結果。7. VBScript和JavaScript都屬於直譯程器所處理之語言。8. 直譯器並不會輸出可執行檔案,而是直接一個指令一個動作,一列一列的執行程式碼。9. 高階語言種接近人類語言的程式語言,或稱為辦英文的程式語言。第72頁1. 軟體開發是根據用戶要求建造出軟體系統或者系統中的軟體部分的過程。2. 需求(requirements)。3. 設計(design)。第73頁1. 分析(analysis)。2. 撰寫程式碼(coding)。第74頁1.驗證(verification)1.證明2.測試3.除錯。第75頁1. 網頁服務(web services)。2. 微軟.NET平台架構就是在網頁服務的原則下,提供網頁服務穩固的基礎開發架構。3. 透過XML的標準化可以有效率的傳遞於不同設備上,提供更多的互動效果與多樣化的網路服務。第76頁1. 圖3.4 .NET 架構圖2. 共同語言執行環境執行時期稱為已管理程式碼;非執行時期的程式碼稱為未管理程式碼。第77頁1. 基礎類別函式庫(Base Class Library)2. .NET的新發展核心就是網頁服務。3. .NET對於使用者非常重要,在於讓電腦更易於使用,具備更強的功能。4. 在結構部分,.NET是屬於第三代的網際網路,而Java是屬於第二代的網際網路。第一代的網際網路只能瀏覽僅提供靜態資訊,人們只能使用瀏覽器來觀看靜態網頁資訊(例如電子佈告欄)。5. 第二代的網際網路著重於與人們互動的應用程式使用者可以建立自訂的購物籃或者自行訂月入口頻道以獲取資訊或執行交易行為。6. 第三代的網際網路則讓網路上的應用程式可與其他應用程式產生互動。第78頁1. 表3-2 .NET和Java之差異比較表。2. .NET式語言獨立的平台。3. .NET以XML與SOAP為基礎的開發環境。第80.81頁(一)Visual Basic 20051. 多種程式語言的整合開發環境Visual Basic 2005、C+或C#語言。2. 強大的方案與專案管理。3. 插入程式碼片斷。4. 提供現成的專案範本。5. 視覺化表單設計介面。6. 智慧程式碼輸入。7. 完整除錯功能。第81頁1. 程式的開發環境是一組工具程式用來建立、編譯和維護程式語言建立的應用程式。第82頁1. Visual Basic 2005語言的開發環境是 Visual Studio 2005。第四章第86頁1. VBE是使用專案來管理 Visual Basic應用程式的開發。第89.90頁(一)專案類型1. Windows應用程式。2. 類別庫。3. 主控台應用程式。4. 我的電影收藏入門套件。5. 螢幕保護裝置入門套件。第92頁1. VBE在同一個方案(solution)能夠擁有多個專案(project)。第94頁1.一、起始頁第95頁1.二、功能列表(menu bar)2.表4-1 VBE功能表列的選單與說明。第96頁1. 三、主工具列(main toolbar)2. 四、工具箱視窗第97頁1. 如果希望工具箱視窗固定顯示,請按式窗標題列上的小圖釘,表示釘住工具箱來固定顯示工具箱,反之就可能恢復成自動隱藏。第98頁1.五、方案總管事窗第99頁1.六、屬性視窗第100頁1.七、表單設計或程式碼編輯視窗第101頁1. 新增專案2. 建立表單介面3. 設定控制像屬性4. 撰寫程式碼主程式Main()程序5. 編譯與執行第102頁1. 主控台應用程式是早期BASICA、GWBASIC和QuickBasic在MS-DOS作業系統以文字模式執行的應用程式。2. Windows作業系統是在命令提示字元視窗執行的應用程式。第105頁1. Module1.vb*,在檔名後的*號表示檔案有更改但尚未儲存。2. 語法有錯誤,在程式碼下方會顯示藍色鋸齒線表示。第108頁1. 事件驅動程式設計:依觸發的事件來執行適當的處理。第117頁1. Visual Basic應用程式的程式碼是儲存在附檔名.vb的檔案,主要可以分為兩種:模組和類別檔。2. Visual Basic的主控台應用程式是一個擁有主程式Main( )程序的模組:Windows應用程式的表單則是一個Form類別的宣告。3. 一、模組(Module)4. Visual Basic大部分主控台應用程式的程式碼都是位於模組內。5. 預設的檔案名稱為Mosdule.vb。第118頁1.二、類別(Class)2.類別是物件的藍圖(blueprint)或原型(prototype),裡面定義著物件的變數與方法,它是物件導向程式設計的觀念,此處同學可以將類別視為是Windows應用程式標準程式架構。第119頁1. 一列程式敘述是一個運算式、變數和關鍵字組成的程式碼。2. 一、程式敘述(statements)。第120頁1.二、程式區塊(blocks)2.End程式敘述結束程式第121頁1. 程式註解(comments)2. Visual asic程式註解是以REM指令或”符號開始的列。3. 五、過長的程式碼4. 此時在第1列程式碼最後需要加上”_”符號。第五章第126頁1. 主控台應用程式和Windows應用程式最明顯的差異,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论