計算機軟件技術基礎綜述_第1頁
計算機軟件技術基礎綜述_第2頁
計算機軟件技術基礎綜述_第3頁
計算機軟件技術基礎綜述_第4頁
計算機軟件技術基礎綜述_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

大學計算機基礎第五章計算機軟件技術基礎第五章計算機軟件技術基礎

計算機硬件(Hardware)是計算機系統的基礎,但是沒有軟件(Software)的計算機是無法工作的。事實上,現在計算機能廣泛地應用于各個領域,完全是由于有了豐富的計算機軟件,人們為了用計算機解決各類問題,針對性地開發了各種各樣的軟件。本章將討論關于計算機軟件的相關知識:如什么是軟件,程序設計語言的分類,什么是算法等。5.1計算機軟件系統5.1.1軟件的概念與特點

軟件是計算機系統中與硬件相互依存的另一部分,包括程序、數據及其相關文檔的完整集合。軟件通常是為某個特定目的而開發的產品。①程序:按照事先設計的功能和性能要求執行的計算機指令序列。②數據:使程序能夠正常操縱信息的數據結構。③文檔:與程序開發、維護和使用有關的資料。

軟件的特點:①抽象性②復雜性③維護長期性④高成本性5.1計算機軟件系統5.1.2軟件的分類(1)按軟件功能劃分①系統軟件:能與計算機硬件緊密配合在一起,使計算機系統的各個部件、相關的軟件和數據協調、高效地工作。②支撐軟件:協助用戶開發軟件的工具性軟件,其中包括幫助軟件人員開發軟件產品的工具,也包括幫助管理人員控制開發進程的工具。③應用軟件:針對特定領域應用開發,為特定目的服務的軟件。5.1計算機軟件系統(2)按軟件工作方式劃分①實時處理軟件:對實時過程進行監控的軟件。②分時軟件:允許多個聯機用戶同時使用計算機。③交互式軟件:能實現人機通信的軟件。④批處理軟件:把一組輸入作業或大量數據以成批處理的方式一次運行,按順序逐個處理的軟件。(3)按軟件服務對象劃分①項目軟件:也稱定制軟件,是受某個特定客戶(或少數客戶)委托,由一個或多個軟件開發機構在合同的約束下開發出來的軟件。②產品軟件:由軟件開發機構開發出來投入市場或用戶群體龐大的軟件。5.1計算機軟件系統

計算機軟件系統包括各種各樣的軟件,這些軟件之間的關系不是并列的,而是有一定的層次關系。5.1.3計算機軟件的層次結構5.2程序設計語言簡單來講,程序設計就是:用計算機語言編寫程序。程序=算法+數據結構

編寫計算機程序時使用的語言稱為程序設計語言(ProgrammingLanguage),使用它把人類解決問題的方法用計算機可以識別的形式表示出來。對數據操作的步驟如何表示、組織和存儲數據5.2程序設計語言5.2.1機器語言

機器語言是指由二進制代碼按照一定規則組成的命令集合,也稱為機器指令集合。機器指令的格式如下:操作碼操作數例如:計算256+16結果的機器代碼如下(以十六進制表示):B80001;把256放入累加器AX051000;把16與AX中值相加,結果存入AX5.2程序設計語言5.2.2匯編語言

為了解決機器語言難記憶、可讀性差的缺點,人們把機器指令中的操作碼和操作數用英文助記符和符號地址來表示,這種助記符語言稱為匯編語言。MOVAX,256;把256放入累加器AXADDAX,16;把16與AX中值相加,結果存入AX匯編和連接過程:5.2程序設計語言5.2.3高級語言

高級語言是一類程序設計語言的統稱,它采用接近人類自然語言和數學表達式的表示方法,并遵循一定的語法規則來編寫程序。實現求整數的絕對值的程序段:intintVar,result;scanf(“%d”,&intVar);if(intVar>=0)result=intVar;elseresult=-1*intVar;printf(“%d的絕對值是:%d”,intVar,result);5.2程序設計語言高級語言程序的翻譯和執行高級語言源程序翻譯成指令代碼的方法主要有兩種:解釋和編譯5.2程序設計語言5.2程序設計語言5.2.4主流高級語言

高級語言種類多,介紹幾種常用的高級語言:(1)BASIC語言(2)C語言(3)C++語言(4)JAVA語言(5)C#語言(6)腳本語言5.2程序設計語言5.2.5軟件開發工具和開發環境程序員使用的開發工具,主要有:編輯源程序的編輯軟件。把高級語言編譯成機器語言的編譯軟件。調試程序的調試軟件。(1)單獨工具(2)集成的開發環境5.2程序設計語言(不講)5.2.6程序設計語言的構成(不講)

數據和操作是構成程序的兩個基本要素,任何一種程序設計語言都必須提供表示數據和操作的語法、語義元素。

