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