《計算機 基礎》-第7章 計算機技術基礎_第1頁
《計算機 基礎》-第7章 計算機技術基礎_第2頁
《計算機 基礎》-第7章 計算機技術基礎_第3頁
《計算機 基礎》-第7章 計算機技術基礎_第4頁
《計算機 基礎》-第7章 計算機技術基礎_第5頁
已閱讀5頁,還剩97頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

7.1數據庫技術基礎隨著計算機技術的發展,人類社會己進入了信息化時代。信息資源己成為最重要和最寶貴的資源之一,建立一個行之有效的信息系統是企業組織生存和發展的重要條件。作為信息系統核心技術和重要基礎的數據庫技術、多媒體技術、程序設計技術也有了飛速發展,并得到了越來越廣泛地應用。本章涉及計算機技術的基本內容,主要介紹數據庫技術、多媒體技術、程序設計技術的原理和概念。從20世紀50年代中期開始,計算機的應用由科學研究部門逐漸擴展到企業、行政部門。至20世紀60年代,數據處理己成為計算機應用的主要領域。20世紀60年代末,數據庫技術作為數據處理中的一門新技術開始發展起來。經過30多年的發展,數據庫技術己經成為計算機技術的重要分支,是數據管理的實用技術。下一頁返回7.1數據庫技術基礎7.1.1數據庫的基本概念

1.數據、信息和數據處理

(1)數據(Data)。不僅包括狹義的數值數據,而且包括文字、聲音、圖形等一切能被計算機接收并處理的符號。即包括數值數據和非數值數據。

(2)信息(Information)。信息是經過加工的數據,是現實世界事物的存在方式或運動狀態的反映。具有可感知、可存儲、可加工、可傳遞和可再生等自然屬性,信息又是社會上各行各業不可缺少的資源,這也是信息的社會屬性。

(3)信息與數據的關系。數據是信息的符號表示,或稱載體;信息是數據的內涵,是數據的語義解釋。總之,二者之間的關系可以表示為:信息=數據+處理。下一頁返回上一頁7.1數據庫技術基礎(4)數據處理。人們將原始信息表示成數據,稱為源數據,然后對這些源數據進行匯集、存儲、綜合、推導,從這些原始的、雜亂的、難以理解的數據中抽取或推導出新的數據,這些新的數據稱為結果數據(信息),結果數據對某些特定的人們來說是有價值的、有意義的。這些結果數據,可以作為某種決策的依據或用于新的推導。這一過程通常稱為數據處理,其處理過程如圖7-1所示。信息是有價值的,信息的價值與它的準確性、及時性、完整性和可靠性有關。因為信息的價值必須通過使用信息的決策者的行為結果來體現。所以,為了提高信息的價值,就要用科學的方法來管理信息,這種科學的方法就是數據庫技術。下一頁返回上一頁7.1數據庫技術基礎2.數據庫、數據庫管理系統和數據庫系統

(l)數據庫。數據庫(Database,DB)是長期存儲在計算機系統內的一個通用化的、綜合性的、有結構的、可共享的數據集合,數據庫中的數據按一定的數據模型組織、描述和存儲,具有較小的冗余度,較高的數據獨立性和易擴展性,并為各種用戶所共享。數據庫的創建、運行和維護是在數據庫管理系統控制下實現的,并可為各種用戶共享。

(2)數據庫管理系統。數據庫管理系統(DatabaseManagementSystem,DBMS)是位于用戶與操作系統(OS)之間的一層數據管理軟件,如圖7-2。數據庫在建立、運行和維護時由數據庫管理系統統一管理、統一控制。數據庫管理系統使用戶方便地定義數據和操縱數據,并能保證數據的安全性、完整性,保證多用戶對數據的并發使用及發生故障時的系統恢復。下一頁返回上一頁7.1數據庫技術基礎(3)數據庫系統。數據庫系統(DatabaseSystem,DBS)是實現有組織地、動態地存儲大量關聯數據,方便多用戶訪問的計算機硬件、軟件和數據資源組成的系統,即它是采用數據庫技術的計算機系統。

DBS由數據庫、數據庫管理系統及其開發工具、數據庫管理員、計算機硬件和軟件、應用系統、應用程序用戶和終端用戶等組成,如圖7-3。3.數據管理技術的發展數據庫技術是應數據管理任務的需求而產生的。數據管理技術是數據處理的中心問題,它經歷了人工管理、文件系統和數據庫系統3個階段。

(1)人工管理階段(20世紀50年代中期以前)

計算機主要用于科學計算,其他工作還沒有展開。下一頁返回上一頁7.1數據庫技術基礎外部存儲器只有磁帶、卡片和紙帶等,還沒有磁盤等字節存取存儲設備。軟件只有匯編語言,尚無數據管理方面的軟件。數據處理的方式基本上是批處理。在這個階段,應用程序和數據之間的關系如圖7-4所示。在人工管理階段,數據處理具有以下幾個特點。①數據量較少。數據和程序一一對應,即一組數據對應一個程序,數據面向應用,獨立性很差。由于應用程序所處理的數據之間可能會有一定的關系,所以程序和程序之間就會有大量的重復數據。②數據不保存。因為在該階段計算機主要用于科學計算,一般不需要將數據長期保存,只在計算一個題目時,將數據輸入計算機,計算完畢得到結果即可。下一頁返回上一頁7.1數據庫技術基礎③沒有軟件系統對數據進行管理。程序員不僅要規定數據的邏輯結構,而且在程序中還要設計物理結構,包括存儲結構的存取方法、輸入/輸出方式等。也就是說,數據對程序不具有獨立性。一旦數據在存儲器上改變物理地址,就需要相應地改變用戶程序。人工處理數據有兩個缺點:①應用程序之間的依賴性太強,不獨立;②數據組和數據組之間可能有許多重復數據,造成數據冗余。(2)文件系統階段(20世紀50年代后期至60年代中期)