(1)數據類型程序設計語言中一般分為基本數據類型和構造數據類型兩大類。

基本數據類型是由程序設計語言內置的,其特點是不能再分解為其它的類型。在主流的程序設計語言中一般包括:整數類型、實數類型、字符類型、布爾類型等。

構造數據類型是由基本數據類型按照某種方式組合構成的。常見的構造數據類型有:數組類型、記錄類型(結構體)、枚舉類型、字符串類型、文件類型等。5.2程序設計語言(不講)(2)運算符和表達式

運算是程序對數據進行的最基本也是最重要的處理,程序設計中使用表達式完成各種各樣的運算。表達式通常包括:常量、變量、運算符和函數調用等構成。例如:給定圓的半徑r,求其面積的Java語言表達式是:

s=3.14*r*r(3)語句

程序是對計算機要執行的操作的描述。高級語言源程序的基本組成單位是語句。語句按功能可以分為兩類:

1.用于描述操作運算,如賦值語句,稱為操作運算語句;

2.用于控制操作運算的執行順序,如分支控制語句,稱為流程控制語句。5.2程序設計語言(不講)(4)控制結構①順序結構,按照語句出現的先后順序依次執行。②分支結構,根據給定條件判斷,決定程序執行的順序。③循環結構,循環(重復)是計算機解題的一個重要特征。(5)輸入/輸出

程序的輸入是指用戶將數據通過輸入設備(如鍵盤等)輸入到程序中。程序的輸出是指程序把運算結果以用戶可以理解的形式輸出到輸出設備(如顯示器、打印機等)。高級程序設計語言中通常以函數或語句的形式提供輸入輸出操作。現代高級程序設計語言通常都提供通過窗口、文本框、按鈕、組合框、圖表等圖形組件進行輸入輸出。5.2程序設計語言(不講)(6)子程序

子程序就是將需要重復使用的程序段或分解的子問題編寫為一個邏輯上獨立的子程序,當程序中需要使用子程序時,再對其進行調用。使用子程序的好處是降低了程序的復雜度,使程序的結構清晰,提高了程序設計的效率。一般程序設計語言中有兩種子程序:函數(Function)和過程(Procedure),它們的主要區別是函數有返回值,而過程不能有返回值。5.3問題求解過程

解決問題的思維過程借助計算機求解問題的過程5.4算法和數據結構5.4.1什么是數據,數據結構簡介

數據是對客觀事物的描述,對計算機來說,數據的含義非常廣泛,如數字、字符、圖形、色彩、聲音等都是數據。數據元素(DataElement)是組成數據的基本單位。一個數據元素可以由若干個數據項組成,數據項是數據不可分割的最小單位。例:公司員工數據的存儲姓名性別出生日期職位工資張軍男1975.5.6總經理5080.00李芳女1980.12.12項目經理4800.00王明男1979.4.19程序員4500.00劉杰男1974.6.23系統分析員4750.00趙麗女1977.11.9測試員3900.00

數據結構研究的數據存儲和數據處理這樣的最核心的問題。不是幾個孤立的數據,而是大量的相互關聯的數據。數據元素之間的相互關系稱為結構。5.4.1什么是數據,數據結構簡介5.4算法和數據結構5.4.2算法

算法(Algorithm)是指為解決給定問題而需實施的有窮操作步驟的描述。

算法的五個重要特性:1)有窮性2)確定性3)可行性4)輸入5)輸出評價一個算法優劣的標準:1)正確性2)可讀性3)健壯性4)效率性5.4算法和數據結構算法的描述方法(1)用自然語言描述算法(2)用流程圖描述算法(3)使用偽代碼描述算法(4)用程序設計語言描述算法例1互換兩個數據單元內容。(書上例5.4)例2求兩個正整數m和n的最大公約數的算法。用如上這四種方式描述出來。(書上例5.5)5.4算法和數據結構第五章計算思維案例

計算思維反映的是利用計算機技術解決實際問題的思維方法,如果對利用計算機技術如何解決實際問題的認知出現誤解,那是不可能達到目的的。很多初學者以為計算機神乎其神,似乎什么都能干。

和人腦相比,它只是會算,而且算的速度非常快,除此以外計算機幾乎沒有什么更多的優越性了。如果你要完成的計算任務比較復雜,又不能(或者不會)分解成計算機能接受的基本操作,那就沒法利用計算機求解了。記住,計算機永遠都是在人腦的指揮下工作的!案例1合理分解和分配計算任務第五章計算思維案例

