Transcript 投影片 1
第4章 電腦軟體 4-1 系統軟體 4-6 排序演算法介紹 4-2 常見作業系統簡介 4-7 程式語言簡介 4-3 應用軟體 4-4 快速學習Linux 4-5 演算法與程式語言 1 4-1 系統軟體 翻譯程式(1) 不同的程式語言必須配置有不同的翻譯程式,也 就是寫好一個原始程式(Source Program),並 儲存檔案後,就交由翻譯程式處理。如下圖所示: 2 翻譯程式(2) 編譯器(Compiler) 是將原始程式區分為數個階段轉換為機器可讀的 可執行檔的目的程式,不過編譯器必須先把原始程 式讀入主記憶體後才可以開始編譯。 當原始程式每修改一次,就必須重新經過編譯器 的編譯過程,才能保持其執行檔為最新的狀況。 經過編譯後所產生的執行檔,在執行中不須要再 翻譯,因此執行效率遠高於直譯程式。 針對程式開發者所使用的程式語言(C++、Java、 C 等)的不同,就必須選擇其相對的編譯器。 3 翻譯程式(3) 直譯器(Intepreter) 在程式執行時,不需要產生目的檔或機器語言, 會先檢查所要執行那一行敘述的語法,如果沒有錯 誤,便直接執行該行程式,如果碰到錯誤就會立刻 中斷,直到錯誤修正之後才能繼續執行。例如 LISP、JavaScript、PROLOG。 4 連結與載入程式 載入程式是將目的程式載入到主記憶體中,並進 行如配置、連結等準備工作。連結程式(Linker) 是載入程式的一種,因為載入電腦的目的碼有時 候可能必須結合其它不同的目的碼才能執行指定 的工作,這些情況就必須透過連結程式將所需資 源連結起來,然後再一起載入到主記憶體內執行。 連結的目的在於解決外部參考的問題,可由連結 程式完成或直接加入載入程式中。當程式變成可 執行檔後,它就是一個獨立的個體,因為連結器 已經將所有需要的函數庫及目的檔連結在一起。 5 巨集處理器 巨集在程式編譯之前會用前置處理程式 (preprocessor)先將巨集展開成沒有巨集前的 樣子後再編譯,當巨集指令撰寫完畢後,一旦我 們要使用它時,只要在主程式中寫上巨集的名稱 即可,而不需要使用呼叫指令來搭配。 6 組譯器 是將組合語言所寫的程式翻成機器碼。 此外它還必須提供給連結器及載入器所需要的資 訊與找到每個變數的地址,至於翻譯出來的機器 碼,則稱為目的程式(Object Program)。 不同的CPU 也會有不同的組譯器,常用的組譯 器有ASM、MASM、TASM,其中以微軟推出的 巨集組譯器(Macro Assembler)MASM 最受歡 迎。 7 作業系統(1) 主要功能分別說明如下: 8 作業系統(2) 人性化操作環境 在早期的使用者操作介面中,幾乎都是以文字型 態為主,稱為「命令列操作介面」( Commandline interface),此種方式因為不必做圖形運算, 較節省電腦資源。不過對於使用者來說,除了視覺 感受較為單調外,就是必須記憶大量操作指令。 另外一種則是目前最為普遍的「視窗模式操作介 面」 (Graphical userinterface),使用者可選擇 透過滑鼠或鍵盤來操作電腦,此種模式的優點是親 和性較高,不論在視覺、學習與使用上,都能有最 方便舒適的操作環境。 9 作業系統(3) 管理系統資源 10 作業系統(4) 應用軟體執行環境 11 作業系統(5) 網路與系統安全 12 4-2 常見作業系統簡介 MS-DOS MS-DOS 是由美國微軟(Microsoft)公司為了配 合 IBM 當時極力推出的 16 位元個人電腦而設計發 展出來的,由於DOS 是採取命令列介面的方式操 作:是由三個系統檔案(COMMAND.COM、 IO.SYS、MSDOS.SYS)與一些公用程式組合而 成。 13 Windows 3.x Windows 3.X 及其之前版本的作業系統,並不能 夠真正算是一個新的作業系統,因此它只能算是 一種作業環境,因為它的執行核心還是架構在 MS-DOS 作業系統之上,只不過是採用圖形化使 用者介面的方式,來簡化系統的操作程序而已。 14 Windows 95/98/CE/ME/XP/Vista/Windows 7(1) Windows 98 可以說是Windows 95 的新版本, 主要的差別是加強了Web 與Windows 的結合, 並且讓Internet Explorer 4.01 瀏覽器正式與作業 系統結合。 還有支援更多新的硬體裝置與「電源管理」功用, 減少開機關機的時間,且增加娛樂性的新功能等。 至於隨後推出的Windows CE/ME,則進一步讓 家用電腦搖身一變成為家中的多媒體娛樂與設計 中心。 15 Windows 95/98/CE/ME/XP/Vista/Windows 7(2) Windows XP 則是以Windows 2000 為基礎,具 有32 位元的運算架構以及完整保護的記憶體模型, 並提供更多的硬體裝置驅動程式與完整帳號管理 的功能。 直到2007 年初,再度推出了Vista 作業系統,強 調炫麗的多煤體效果與更嚴謹的安全性改良,並 增強了桌面搜尋與組織功能,可協助您在 Windows Vista 的任何位置找到電腦中的任何檔 案或電子郵件。 16 Windows 95/98/CE/ME/XP/Vista/Windows 7(3) 於2009 年10 月又再度推出了Windows 7,其中 納入多點觸控技術的系統, 如果將Windows 7 裝在有觸控式螢幕的電腦上, 操作者就可以使用手指在觸控式螢幕上移動,輕 鬆地瀏覽線上電子書或相簿或移動檔案和資料夾。 17 Windows NT/2000/Server 2003/Server 2008(1) 1993 年推出第一款的Windows NT 3.1 版本,不 過似乎在執行效能上並不出色,直到 Windows NT 4.0 推出,不論在穩定性、安全性及執行效率 上,都遠遠超越了Windows95/98,是一套真正的 32 位元多人多工作業系統。 Windows 2000 可視為新一代的Windows NT 型 作業系統,具有網域管理、單機作業、負載平衡 功能、系統安全性高並支援多重平台所設計的作 業系統,因此常被用在網路的主從式架構及單機 作業系統。 18 Windows NT/2000/Server 2003/Server 2008(2) Windows Server 2003 是針對企業伺服器的強大 需求,而對Windows 2000伺服器加以改良,使用 較少資源處理更多工作,並加強安全性、可靠性、 安全性和可調整性等。 Windows Server 2008 是微軟最新的伺服器作業 系統,它繼承了Windows Server2003。Windows Server 2008 支持64bit 及32bit 的處理器,也是該 公司最後一個支持32bit 的伺服器作業系統。全新 的 Windows Server 2008 針對企業加入了許多強 大的功能,包含功能強大的 IIS 7.0、全新的終端 機服務及網路存取保護等。 19 Mac OS Mac OS 是蘋果電腦(Apple Computer)的麥金 塔(Macintosh)採用的作業系統,也是最早使用 「圖形化使用者介面」(Graphic User Interface, GUI)的作業系統,不但使用上相當方便,而且 穩定性極高。 版本Mac OS X Tiger ,擁有光鮮亮麗的外觀提 供使用者充份的視覺享受。並且建立在一個穩定 的基礎上,提供全新桌面搜尋技術,還擁有號稱 世上最快的 Mac 專用網頁瀏覽器- Safari,及具 備 Spotlight 搜尋技術來立即準確地找出與寄送電 子郵件。 20 Unix/Linux UNIX 發展初期是使用文字介面操作,對一般使 用者的入門障礙很高,但自1984 年X Window 的 出現,UNIX 的親合性開始提高,後來發展出所 謂「Unix-Like」家族,都是由UNIX 演變而來。 Linux 只是作業系統的核心(Kernel),主要功 能包括行程(process)、記憶體管理、硬體協調 與網路控管等等。由於Linux 是完全採用「開放 原始碼」(Open Source Code),不但完全免費, 而且可以允許任意修改及拷貝,因此衍生出各種 不同「整合套件」(Distribution),例如 Fedora、 Red Hat、Slackware、BluePoint、Mandrake 等。 21 嵌入式系統 Windows CE:Windows CE 則是Microsoft 為 可攜式裝置設計的嵌入式作業系統,還可以執行 精簡版的Word、Excel 等軟體。 Pocket PS OS:Pocket PS OS 是Microsoft 專 為小型手持式電腦設計的專用作業系統,這類設 備的目標市場是商務型客戶,而非一般消費者。 Palm OS:Palm OS 是手持設備中相當受歡迎的 一種作業系統,無論在挑選相關軟硬體時,使用 者可選擇的空間就非常大了。 22 4-3 應用軟體 文書處理軟體與試算表軟體 要製作或閱讀各類文件(如表格、書面資料、文 章、卡片等)都用得到文書處理軟體,也是電腦族 日常生活中最經常使用的應用軟體,例如微軟的 Word 2007。 而試算表軟體則是一套用來統計資料、排序與製 作相關圖表的軟體,您可以利用它來算帳、製作資 產負債表、損益表與學校成績統計工作,例如微軟 的Excel2007。 續下頁 23 24 簡報製作軟體與資料庫軟體 如果想要製作一份高質素的專業簡報,有了簡報 製作軟體,不但設計與製作可以自行包辦,還增 加了許多相當實用的互動多媒體功能,直接在 Internet 上呈現。例如微軟的PowerPoint 2007 就 是簡報製作專家。 目前市面上最知名的資料庫軟體是微軟的Access, 屬於一種關聯式資料庫管理系統(Relational Database Management System, RDMS),可以 提供使用者許多現成的範本資料來自行製作資料 庫管理系統。 續下頁 25 26 點矩陣繪圖軟體與向量繪圖軟體 Adobe 出品的2D 點矩陣影像處理軟體- Photoshop 可將各種影像分層重疊,並且圖層間 可做出各種的變化、格式轉換、影像掃描等,適 合各種影像特效合成。 CorelDraw 則是以向量繪圖為主,不但具有圖層 編輯、立體式修飾斜邊、多樣色彩樣式等功能, 新版的CorelDraw X3 還多了Office 影像格式輸出、 動態輔助線、智慧型繪圖工具等新增功能。 續下頁 27 28 影像處理軟體與3D 動畫製作軟體 由友立資訊所研發的PhotoImpact 影像處理軟體, 內附許多套裝的修飾效果,可供使用者選擇,可 以快速達到影像處理的需求,非常方便。另外還 附帶了安裝Album 與GIF Animator,Album 的功 能是在於影像的管理;而GIF Animator 則是製作 動畫影像的軟體。 而3D MAX 是目前最受歡迎的3D 繪圖及動畫設 計的工具之一,與大部分的3D 軟體一樣,3D studio MAX 提供了模型製作、燈光特效、材質設 定、著色輸出、分子系統等功能,使用者可以在 軟體內建構出自己的人物以及場景。 續下頁 29 30 4-4 快速學習Linux Linux 相關功能簡介 多人多工系統:Linux 提供動態優先多工 (preemptive multitasking)處理模式,具有優異 的硬體資源與多工處理能力,可確保程式平順地執 行,並公平的分配使用者與應用程式共享資源。 圖形化整合介面:使用由XFree86 所發展出來的X Window 圖形化使用者介面,由多種視窗管理程式 及搭配桌面環境介面所組合而成。 優秀的網路能力:Linux 內建TCP/IP、FTP、PPP、 SLIP 等通訊協定,對於網路上所要求的功能可以 輕易地達成。 31 升級容易:由於Linux 的核心以及套件的原始碼都 是公開,所以只要能夠遵守GPL 的規定,每個人 都可以參與程式修改與創作。 多CPU 電腦系統:多CPU 電腦系統可分為「平行 式」和「分散式」兩種,而Linux 能充份發揮支援 多CPU 電腦系統的效能。 32 X Windows 簡介(1) 視窗環境:雖然X Window 提供了所有Unix 系統 一個圖形化指令的作業環境,但它僅僅是規範出 視窗與作業系統間的溝通方式,並未定義出任何 與使用者間的互動方法。 因此在Unix 與Linux 上,便產生了多種不同的 「視窗管理程式」與「桌面作業環境」,來針對 各種不同使用者的需求,達成使用者與X Window 之間互相溝通的工作。 33 X Windows 簡介(2) 桌面作業環境:目前在Linux 作業系統中,最常 見到的桌面作業環境有以下兩種。 第一種GNOME 為Fedora Core Linux 所預設的桌 面環境,這個桌面在配置上與微軟的Windows 作 業系統有部分雷同的地方,例如桌面圖示、捷徑圖 示、工作列、開始程式選單等。 第二種則為KDE 桌面,不同於GNOME 桌面,有 專屬的視窗管理程式、檔案管理員與網路工具程式 等等,因此在外觀上相當迷人。由於不同的桌面環 境都有其風格與特性,完全取決於使用者的操作習 慣性與便利性而定。另外在此版Linux 中, GNOME 與KDE 兩個桌面環境在外觀上已經非常 相似,甚至也可以在GNOME 桌面環境中使用KDE 中的程式或應用軟體。 續下頁 34 35 Linux 常用指令與功能說明 36 4-5 演算法與程式語言 演算法定義 到底什麼是「演算法」呢?在韋氏辭典中定義為: 「在有限步驟內解決數學問題的程序。」如果運用 在計算機領域中,我們可以把演算法定義成:「為 了解決某一個工作或問題,所需要有限數目的機械 性或重覆性指令與計算步驟。」 37 演算法特性 38 演算法表示方式 1.一般文字敘述:中文、英文、數字等。文字敘 述法的特色在使用文字或語言敘述來說明演算步 驟。例如請您輸入一個數值,並判別是奇數或偶 數。 2.虛擬語言(Pseudo-Language):接近高階程 式語言的寫法,經常使用的有SPARKS、 PASCAL-LIKE 等語言。 3. 表格或圖形:如陣列、樹狀圖、矩陣圖等。 4. 流程圖:流程圖( Flow Diagram) 算是一種 通用的表示法,也有的圖型符號。 39 5. 程序語言:目前演算法也能夠直解以可讀性高 的高階語言來表示,例如VisualBasic 語言、C 語 言、C++ 語言、Java 語言。 40 4-6 排序演算法介紹 氣泡排序法(1) 由小到大排序: 第一次掃瞄會先拿第一個元素6 和第二個元素4 作比較,如果 第二個元素小於第一個元素,則作交換的動作。接著拿6 和9 作比較,就這樣一直比較並交換,到第5 次比較完後即可確定 最大值在陣列的最後面。 41 氣泡排序法(2) 第二次掃瞄亦從頭比較起,但因最後一個元素在 第一次掃瞄就已確定是陣列最大值,故只需比較4 次即可把剩餘陣列元素的最大值排到剩餘陣列的 最後面。 42 由此可知5 個元素的氣泡排序法必須執行5-1 次 掃瞄,第一次掃瞄需比較5-1 次,共比較 4+3+2+1=10 次。 43 選擇排序法(1) 以下排序我們仍然利用 6、4、9、8、3 數列的由 小到大排序過程,來說明選擇排序法的演算流程。 首先找到此數列中最小值後與第一個元素交換。 44 選擇排序法(2) 接著從第二個值找起,找到此數列中列中(不包 含第一個)的最小值,再和第二個值交換。 45 接著從第接三個值找起,找到此數列中列中(不 包含第一、二個)的最小值,再和第三個值交換。 46 最後從第接四個值找起,找到此數列中列中(不 包含第一、二、三個)的最小值,再和第四個值 交換,則此排序完成。 47 4-7 程式語言簡介 機械語言 機械語言(Machine Language)是由1 和0 兩種 符號構成,是最早期的程式語言,也是電腦能夠直 接閱讀與執行的基本語言,也就是任何程式或語言 在執行前都必須被轉換為機械語言。例如 「10111001」代表「設定變數A」,而 「00000010」代表「數值2」。當指示電腦將變數 A 設定為數值2 時,語言寫法為: 10111001( 設定變數A) 00000010( 將A 設定為數值2) 48 組合語言 是一種介於高階語言及機械語言間的符號語言, 比起機械語言來說,組合語言要易編寫和學習。 機械語言0 和1 的符號定義為「指令」 (statement)是由運算元和運算碼組合而成,只 可以在特定機型上執行,不同CPU 要使用不同的 組合語言。例如MOV 指令代表設定變數內容、 ADD 指令代表的四則運算的加法、SUB 指令代 表四則運算的減法,可如下所示: MOV A , 2 ( 變數A 的數值內容為2) ADD A , 2 ( 將變數A 加上2 後,將結果再存回變 數A 中,如A=A+2) SUB A , 2 ( 將變數A 減掉2 後,將結果再存回變 數A 中,如A=A-2) 49 高階語言 是相當接近人類使用語言的程式語言,雖然執行 較慢,但語言本身易學易用,因此被廣泛應用在 商業、科學、教學、軍事等相關的軟體開發上。 它的特點是必須經過編譯(Compile)或解譯 (Interprete)的過程,才能轉換成機器語言碼。 所謂編譯,是使用編譯器來將程式碼翻譯為目的 程式(object code) 。 例如:C、C++、VISUAL C++、FORTRAN 等 語言都是使用編譯的方法。至於解譯則是利用解 譯器(Interpreter)來對高階語言的原始程式碼做 逐行解譯,所以執行速度較慢,例如Basic、LISP、 Prolog 等語言皆使用解譯的方法。 50 非程序性語言 也稱為第四代語言,特點是它的敘述和程式與真 正的執行步驟沒有關連。程式設計者只須將自己 打算做什麼表示出來即可,而不須去理解電腦是 如何執行的。資料庫的結構化查詢語言 (Structural Query Language,簡稱SQL)就是 第四代語言的一個頗具代表性的例子。 51 人工智慧語言 稱為第五代語言,或稱為自然語言,其特性宛如 和另一個人對話一般。因為自然語言使用者口音、 使用環境、語言本身的特性(如一詞多義)都會 造成電腦在解讀時產生不同的結果與自然語言辨 識上的困難度。因此自然語言的發展必須搭配人 工智慧(Artificial Intelligence:AI)來進行。 52 常見程式語言簡介(1) C 語言 C 語言稱得上是介於高階語言與低階語言之間的 中階語言(middle-level language),它在組合語 言與高階語言間取得了一個平衡的位置,有高階語 言的結構化語法也有組合語言的高效率表現。 C++ 語言 C++ 並不是一套絕對的物件導向語言。但由於 C++ 以C 語言為基礎平台,因此除了保有全部C 語言的優點外,更與C 語言相容,使得大部份在C 語言上所撰寫的程式碼,C++ 仍然可以繼續使用。 53 常見程式語言簡介(2) Visual Basic 語言 由於Visual Basic 是以BASIC 為基礎所開發出來 的語言環境,因此它包含了BASIC 語言的原有優 點,如直譯式、模組化與結構化、多工處理模式。 Java 語言 Java 程式語言現在正逐漸地取代C/C++ 語言,成 為熱門的開發語言之一。雖然Java 是搭上網際網 路的便車,在短短幾年內風行全球,但是不可否認 它所具備的一些優良特性,也正是各界使用者會重 視它的主要原因,因為它包含了以下的優點,如簡 單性、跨平台、直譯式、分散式與多執行緒 (Multi-thread)等。 54 本章結束 Q&A討論時間 55