計算機不僅用于科學計算,還用于信息管理。隨著數據量的增加,數據的存儲、檢索和維護問題成為緊迫的需要,數據結構和數據管理技術迅速發展起來。下一頁返回上一頁7.1數據庫技術基礎此時,外部存儲器己有磁盤、磁鼓等直接存取存儲設備,軟件領域出現了高級語言和操作系統。操作系統中的文件系統是專門管理外存的數據管理軟件。數據處理的方式有批處理,也有聯機實時處理。文件系統階段,應用程序和文件之間的關系如圖7-5。該階段,數據管理具有以下幾個特點。①數據可以長期保留,數據的邏輯結構和物理結構有了區別,程序可以按名訪問,不必關心數據的物理位置,由文件系統提供存取方法。②數據不屬于某個特定的應用程序,即應用程序和數據之間不再是直接的對應關系,可以重復使用。但是文件系統只是簡單地存取數據,相互之間并沒有有機的聯系,即數據存取依賴于應用程序的使用方法,不同的應用程序仍然很難共享同一數據文件。下一頁返回上一頁7.1數據庫技術基礎③文件組織形式的多樣化,有索引文件、鏈接文件和Hash文件等。但文件之間沒有聯系,相互獨立,數據間的聯系要通過程序去構造。文件系統具有的幾個缺點介紹如下。①數據冗余度大。文件與應用程序密切相關。相同的數據集合在不同的應用程序中使用時,經常需要重復定義、重復存儲。②數據不一致性。由于相同數據的重復存儲,單獨管理,給數據的修改和維護帶來難度,容易造成數據的不一致。③數據聯系弱。文件系統中數據組織成記錄,記錄由字段組成,記錄內部有了一定的結構。但是文件之間是孤立的,從整體上看沒有反映現實世界事物之間的內在聯系,因此很難對數據進行合理的組織以適應不同應用的需要。下一頁返回上一頁7.1數據庫技術基礎(3)數據庫系統階段(20世紀60年代末)。20世紀60年代末,在硬件方面,開始出現了具有數百兆字節容量、價格低廉的磁盤;在軟件方面,操作系統己開始成熟,程序設計語言的功能更加強大,操作和使用更加方便。這些硬件與軟件技術為數據庫技術的發展提供了良好的基礎。從現實需求來看,數據量急劇增加,對數據的管理和分析需求力度加大,人們對數據管理技術提出了更高的要求,希望面向企業或部門以數據為中心組織數據,減少數據的冗余,提供更高的數據共享能力。同時要求程序和數據具有較高的獨立性,當數據的邏輯結構改變時,不至于影響數據的物理結構,也不影響應用程序,以降低應用程序的開發與維護費用。數據庫技術正是在這樣一個環境下發展起來的。下一頁返回上一頁7.1數據庫技術基礎標志數據管理技術進入數據庫階段的3件大事:①1968年美國IBM公司推出層次模型的IMS系統;②1969年美國CODASYL組織發布了DBTG報告,總結了當時各式各樣的數據庫,提出網狀模型;③1970年美國IBM公司的E.F.Codd連續發表論文,提出關系模型,奠定了關系數據庫的理論基礎。數據庫管理系統克服了傳統的文件管理方式的缺陷,提高了數據的一致性、完整性,減少了數據冗余。數據庫系統階段應用程序與數據庫的關系如圖7-6所示。在這種管理方式下,許多應用程序可以在數據庫管理系統的控制下共享數據庫中的數據。下一頁返回上一頁7.1數據庫技術基礎數據庫系統階段的幾個特點介紹如下。①采用復雜的數據模型表示數據結構。數據模型不僅描述數據本身的特點,還描述數據之間的聯系。數據不再面向某個應用,而是面向整個應用系統。②數據共享性高、冗余度小、易擴充。所要管理的數據不再面向特定的某個或某些應用,而是面向整個應用系統,因此大大降低了數據冗余度,實現了數據共享。③有較高的數據獨立性。數據庫也是以文件方式存儲數據的,但是它是數據的一種更高級的組織形式,在應用程序和數據庫之間由數據庫管理系統(DBMS)負責數據的存取。DBMS對數據的處理方式和文件系統不同,它把所有應用程序中使用的數據及數據間的聯系匯集在一起,以便于應用程序查詢和使用。下一頁返回上一頁7.1數據庫技術基礎7.1.2數據模型

1.數據模型的概念。描述實體的數據也是相互聯系的。通常,這種聯系表現在兩個方面:一個方面是反映實體內部的聯系,反映在數據上便是記錄內部各數據項之間的聯系;另一方面是反映實體之間的聯系,反映在數據上則是記錄之間的聯系,這種聯系在數據模型中給予描述。數據庫系統的一個核心問題,就是研究如何表示和處理實體及實體之間的聯系。通常把表示實體及其實體之間聯系的數據庫的數據結構稱為數據模型;換句話說,數據庫系統中所包含的所有記錄類型,按照它們之間的聯系組合在一起,構成一個整體。這個整體的結構就稱之為數據庫的數據模型,它是數據庫中數據全局邏輯結構的描述。下一頁返回上一頁7.1數據庫技術基礎數據模型是數據庫中一個關鍵的概念,它是實體間聯系的一個輪廓視圖。數據模型的好壞,直接影響數據庫的性能。數據模型的選擇,是設計數據庫的一項首要任務。

2.數據模型的組成要素數據模型應包含數據結構、數據操作和數據完整性約束3個部分。

(1)數據結構。數據結構規定了如何把基本的數據項組織成較大的數據單位,以描述數據的類型、內容、性質和數據之間的相互關系。它是數據模型最基本的組成部分,規定了數據模型的靜態特性。在數據庫系統中通常按照數據結構的類型來命名數據模型,例如,采用層次型數據結構、網狀型數據結構、關系型數據結構的數據模型分別稱為層次模型、網狀模型和關系模型。下一頁返回上一頁7.1數據庫技術基礎(2)數據操作。數據操作是指一組用于指定數據結構的任何有效的操作或推導規則。數據庫中主要的操作有查詢和更新(插入、刪除、修改)兩大類。數據模型要給出這些操作確切的含義、操作規則和實現操作的語言。因此,數據操作規定了數據模型的動態特性。

(3)數據的約束條件。數據的約束條件是一組完整性規則的集合。完整性規則是給定的數據模型中數據及其聯系所具有的制約和依賴規則,用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效和相容。數據模型應該反映和規定本數據模型必須遵守的基本的、通用的完整性約束條件。例如,在關系模型中,任何關系必須滿足實體完整性和參照完整性兩個條件。下一頁返回上一頁7.1數據庫技術基礎此外,數據模型還應該提供定義完整性約束條件的機制,以反映具體應用所涉及的數據必須遵守的特定的語義約束條件。例如,某學校學生數據庫中規定:學生入學年齡不得超過25歲,入學分數不得低于400分等。

3.數據模型的分類目前,數據庫領域中最常用的數據模型有4種,分別是層次模型、網狀模型、關系模型、面向對象模型。層次模型和網狀模型統稱為非關系模型。非關系模型的數據庫系統在20世紀70年代至80年代初非常流行,在當時的數據庫系統產品上占據了主導地位。關系模型的數據庫系統在70年代開始出現,目發展迅速,并己逐漸取代了非關系模型數據庫系統的統治地位,現在流行的數據庫系統大都是基于關系模型。下一頁返回上一頁7.1數據庫技術基礎(l)層次模型。層次模型(HierarchicalModel)采用樹形結構表示實體與實體間的聯系。在樹中,把無雙親的記錄稱為根記錄(根結點)。除根記錄外,任何記錄只有一個父記錄(父結點)。一個父記錄可以有多個子記錄(子結點)。從根記錄開始,一直到最下層的記錄為止,所具有的層次稱為該數據模型的層。如圖7-7所示,就是一個層次模型的例子。在層次模型中,數據是按層次路徑存取的。目前流行的大型數據庫系統中,有許多采用的是層次模型。其中最著名的是IBM公司研制的IMS系統。

(2)網狀模型。采用網絡結構表示實體與實體間聯系的數據模型稱為網狀模型(NetworkModel)。網狀數據模型基本特征表現在一個父結點可以有多個子結點,而且一個子結點也可以有多個父結點。如圖7-8所示,網狀數據模型反映了數據間普遍存在的更為復雜的聯系,下一頁返回上一頁7.1數據庫技術基礎它是一種比層次數據模型更具普遍性的結構,而層次結構實際上是網狀結構的一個特例。在一些大規模廠商生產的中型以上的計算機系統中都配有網絡模型的數據庫系統。例如Burroughs公司的DMSⅡ系統,HP公司的IMAGE/3000等。

