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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

大學(xué)計算機基礎(chǔ)第五章計算機軟件技術(shù)基礎(chǔ)第五章計算機軟件技術(shù)基礎(chǔ)

計算機硬件(Hardware)是計算機系統(tǒng)的基礎(chǔ),但是沒有軟件(Software)的計算機是無法工作的。事實上,現(xiàn)在計算機能廣泛地應(yīng)用于各個領(lǐng)域,完全是由于有了豐富的計算機軟件,人們?yōu)榱擞糜嬎銠C解決各類問題,針對性地開發(fā)了各種各樣的軟件。本章將討論關(guān)于計算機軟件的相關(guān)知識:如什么是軟件,程序設(shè)計語言的分類,什么是算法等。5.1計算機軟件系統(tǒng)5.1.1軟件的概念與特點

軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。軟件通常是為某個特定目的而開發(fā)的產(chǎn)品。①程序:按照事先設(shè)計的功能和性能要求執(zhí)行的計算機指令序列。②數(shù)據(jù):使程序能夠正常操縱信息的數(shù)據(jù)結(jié)構(gòu)。③文檔:與程序開發(fā)、維護和使用有關(guān)的資料。

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

計算機軟件系統(tǒng)包括各種各樣的軟件,這些軟件之間的關(guān)系不是并列的,而是有一定的層次關(guān)系。5.1.3計算機軟件的層次結(jié)構(gòu)5.2程序設(shè)計語言簡單來講,程序設(shè)計就是:用計算機語言編寫程序。程序=算法+數(shù)據(jù)結(jié)構(gòu)

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

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

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

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

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

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

(1)數(shù)據(jù)類型程序設(shè)計語言中一般分為基本數(shù)據(jù)類型和構(gòu)造數(shù)據(jù)類型兩大類。

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

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

運算是程序?qū)?shù)據(jù)進行的最基本也是最重要的處理,程序設(shè)計中使用表達式完成各種各樣的運算。表達式通常包括:常量、變量、運算符和函數(shù)調(diào)用等構(gòu)成。例如:給定圓的半徑r,求其面積的Java語言表達式是:

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

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

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

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

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

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

解決問題的思維過程借助計算機求解問題的過程5.4算法和數(shù)據(jù)結(jié)構(gòu)5.4.1什么是數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)簡介

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

數(shù)據(jù)結(jié)構(gòu)研究的數(shù)據(jù)存儲和數(shù)據(jù)處理這樣的最核心的問題。不是幾個孤立的數(shù)據(jù),而是大量的相互關(guān)聯(lián)的數(shù)據(jù)。數(shù)據(jù)元素之間的相互關(guān)系稱為結(jié)構(gòu)。5.4.1什么是數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)簡介5.4算法和數(shù)據(jù)結(jié)構(gòu)5.4.2算法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論