在計算機科學中,將大規模的復雜問題分解成若干個較小規模的、更簡單的問題加以解決,是一種常用的計算思維。運用問題分解這種思維方法進行問題求解,首先需對問題本身做出明確描述,并對問題解法做出全局性決策,把問題分解成相對獨立的子問題,再以同樣的方式對每個子問題進一步精確化,直到獲得對問題的明確的解答。在本章中,結構化程序設計采取了計算思維中的典型方法——分解。按照“分而治之”的策略,將頂層問題的求解目標逐層分解成子目標,每個子目標用相應的程序模塊進行實現,這樣構成求解整個問題的程序。案例2大事化小、小事化了第五章計算思維案例

結構化程序設計方法的一個重要原則就是“自頂向下、逐步求精”,它是指程序設計時,先描述頂層問題的求解目標,然后步步深入,設計一些比較粗略的子目標作為過渡,再逐層細分,直到整個問題可用程序設計語言明確地描述出來為止。程序的模塊化設計,則是針對任何一個大系統都可以按子結構之間的疏密程度分解成較小的模塊,每個模塊完成一定問題的求解。整個程序是由層次的、逐級細化的諸模塊組成。一個復雜的問題可以看成由若干稍簡單的問題構成。案例2大事化小、小事化了第五章計算思維案例

對于可以用計算機求解的問題,所需的計算時間都與其規模有關,問題規模越小,解題所需的計算時間也越少,也越容易求解。因此可以將一個難以直接解決的大問題,分割成一些規模較小的相同問題,以便各個擊破、分而治之。模塊化與自頂可下、逐步求精緊密聯系。日常工作中的層次化管理也是一種對分解方法的運用。以企業運行為例,一個大型企業也是一個非常復雜的系統,采取“金字塔”型的管理層次是常用的策略,將企業逐層分解,越上層的機構越少,越向下功能分解越細、機構數目越多。各級機構管理好自己的下屬機構,完成上級機構制定的目標,最終整個企業實現自己的整體目標。案例2大事化小、小事化了第五章計算思維案例

計算思維是利用海量數據來加快計算,在時間和空間之間、在處理能力和存儲容量之間進行折中的思維方法。計算機問題求解是以計算機為工具,利用計算思維解決問題的實踐活動。計算機解題的核心是算法設計,設計算法是計算機問題求解中非常重要的步驟。查找(Searching)也稱檢索,計算機最重要的功能之一就是在浩瀚的數據中找到用戶所要的信息。但是計算機的速度還并沒有快到能瞬間完成這一過程的程度,而且等待計算機查找的數據集往往是異常龐大的,因此我們需要更快捷更有效的搜索方式。案例3海量查找第五章計算思維案例

世界上最龐大的搜索問題是在網絡世界中搜索信息,網絡搜索引擎能實現同時為大量在線用戶在數以百萬計的網頁中進行高速查詢,這無疑是一個令人驚訝的事實,而它們能做到這點無非是因為使用了正確的算法。查找的結果有兩種:一種是查找到滿足條件的結點,稱為查找成功;否則稱為查找失敗。查找的方法很多,針對線性表的查找算法有順序查找和折半查找。案例3海量查找

查找(Searching)也稱檢索,設表F中有n個結點,Ki是記錄Ri的關鍵字,現給定關鍵字K,在F中尋找關鍵字與K相同的結點R的過程,叫做查找。(1)順序查找

順序查找是線性表的最簡單的查找算法。它是用給定的值與表中的每個結點的關鍵字逐個進行比較運算,若找到相等的關鍵字則查找成功,否則查找失敗。順序查找算法的優點是適用范圍廣,對線性表中結點邏輯次序無關,即不要求按關鍵字排序。對線性表的物理存儲結構也沒有要求,順序存儲與鏈式存儲均可。(2)折半查找

折半查找要求:線性表必須按關鍵字大小排好順序(可以假設從小到大排序),并且采用順序存儲方式。折半查找的基本思想是:先取表的中間位置的結點關鍵字與所給定的關鍵字進行比較,如果相等,則查找成功。如果給定值比該結點的關鍵字大,則所找結點在表的后半部分;否則所找結點在表的前半部分,然后再把選定的部分表的中間結點的關鍵字與給定關鍵字進行比較。如此反復進行,直到查找成功或者查找失敗為止。例:第五章計算思維案例

排序(Sort)是數據處理中的一種重要運算,它的功能是將一組數據元素(或記錄)從任意序列排列成一個按關鍵字排序的序列。這是一種常用的計算思維方法。幾乎所有計算機中的序列都是被排過序的,電子郵件列表按照日期排序,最新的郵件被放置在最頂端;播放器中的歌曲按照名字或歌手名排列在一起,以便你快速查找到最喜歡的那首歌,文件名則往往是按照字母順序排列的。那么計算機是如何進行排序的呢?計算機科學家設計了很多排序的算法,直接插入排序、冒泡排序等。案例4排序第五章計算思維案例

人們在日常生活中將物品有規律的擺放,如水果由小到大擺放,圖書按書名或學科順序排序等。將物品按照某種規律順

溫馨提示

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

評論

0/150

提交評論