(3)關系模型(RelationalModel)。用表格數據來表示實體與實體間聯系的數據模型。人們常常習慣于用表格的形式,表示所關心的現實世界中的信息。見表7-1,就是一個學生入學情況表。從這個表中,學生的入學主要信息一目了然。通常將這樣一張表,稱為一個關系。表中的每一列為關系中的一個屬性(字段),表中的每一行為關系中的一個元組(記錄)。關于關系的嚴格定義,在后文將詳細討論。實際上一個關系就相當于一個二維表格,而這個關系的全體元組,就是這個表格的所有記錄。

下一頁返回上一頁7.1數據庫技術基礎

(4)面向對象模型。20世紀80年代以來,出現了大量的新一代數據庫應用。由于層次、網狀和關系數據庫系統的設計日標源于商業事務處理,它們面對層出不窮的新一代數據庫應用顯得力不從心。人們一直在研究支持新一代數據庫應用的數據庫技術和方法,試圖研制和開發新一代數據庫管理系統。面向對象程序設計方法在計算機的各個領域,包括程序設計語言、人工智能、軟件工程、信息系統設計以及計算機硬件設計等都產生了深遠的影響。人們發現,把面向對象程序設計方法和數據庫技術相結合能夠有效地支持新一代數據庫應用。于是,面向對象數據庫系統研究領域應運而生。面向對象模型(Object-OrientedDataModel)能完整地描述現實世界的數據結構,具有豐富的表達能力,但模型相對比較復雜,涉及的知識比較多,因此面向對象數據庫尚未達到關系數據庫的普及程度。下一頁返回上一頁7.1數據庫技術基礎

7.1.3關系數據庫概述

1.關系基本術語及特點

(1)關系基本術語①關系:一個關系對應通常說的一張一維表,見表7-1。②屬性:表中的一列即為一個屬性,又稱為字段;給每一個屬性起的一個名稱,即為屬性名,又稱字段名。如表7-1有6列,對應6個屬性名(學號、姓名、性別、年齡、入學日期和入學成績)。③關系模式:對關系的描述。格式為:關系名(屬性名1,屬性名2,……屬性名n)④元組:表中第一行開始的每一行稱為一個元組,即通常所說的記錄,如表7-1中的一行(0212,張超,男,18,2008-8-22,420)。下一頁返回上一頁7.1數據庫技術基礎⑤候選關鍵字:表中的某個屬性或屬性組,它可以唯一確定一個元組,也就可以成為該關系的候選關鍵字。如表7-1中的學號,可以唯一確定一個學生。⑥主關鍵字:表中可能有多個候選關鍵字,在應用中需要選用其中一個,被選擇出的關鍵字稱為主關鍵字,簡稱主鍵。⑦域:屬性的取值范圍,如人的年齡一般在0-100歲之間,人的年齡屬性的域是(0-100),性別的域是(男,女)。⑧分量:元組中的一個屬性值。

(2)關系的特點。關系數據模型簡單明了,使用廣泛。它主要有以下特點:①關系與關系之間通過關鍵字聯系;②一個關系中行的次序可以任意交換;下一頁返回上一頁7.1數據庫技術基礎③一個關系中任意兩行不能完全相同;④一個關系中列的次序也可以任意交換;⑤一個關系中不允許出現相同的兩個字段名;⑥一個關系中同一列的數據項必須是類型相同的數據;⑦一個關系中每一行或每一列的數據項都是不可拆分的基本數據項。

2.關系數據庫的基本概念用關系模型來描述數據之間的聯系,所建立的數據庫就是關系數據庫。在關系數據庫中,實體以及實體間的聯系都是用關系來表示的。在一個給定的應用領域中,所有實體以及實體間的聯系所形成關系的集合,就構成了一個關系數據庫。下一頁返回上一頁7.1數據庫技術基礎在現代的關系型數據庫管理系統中,一個關系數據庫就是由若干關系(一維表)形成的集合。此外,還加入了視圖、查詢、存儲過程、觸發器、約束、規則等方便數據庫的使用,增強數據庫能力的描述及代碼,使得數據庫不僅僅是一組相關數據的集合,而且是以數據為核心、輔之以其他功能的一個整體。

3.關系運算對于關系模型,其運算有3種,即選擇、投影和連接。

(1)選擇運算。選擇是從一個關系(表)中找出滿足一定條件的所有元組(記錄),組成新的關系(表)。所形成的新的關系,是原有關系的一個子集。也就是說,選擇是對于記錄的篩選,即在表格中篩選出若干行。例如,在表7-1中,按條件“年齡為10”進行選擇,得到表7-2。下一頁返回上一頁7.1數據庫技術基礎(2)投影運算。投影是從一個關系(表)中選擇所需要的若干屬性(字段),構成一個新的關系(表)。所形成的關系,同樣是原有關系的一個子集。與選擇操作不同之處在于,投影是對于原有表中字段的篩選,即在表中篩選出若干列。如,在表7-1中,選擇“學號”和“姓名”這兩個屬性進行投影,得到表7-3。(3)連接運算。連接是從兩個關系中按一定的條件分別選取其中的若干屬性(字段),形少戊新的關系。生成的新關系中行的選取,取決于規定的條件。例如,若在學生管理系統中有一張學生團員情況表,見表7-4。如果需要知道表7-1中學生的姓名、入學日期和是否為團員,可以按照“姓名相同”這個條件,對表7-1和表7-4進行連接操作,選取兩個表中符合條件的記錄中的所需字段,得到表7-5,它就是連接操作生成的新的關系。下一頁返回上一頁7.1數據庫技術基礎

7.1.4常用的數據庫軟件下面介紹目前常用的幾種數據庫軟件。

1.Xbase數據庫。Xbase數據庫通常是對Dbase,Foxbase,Clipper之類的數據庫的總稱。這些數據庫由于較早地進入我國,并且易學而被廣泛地應用。如DbaseⅢ,Foxbase,其中Foxbase較Dbase提供了更強的功能。

2.VisualFoxPro數據庫。VisualFoxPro是Microsoft公司在早期的Foxbase+數據庫基礎上融合了可視化概念發展的結果。在這個發展的過程中,版本從Foxbase+到FoxFro1.2以及FoxFro2.0,在這之后,制作FoxPro的Fox公司被Microsoft公司收購,FoxPro數據庫又經歷了從2.0,2.5,2.6,3.0到VisualFoxPro5.0,6.0的變化。下一頁返回上一頁7.1數據庫技術基礎VisualFoxPro不僅是可視化DBMS,也是強大的面向對象的應用程序編程工具。無論是簡單地組織信息、運行查詢、創建集成數據報表,還是最終用匯編寫功能分配DBMS應用程序,VisualFoxPro都提供了可視化管理數據的強大工具和編輯工具。

3.Access數據庫美國Microsoft公司于1994年推出的微機數據庫管理系統。它具有界面友好、易學易用、開發簡單、接口靈活等特點,是典型的新一代桌面數據庫管理系統。其主要特點介紹如下。(1)完善地管理各種數據庫對象,具有強大的數據組織、用戶管理、安全檢查等功能。下一頁返回上一頁7.1數據庫技術基礎(2)強大的數據處理功能,在一個工作組級別的網絡環境中,使用Access開發的多用戶數據庫管理系統具有傳統的Xbase(Dbase,Foxbase的統稱)數據庫系統所無法實現的功能。

(3)可以方便地生成各種數據對象,利用存儲的數據建立窗體和報表,可視性好。

(4)作為Office套件的一部分,可以與Office集成,實現無縫鏈接。

(5)能夠利用Web檢索和發布數據,實現與Internet的連接。

Access主要適用于中、小型應用系統,或作為客戶機/服務器系統中的客戶端數據庫。下一頁返回上一頁7.1數據庫技術基礎4.Oracle數據庫。美國Oracle公司是一家著名的專門從事研究、生產關系數據庫管理系統的專業廠家,1979年推出的Oracle第一版是世界上首批商用的關系數據庫管理系統之一。之后相繼推出了Oracle的更高版本。Oracle具有的特點具體介紹如下。

(1)它是一個多用戶系統,能自動從批處理或在線環境的系統故障中恢復運行。

(2)系統提供了一個完整的軟件開發工具Developer2000,包括交互式應用程序生成器、報表打印軟件、字處理軟件以及集中式數據字典,用戶可以利用這些工具生成應用程序。

(3)Oracle以二維表的形式表示數據,并提供了SQL(結構式查詢語言),可完成數據查詢、操作、定義和控制等基本數據庫管理功能。下一頁返回上一頁7.1數據庫技術基礎(4)Oracle擁有60多種大、中小型機、工作站及微機的運行版本,其中包括IBM等著名廠家的計算機都配有相應的Oracle產品,并且Oracle可以運行在多種操作系統下,具有很好的可移植性。

Oracle屬于大型數據庫系統,主要適用于大、中小型應用系統,或作為客戶機/服務器系統中服務器端的數據庫系統。

5.SQLServer數據庫。SQLServer是Microsoft公司推出的適用于大型網絡環境的數據庫產品。一經推出,即得到廣泛地應用并迅速占領了NT環境下的數據庫領域,成為數據庫市場上的一個重要產品。Microsoft公司經過對SQLServer的不斷更新,目前己經推出了SQLServer2008最新版本,無論在功能上,還是在安全性、可維護性等方面較以前版本都有了很大的提高。

SQLServer具有的特點介紹如下。下一頁返回上一頁7.1數據庫技術基礎

(1)不依賴于網絡協議,它可以和任何在使用工業標準網絡協議的操作系統下運行的客戶進行交流。

(2)SQLServer包括自動數據復制的特性,允許將任何SQL數據復制到其他SQLServer中或任何適應ODBC的數據庫。

(3)支持分布式事務,支持XML。(4)新的數據類型:Bigint,SQL-variant和Table。(5)支持數據庫和數據倉庫,集成了數據挖掘。

(6)EnglishQuery使用戶更容易得到數據。

SQLServer提供了一個可信的、高效率的智能數據平臺,可以滿足用戶的各種類型的數據需求。適用于中、小型或大型數據庫服務器端。返回上一頁7.2多媒體技術基礎多媒體技術是當代高科技的結品,自20世紀90年代以來得到了迅速發展。目前,多媒體技術獲得了日益廣泛地應用,多媒體技術深刻地影響著人們的生活方式、學習方式和工作方式,學好多媒體技術的基本知識是十分必要的。7.2.1多媒體技術概述

1.媒體與多媒體

(1)媒體。所謂“媒體”,是指信息傳遞和存儲的最基本的技術和手段,即信息的載體。由于信息被人們感覺、表示、存儲和傳輸的載體各有不同,因此,國際電聯(ITU)電信標準部(TSS)的ITU-TL.374建議,將媒體分為5類。下一頁返回7.2多媒體技術基礎1)感覺媒體(PerceptionMedium)。指人們的感覺器官所能感覺到的信息。

2)表示媒體(RepresentationMedium)。是為了加工、處理和傳輸感覺媒體而如人類的各種語言、音樂,自然界的各種聲音、圖形、圖像,計算機系統中的數據、文本等。人為構造出來的一種媒體。表示媒體以語音編碼、圖像編碼和文本編碼等形式來描述。

3)顯示媒體(PresentationMedium)。是感覺媒體與各種電信號間相互轉換用的媒體,即顯示信息或獲取信息的物理設備。常用的顯示媒體有顯示器、揚聲器、打印機等輸出類媒體和鼠標器、掃描儀、數碼相機、等輸入類媒體。

4)存儲媒體(StorageMedium)。是存儲表示媒體的物理設備,如光盤等。

5)傳輸媒體(TransmissionMedium)。是用來將媒體從一處傳送到另一處,即媒體信息傳輸的物理載體,如同軸電纜、光纖、雙絞線等。下一頁返回上一頁7.2多媒體技術基礎

(2)多媒體。將文本、聲音、圖形、圖像、動畫和視頻等多種媒體成分結合在一起,就構成了所謂的多媒體(Multimedia)。多媒體的實質是將自然形式存在的各種媒體數字化,然后利用計算機對這些數字信息進行加工或處理,以一種友好的方式提供給用戶使用。也就是說,人們不僅可以閱讀文本,還可以收聽優美動聽的音樂,欣賞精致如真的圖片,觀看引人入勝的影視動畫等。計算機能處理的多媒體信息從時效性上分為靜態媒體(指文字、圖形、圖像等媒體)和時變媒體(指聲音、動畫、活動影像等媒體)兩大類。

2.多媒體技術及其特點

(1)多媒體技術概念下一頁返回上一頁7.2多媒體技術基礎多媒體技術就是將文本、音頻、圖形、圖像、動畫和視頻等多種媒體信息通過計算機進行數字化采集、編碼、存儲、傳輸、處理和再現等,使多種媒體信息建立邏輯鏈接,并集成一個具有交互性的系統。總之,多媒體技術就是利用計算機綜合處理圖、文、聲、像等信息的技術。

(2)多媒體技術的特點

1)多樣性。多樣性是相對于傳統計算機所能夠處理的簡單數據類型而言的。多媒體技術就是要利用計算機處理文本、音頻、圖形、圖像、動畫和視頻等多媒體信息。

2)集成性。集成性首先是指多媒體技術可將多種不同的媒體信息,如文字、聲音、圖形、圖像等,有機地進行同步組合,從而形成完整的多媒體信息。下一頁返回上一頁7.2多媒體技術基礎同時,集成性的另一層含義是指處理這些媒體信息的設備或工具具有一定的集)汾強調了與多媒體相關的各種硬件和軟件的集成,包括多媒體硬件設備、多媒體操作系統和創作工具等。

3)交互性。多媒體技術的交互性是多媒體技術的關鍵特性。交互性指用戶可以與計算機實現復合媒體處理的雙向性。具有兩層含義:一是指多媒體計算機利用圖形交互界面、窗口技術以及屏幕觸摸等方式,使人們能通過十分友好的人機交互界面來操縱、控制多媒體信息的處理和顯示;一是指多媒體技術為用戶提供了視覺、聽覺和觸覺等多種交互手段。

4)實時性。實時性是指當操作人員給出操作命令時,相應的多媒體信息都能夠得到實時控制。下一頁返回上一頁7.2多媒體技術基礎

7.2.2常見的媒體元素媒體元素是指多媒體應用中可顯示給用戶的媒體形式。目前我們常見的媒體元素主要有文本、圖形、圖像、音頻、動畫和視頻圖像等。

1.文本。文本(Text)是計算機文字處理程序的基礎,也是多媒體應用程序的基礎。通過對文本顯示方式的組織,多媒體應用系統可以使顯示的信息更易于理解。文本文件中,如果只有文本信息,沒有其他任何有關格式的信息,則稱為非格式化文本文件或純文本文件;而帶有各種文本排版信息等格式信息的文本文件,稱格式化文本文件。該文件中帶有段落格式、字體格式、文章的編號、分欄、邊框等格式信息。下一頁返回上一頁7.2多媒體技術基礎2.圖像。圖像(Image)分為靜止圖像和運動圖像。圖像可以從現實世界中捕獲,也可以利用計算機產生數字化圖像。圖像是由單位像素組成的位圖來描述的,每個像素點都用二進制數編碼,不含任何結構信息,因此圖像是不可修改的。圖像比圖形占有更大的存儲空間(大約要大2到3個數量級);另外圖像在顯示前不需要做更多的處理,其原因是它直接以位圖形式顯示。位圖圖像可通過許多方法獲得,如直接用位圖軟件繪制、通過掃描儀掃描獲得、通過數碼相機或數字攝像機拍攝以及通過幀捕捉設備等獲得,獲得的圖像可用圖像處理軟件(如Photoshop)進行編輯處理。除了位圖外,還有許多其他格式的圖像(包括壓縮格式),實際上不同的設備都有自己默認的圖像格式,各種圖像的格式可以轉換。常見的圖像格式有BMP,DIB,TIF,GIF及JPEG等。下一頁返回上一頁7.2多媒體技術基礎3.圖形圖形(Graphic)一般指用計算機繪制的畫面,如直線、圓、圓弧、矩形、任意曲線和圖表等。圖形的格式是一組描述點、線、面等幾何圖形的大小、形狀及其位置、維數的指令集合,例如:line(x1,y1,x2,y2,color),circle(x,y,r,color)等,就分別是畫線、畫圓的指令。在圖形文件中只記錄生成圖的算法和圖上的某些特征點,因此也稱矢量圖。圖形的最大優點在于可以分別控制處理圖中的各個部分,如在屏幕上移動、旋轉、放大、縮小、扭曲而不失真,不同的物體還可在屏幕上重疊并保持各自的特性,必要時仍可分開。因此,圖形主要用于表示線框型的圖畫、工程制圖、美術字等,絕大多數CAD和3D造型軟件使用矢量圖形作為基本圖形存儲格式。下一頁返回上一頁7.2多媒體技術基礎與位圖不同的是,圖形文件保存的不是像素點的“值”,而是一組描述點、線、面等幾何圖形的大小、形狀及其位置、維數及其他屬性的指令集合,通過讀取指令可將其轉換為輸出設備(屏幕)上顯示的圖像。很顯然,圖形文件比圖像文件數據量小得多。但圖形文件數據格式的好壞,直接影響到圖形數據的操作方便與否。圖形文件的常用格式有DXF,PIF,SLD,DRW,GKS及IGS等。

4.視頻與動畫若干有聯系的圖像數據連續播放便形成了視頻。計算機視頻是數字的,視頻圖像可來自錄像帶、攝像機等視頻信號源的影像,這些視頻圖像使多媒體應用系統功能更強、更精彩。計算機動畫是將由計算機生成的一幀一幀的圖形進行連續播放而產生的具有運動感覺的連續畫面。下一頁返回上一頁7.2多媒體技術基礎視頻與動畫(Video/Animation)都是由一系列畫面組成的,它們可以在計算機屏幕上連續顯示,給人的視覺創造一種連續運動的感覺。若是由一系列圖像畫面組成,則為運動圖像,即視頻;若是由一系列圖形組成,則為運動圖形,又稱為動畫。視頻文件的存儲格式有AVI,MPG,MOV等;動畫文件的存儲格式有FLC,SWF,GIF等。在視頻中有幾個重要的技術參數,現介紹如下。

(1)幀速視頻是利用快速變換幀的內容而達到運動的效果。視頻根據錄制格式的不同有30幀/秒CNTSC),25幀/秒(PAL)等。有時為了減少數據量而減慢了幀速,例如只有16幀/秒,也可以達到滿意程度,但效果略差。下一頁返回上一頁7.2多媒體技術基礎

(2)數據量如不計壓縮,數據量應是幀速乘以每幅圖像的數據量。假設一幅圖像為1MB,則每秒將達到30MB(NTSC)。但經過壓縮后可減少幾十倍甚至更多。盡管如此,圖像的數據量仍然很大,以至于計算機顯示等跟不上速度,導致圖像失真。此時就只有在減少數據量上下工夫,除降低幀速外,也可以縮小畫面尺寸,如僅1/4屏或1/16屏,都可以大大降低數據量。

(3)圖像質量。圖像質量除了原始數據質量外,還與視頻數據壓縮的倍數有關。一般說來,壓縮比較小時質量不會有太大影響,而超過一定倍數后,將會明顯看出圖像質量下降。所以數據量與圖像質量是相互矛盾的,應根據實際需求進行合適的調整。下一頁返回上一頁7.2多媒體技術基礎視頻和動畫的一個重要特點是每個視圖都不是獨立的而是相關的,通常每幀是前一幀的變形,而各幀中有許多相同的視圖。因而,在運動視頻的播放中給人的視覺以運動效果。但是當幀速低于10幀/秒時,人的視覺感到有明顯的斷續幀感。而當幀速大于等于15幀/秒時,運動視頻顯得平滑。若幀速在24幀/秒以上,人的視覺有自然連續感。

5.音頻音頻(Audio)有時也泛稱聲音,除語音、音樂外,還包括各種音響效果。數字化后,計算機中保存聲音文件的格式有多種,常用的有兩種:波形音頻文件(WAV)和數字音頻文件(MIDI)。下一頁返回上一頁7.2多媒體技術基礎波形音頻文件是真實聲音數字化后的數據文件;數字音頻文件又稱樂器數字接口,和圖形文件格式相類似,它是以一系列指令來表示聲音的,可看成是聲音的符號表示。通常,聲音用模擬的連續波形表示,波形最高點(或最低點)與基線間的距離為振幅,振幅表示聲音的強度。波形中兩個連續波峰間的距離稱為周期。波形頻率由1秒內出現的周期數決定,若每秒1000個周期,則頻率為1kHz,通過采樣可將聲音的模擬信號數字化,采樣值可重新生成原始波形。將音頻信號集成到多媒體中,可提供其他任何媒體不能取代的效果,不僅烘托氣氛,而且增加活力。音頻信息增強了對其他類型媒體所表達的信息的理解。下一頁返回上一頁7.2多媒體技術基礎

7.2.3多媒體計算機系統多媒體計算機系統是具有多媒體信息處理能力并配備相關軟、硬件的計算機系統,即能對文本、圖形、影像、動畫、視頻、音頻等多媒體信息進行邏輯互聯、獲取、編輯、存儲和播放的一個計算機系統。多媒體計算機系統一般由多媒體硬件系統和多媒體軟件系統兩部分組成。

1.多媒體硬件系統構成構成多媒體硬件系統除了需要較高配置的計算機硬件以外,通常還需要音頻、視頻、光盤驅動器、各種媒體輸入/輸出設備等,如圖7-9。

(1)主機。多媒體計算機主機可以是中、大型機,也可以是工作站,然而目前更普遍的是多媒體個人計算機,即MPC(MultimediaPersonalComputer)。下一頁返回上一頁7.2多媒體技術基礎(2)多媒體接口卡。多媒體接口卡是根據多媒體系統獲取、編輯音頻或視頻的需要插接在計算機上,以解決各種媒體數據的輸入輸出的問題。常用的接口卡有聲卡、顯示卡、視頻壓縮卡、視頻捕捉卡、視頻播放卡、光盤接口卡等。其中,聲卡和視頻卡是多媒體計算機用于采集、處理、回放聲音媒體和視頻媒體信息必不可少的硬件設備。

(3)多媒體外部設備

1)視頻、音頻輸入/輸出設備。負責采集、加工、處理多種格式的音頻、圖像、視頻等素材。需要的硬件有攝像機、錄像機,掃描儀,傳真機、數碼相機、話簡、投影儀、音響等。下一頁返回上一頁7.2多媒體技術基礎2)存儲設備。多媒體信息數據量龐大,將它們長期保存在硬盤中是不現實的,而且多媒體軟件的發行也需要一種高容量、移動方便的存儲介質,那就是光盤。讀取光盤中的信息需要光盤驅動器,在光盤上記錄信息需要光盤刻錄機。

3)人機交互設備。人機交互設備有助于用戶與多媒體系統交互信息,控制多媒體系統的執行等。如鍵盤、鼠標、觸摸屏、繪圖板、光筆及乎寫輸入設備等。

2.多媒體軟件系統構成

(1)多媒體操作系統。多媒體核心系統,其實質就是多媒體操作系統,也包括設備的驅動程序。下一頁返回上一頁7.2多媒體技術基礎除與硬件設備打交道外,還要提供輸入/輸出接口控制(I/O接口程序),實現多媒體環境下多任務調度,保證音頻視頻同步控制及信息處理的實時性,提供多媒體信息的各種基本操作和管理,具有對媒體設備的驅動、控制等功能,它是軟件系統的核心。

(2)多媒體創作工具。多媒體創作工具是幫助開發者制作多媒體應用軟件的軟件統稱,包括針對各種單一媒體開發的創作工具與編輯軟件工具。針對各種單一媒體開發的創作工具很多,比如制作三維文字Cool3D,平面設計Photoshop,CorelDraw,動畫設計Flash,三維建模3DMAX,對聲音文件處理的CoolEdit,WindowsMediaPlayer,視頻處理軟件Premiere等。下一頁返回上一頁7.2多媒體技術基礎實現多媒體創作,是將由創作軟件制作的多種單一媒體資料進行綜合、協調以及賦予交互功能,最終生成面向用戶的多媒體應用軟件,這類軟件被稱為多媒體創作軟件。常見的多媒體創作軟件有PowerPoint,Director,Authorware,Toolbook,Frontpage等。使用多媒體創作軟件,使多媒體軟件的開發過程大大簡化,軟件開發易于操作和掌握,極大地普及了計算機的應用領域。

(3)多媒體應用軟件。多媒體應用軟件是由開發人員利用多媒體創作工具或計算機語言制作而成的多媒體產品,面向最終用戶解決實際問題。目前,多媒體應用系統涉及的應用領域主要有教育、娛樂、商業等。多媒體應用軟件如多媒體課件、多媒體模擬系統、多媒體導游系統等。返回上一頁7.3程序技術基礎7.3.1程序設計概述

1.程序與程序設計語言。程序是為解決某一問題而編寫的語句序列。通俗地說,將解決一個實際問題的具體操作步驟用某種計算機語言描述出來,就形成了程序。計算機語言是計算機能夠識別的語言,利用計算機解決問題,必須用計算機語言告訴計算機“做什么”及“怎么做”,這個過程就是程序設計,因此計算機語言又叫程序設計語言。

2.程序設計語言的分類。程序設計語言是人們根據描述問題的需要而設計的。如今,人們己經設計出了許多種程序設計語言,如匯編語言、Basic,FoxPro,C,C++,VisualC++,VisualBasic,Java等上百種,但其中只有極少部分得到了比較廣泛地應用。下一頁返回7.3程序技術基礎最常見的分類方法是根據程序設計語言與計算機硬件的聯系程度將其分為3類,即機器語言、匯編語言和高級語言。前兩類依賴于計算機硬件,有時稱為低級語言;而高級語言與計算機硬件基本無關。因此可以說程序設計語言經歷了由低級向高級發展的過程。另外,高級語言可分為3類,即面向問題的程序設計語言、面向過程的程序設計語言、面向對象的程序設計語言等。(1)面向過程的程序設計語言。傳統的程序設計高級語言都是面向過程的程序設計語言,在程序設計中需要將任務的每個步驟逐一編寫出來,對問題的描述接近于對問題求解過程,易于掌握書寫。常用到的這類高級語言有Basic,Fortran,Pascal,C等。下一頁返回上一頁7.3程序技術基礎(2)面向對象的程序設計語言。傳統的高級語言,用戶不僅要告訴計算機“做什么”,而且要告訴計算機“怎么做”,也就是把每一步的操作事先都設想好,用高級語言編成程序,讓計算機按指定好的步驟去執行。近年來出現了“面向對象”的程序設計語言。所謂對象是數據及相關方法的軟件實體,可以在程序中用軟件中的對象來代表現實世界中的對象。目前流行的這類程序設計語言有Java,C++,VisualBasic,VisualC++,PowerBuilder,Delphi等。

(3)面向問題的程序設計語言。通常把面向問題的數據庫系統語言稱為甚高級語言(第四代語言)。面向過程的高級語言要仔細告訴計算機每步“怎么做”,而面向問題的甚高級語言就只需告訴計算機“做什么”,不需要告訴它“怎么做”,它就會自動完成所需的操作。下一頁返回上一頁7.3程序技術基礎

3.程序設計的一般過程程序設計的基本過程一般由分析所求解的問題、抽象數學模型、選擇合適算法、編寫程序、調試通過直至得到正確結果等幾個階段所組成。其設計步驟可以分為以下幾步。

(1)確定要解決的問題。接到任務后,首先對要處理的對象進行調查分析,明確要實現的功能。然后詳細地分析要處理的原始數據有哪些、從哪單來,要進行怎樣的加工處理,處理的結果送到哪里等。

(2)分析問題,建立數學模型。對要解決的問題進行分析,找出運算操作和變化規律,然后進行歸納,并用抽象的數學語言描述出來。也就是說,將具體問題抽象為數學模型。下一頁返回上一頁7.3程序技術基礎(3)確定數據結構和算法。方案確定后,要考慮程序中要處理的數據的組織形式即數據結構,并針對選定的數據結構設計相應的算法。然后根據己確定的算法,畫出流程圖、N-S圖。這樣能使程序結構清晰,減少編寫程序的錯誤。也就是說算法是編程的依據。

(4)編寫程序。把用流程圖描述的算法用計算機語言(如C語言)描述出來,就是編寫程序。

(5)調試程序。將源程序送入計算機,進行排錯、試運行,調試的結果是得到一個能正確運行的程序。通常,調試程序至少占整個程序設計工作量的一半。

(6)整理資料,交付使用。程序調試通過后,應將解決問題整個過程的有關資料進行整理,編寫程序使用說明書。下一頁返回上一頁7.3程序技術基礎7.3.2數據結構在計算機發展的初期,計算機主要用于數值計算,處理的是數值數據,而且數據量小,結構簡單,形式統一。隨著計算機技術的發展,計算機應用領域的擴大,越來越多的非數值數據需要處理,數據的概念也被大大推廣,數字、字符、圖像、聲音都可屬于數據的范疇。與數值數據相比,非數值數據的結構比較復雜,其計算機表示也比較麻煩。只有對數據內部的結構關系以及數據在計算機內如何存儲和操作進行深入的研究,才能設計出高效可靠的程序,實現對數據的有效處理。

1.數學模型下一頁返回上一頁7.3程序技術基礎前面在講到程序設計過程時,講到用計算機解決一個實際問題,首先必須從具體問題抽象出一個適當的數學模型,用這個數學模型應能得出該問題的精確或近似解。建立實際問題的數學模型是計算機應用必須首先進行的工作,也是一項很重要的工作。常見的數學模型可分為數值計算和非數值計算兩大類。許多實際問題數學抽象的結果是數學方程。這些數學方程可以用解析的方法求出精確解,或者用模擬的方法求出近似解。但是更多的實際問題無法用數學方程來描述,這些問題所求的不是某個數值,而是某種檢索的結果,某種排列的狀態,某種轉換后的形式,某種設計的表示……這些問題的數學模型不是用數學方程,而是用一種數據結構來描述數據以及數據之間的相互關系。下一頁返回上一頁7.3程序技術基礎2.數據結構的概念數據是對客觀事物的名稱、數量、特征、性質的描述形式(即編碼),是計算機所能處理的一切符號的總稱。數據既是計算機加工的對象,又是計算機的產品(計算結果)。例如,一個利用數值分析方法解代數方程的程序,其處理對象是整數和實數;一個編譯程序或者文字處理程序的處理對象是字符串。因此,對計算機科學來講,數據的含義很廣泛,比如圖形、圖像、色彩和聲音等都可以通過編碼而歸于數據的范疇。一般,那些單個孤立的數據研究價值不大,而應著重研究由眾多數據元素組成的數據集合、集合中數據元素之間存在的內在聯系、數據和數據集合進行的運算(即對數據進行的處理)以及如何提高運算效率等問題,這就引出了數據結構。下一頁返回上一頁7.3程序技術基礎數據結構里包括一批數據,是數據的一個集合。這個集合中的每一個數據個體稱為數據元素,它是數據的基本單位。一個數據元素又叫做一個數據結點,簡稱結點。一個數據元素可以是簡單的,只有一個數據項,例如一個數,一個字符,一個名字等;也可以是復雜的,由若干數據項組成。一個數據結點由用來描述一個獨立事物的名稱、數量、特征、性質的一組相關信息組成。數據類型是指程序設計語言中所允許的變量的種類,也就是變量可以取的值和可以進行的運算的集合。可以把數據類型看成是在程序設計語言中己經實現了的數據結構。總之,數據結構是帶有結構特性的數據元素的集合,它研究的是數據的邏輯結構和數據的存儲結構以及它們之間的相互關系,并對這種結構定義相適應的運算,設計出相應的算法。下一頁返回上一頁7.3程序技術基礎

7.3.3算法為了有效地進行程序設計,不僅要掌握一門程序設計語言,還應該學會針對各類問題擬定出有效的解題方法和步驟—即算法設計。

1.算法的概念。計算一個算術式,要先乘除后加減,這個規則就是算法。使用算盤,珠算日訣就是算法。在日常生活中做任何一件事情,都是按照一定規則,一步一步進行,這就是算法。計算機解決問題的方法和步驟,就是計算機的算法。計算機用于解決數值計算,如科學計算中的數值積分、解線性方程等的計算方法,就是數值計算的算法;用于解決非數值計算,如用于管理、文字處理、圖像圖形等的排序、分類、查找,就是非數值計算的算法。下一頁返回上一頁7.3程序技術基礎簡單地說,算法就是解決問題的辦法,是對特定問題求解步驟的詳細描述。從計算機應用的角度來說,算法是用于求解某個特定問題的一些指令的集合。具體地說,用計算機所能實現的操作或指令,來描述問題的求解過程,就得到了這一特定問題的計算機算法。算法的基本控制結構通常包括順序結構、分支結構和循環結構。算法是對程序控制結構的描述,而數據結構是對程序中數據的描述。算法是一個有窮規則的集合,這些規則確定了解決某類問題的一個運算序列。對于該類問題的任何初始輸入值,它都能機械地一步一步地執行計算,經過有限步驟后終止計算并產生輸出結果。歸納起來,算法具有以下幾個基本特征。下一頁返回上一頁7.3程序技術基礎①有窮性:一個算法必須在執行有限個操作步驟后終止。②確定性:算法中每一步的含義必須是確切的,不可出現任何一義性。③有效性:算法中的每一步操作都應該能有效執行,一個不可執行的操作是無效的。例如,一個數被0除的操作就是無效的,應當避免這種操作。④有零個或多個輸入:這單的輸入是指在算法開始之前所需要的初始數據。這些輸入的多少取決于特定的問題。⑤有一個或多個輸出:所謂輸出是指與輸入有某種特定關系的量,在一個完整的算法中至少會有一個輸出。如上述關于算法的三個例子中,每個都有輸出。下一頁返回上一頁7.3程序技術基礎

【例7-1】求5個自然數的和(即S=1+2+3+4+5)。

問題分析:該題有兩個特點,①重復執行加法,每加一個數,總和的值都在變;②加數是一個有規則的等差數列,第1項是1,以后每加一次,加數就增加1,因此,可以用以下算法實現。算法表示如下:S1設一個存放累加和的變量S,初值置0,即0→S;設一個計數變量N,初值置0,即0→N。S2計算和S+N→S,并把計數變量增值N+1→N。S3判斷:當N《5時,返回第2步S2,再次求和;當N>5時,順序執行下一步S4。S4輸出結果,S為所求之和。這單S1,S2,…,即Step1,Step2,…的簡寫,用以標識執行的步驟,后面例題均用此符號來表示。下一頁返回上一頁7.3程序技術基礎

【例7-2】將兩個變量X和Y的值互換。設X=5,Y=lO。

問題分析:兩人交換座位,只要各自去坐對方的座位就行了,這是直接交換。一瓶酒和一瓶醋互換,就不能直接從一個瓶子往另一個瓶子倒。必須借助于一個空瓶子,先把酒倒入空瓶,再把醋倒入己倒空的酒瓶,最后把酒倒入己倒空的醋瓶,這樣才能實現酒和醋的交換,這是間接交換。計算機中交換兩個變量的值不能用兩個變量直接交換的方法,而必須采用間接交換的方法。因此,設一個中間變量為Z。算法表示如下:S1將Y值存入中間變量Z:Y→ZS2將X值存入變量Y中:X→YS3將中間變量Z的值存入X中:Z→X下一頁返回上一頁7.3程序技術基礎總之,具有上述5個特性才能稱為算法,而其中最重要的是算法的有窮性,如果不具備有窮性的性質,僅具有另外4種性質,只能稱為計算過程或計算方法,而不是算法。

2.算法與程序設計。利用計算機解決各種問題,算法是至關重要的。如果沒有算法,要解決問題就無從下手。計算機解決問題不但要依賴于算法,而且.會涉及大批數據。數據的組織和存儲會直接影響算法的實現方式和效率。算法和數據結構是人們用計算機解題時所作的兩種抽象:算法是從計算機的操作角度對解題過程的抽象;數據結構是從如何組織處理操作對象的角度進行的抽象。這兩種抽象互相依賴、互相補充,最大限度地減低問題的復雜性。下一頁返回上一頁7.3程序技術基礎在這兩個方面的基礎上,人們開發出運行效率較高的各種應用程序。因此,在一定意義上,一般認為:

程序=算法+數據結構或進一步說,程序設計=算法+數據結構+程序設計方法+程序設計開發工具除了算法和數據結構之外,程序設計方法對程序設計也是很重要的,它影響到程序設計的成敗及程序設計質量。隨著計算機解決的問題越來越復雜,計算機本身的運算速度越來越快,內存容量也越來越大,程序設計己不是程序員個人技巧的“手工藝品”。程序設計要遵循一定的開發方法及思想,如結構化設計方法、模塊化程序設計方法、自頂向下的逐步細化的方法、面向對象的程序設計方法等,要按照工程管理的方法去進行軟件開發,即用軟件工程的思想及方法去進行軟件開發。下一頁返回上一頁7.3程序技術基礎

3.用流程圖表示算法。流程圖,亦稱框圖,它是用一些幾何框圖、流程線和文字說明表示各種類型的操作。流程圖中的基本圖形、圖形意義和長度比例都有國家頒布的標準(GB5807-85)。如圖7-10,處理框即矩行框,有一個入口,一個出口。判斷框即菱形框有一個入口,兩個出口。在框內寫上簡明的文字或符號表示具體的操作,用帶箭頭的流向線表示操作的先后順序。流程圖是人們交流算法設計的一種工具,不用輸入計算機。只要邏輯正確,人們都能看得懂就可以了,一般是由上而下按執行順序畫下來。用流程圖表示【例7-1】【例7-2】的算法如圖7-11和圖7-12。流程圖的優點是形象直觀,清晰明了,所以廣泛用在各種高級語言的程序設計中,常稱之為傳統的流程圖。但它也有不足之處,對于較復雜的問題,畫圖量大,而且由于使用流程線,使流程任意轉移,容易使人弄不清流程的思路。下一頁返回上一頁7.3程序技術基礎4.用N-S結構化流程圖表示算法

(1)什么是結構化程序。隨著計算機的發展,編制的程序越來越復雜。一個復雜程序多達數千萬條語句,且程序的流向也很復雜,常用無條件轉向語句去實現復雜的邏輯判斷功能。故造成質量差,可靠性很難保證,程序也不易閱讀,維護困難等問題。20世紀60年代末期,國際上出現了所謂“軟件危機”。為了解決這一問題,就出現了結構化程序設計,它的基本思想是像玩積木游戲那樣,只要有幾種簡單類型的結構,可以構成任意復雜的程序。這樣可以使程序設計規范化,便于用工程的方法來進行軟件生產。基于這樣的思想,1966年意大利的Bobra和Jacopini提出了3種基本結構,由這3種基本結構組成的程序,就是結構化程序(StructuredProgram)。下一頁返回上一頁7.3程序技術基礎

(2)3種基本結構。

1)順序結構。程序流向是沿著一個方向進行的,有一個入口(A),有一個出口(B)。如圖7-13所示。順序結構是最簡單的一種結構。先執行A塊然后再執行B塊。A,B塊分別代表某些操作。

2)選擇結構。程序的流程發生分支,根據一定的條件選擇其中之一,這就是選擇結構,它也有一個入口(A),一個出口(B)。簡單的選擇結構只有兩個分支,如圖7-14所示。根據給定的條件是否滿足決定執行A塊或B塊。3)循環結構(重復結構)。程序流程是有限次重復執行某一塊程序,再退出循環。循環結構有兩種類型。下一頁返回上一頁7.3程序技術基礎①當型(WHILE)循環結構,先判斷條件是否滿足,若滿足時就執行循環體,如條件不滿足時就不執行循環體,并轉到出口,如圖7-15(a)所示。②直到型(UNTIL)循環結構,它是先執行循環體,后判斷。當條件不滿足時繼續執行循環體,條件滿足時,停止執行,并轉到出口,如圖7-15(b)。循環結構也有一個入口(A),一個出口(B),它應當使重復處理為有限次,不能無限制的循環下去。這種結構化程序具有以下特點:①只有一個入口和一個出口;②無死語句,即沒有永遠都執行不到的語句;③無死循環,即沒有永遠都執行不完的循環。下一頁返回上一頁7.3程序技術基礎

(3)結構化流程圖(N-S圖)

前面的圖7-14和圖7-15,用框圖表示了結構化程序的3種基本結構。但是當情況復雜時,圖形中的流程線多,仍不便于閱讀。所以美國學者I.Nassi和B.Schneiderman于1973年提出了一種新的繪制流程圖的方法。由于他二人的名字以N和S開頭,故把這種流程圖稱為N-S圖。這種結構化流程圖,完全去掉了在描述中引起混亂的帶箭頭的流程線,全部算法由3種基本結構的框表示。3種基本結構框的畫法規定介紹如下。

1)順序結構(SequenceStructure)。由若干個前后銜接的矩形塊順序組成。一個順序結構,如圖7-16所示,先執行A塊,然后執行B塊。各塊中的內容表示一條或若干條需要順序執行的操作。下一頁返回上一頁7.3程序技術基礎2)選擇結構。選擇結構(ChoiceStructure)如圖7-17,在此結構內有兩個分支,它表示當給定的條件滿足時執行A塊的操作,條件不滿足時,執行B塊的操作。

3)循環結構(RepetitionStlucture)。①當型(WHILE)循環結構,如圖7-18(a)。先判斷條件是否滿足,若滿足就執行A塊(循環體),然后再返回判斷條件是否滿足,如滿足再執行A塊,如此循環下去,直到條件不滿足為止。②直到型(UNTIL)循環結構,如圖7-18(b)所示。它先執行A塊(循環體)然后判斷條件是否滿足,如不滿足則返回再執行A塊,若滿足則不再繼續執行循環體了。下一頁返回上一頁7.3程序技術基礎用N-S圖表示【例7-1】,【例7-2】的算法,如圖7-19和圖7-20所示。將圖7-19和圖7-20所示的N-S圖與圖7-11和圖7-12所示的傳統流程圖相比較,明顯看出N-S流程圖是由基本結

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論