




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、大學(xué)計算機基礎(chǔ)計算機基礎(chǔ)課題組南京信息工程大學(xué)計算機科學(xué)與技術(shù)系1第十一章2基本要求 了解程序設(shè)計語言的歷史和分類 了解程序設(shè)計語言的功能 了解程序設(shè)計的基本思想和過程 3主要內(nèi)容11.1 程序和程序設(shè)計語言11.2 算法11.3 程序設(shè)計步驟和程序設(shè)計方法11.4 常用程序設(shè)計語言411.1 程序和程序設(shè)計語言11.1.1 程序的一般概念程序 : 計算機為完成序某一個任務(wù)所必須 執(zhí)行的一系列指令的集合。一個計算機程序主要描述兩部分內(nèi)容: 數(shù)據(jù)結(jié)構(gòu)描述問題的每個對象之間的關(guān)系 算法對問題的處理規(guī)則經(jīng)典公式: 程序=數(shù)據(jù)結(jié)構(gòu)+算法5例1: 用VB來編寫的顯示教齡滿30年的教職工 Sub Comm
2、and1_Click() Open d: zg.dat For Input As #1 Do While Not EOF(1) Input #1, 姓名, 部門, 教齡 If 教齡 = 30 Then Print 姓名, 部門 LoopClose #11.程序的一般概念62.計算機程序的共同性質(zhì) 目的性 程序有明確的目的,運行時能完成賦予它的功能。 分步性 程序由一系列計算機可執(zhí)行的步驟組成。 有序性 執(zhí)行步驟是有序的,不可隨意改變執(zhí)行順序。 有限性 程序是有限的指令序列,所包含的步驟是有限的。 操作性 有意義的程序總是對某些對象進行操作,使其改變狀態(tài),完成其功能。711.1.2 程序設(shè)計語言
3、概述 按照程序設(shè)計語言發(fā)展的過程,大概分為三類:機器語言 機器語言是由0和1二進制代碼按一定規(guī)則組成的、能被機器直接理解和執(zhí)行的指令集合。機器語言中的每一條語句實際上是一條二進制形式的指令代碼,指令格式如下:操作碼 操作數(shù) 操作碼 要完成的操作類型或性質(zhì)操作數(shù) 操作的內(nèi)容或所在的地址 8例如,計算A=15+10 的機器語言程序如下:10110000 00001111: 把15放入累加器A中00101100 00001010: 10與累加器A的值相加,結(jié)果仍放入A中11110100 : 結(jié)束,停機編程工作量大,難學(xué)、難記、難修改,只適合專業(yè)人員使用;由于不同的計算機,其指令系統(tǒng)不同,機器語言隨機
4、而異,通用性差,是面向機器的語言。機器語言優(yōu)點:程序代碼不需要翻譯,所占空間少,執(zhí)行速度快?,F(xiàn)在已經(jīng)沒有人用機器語言直接編程了。 92.匯編語言將機器指令的代碼用英文助記符來表示,代替機器語言中的指令和數(shù)據(jù)。例如用ADD表示加、SUB表示減、JMP表示程序跳轉(zhuǎn)等等,這種指令助記符的語言就是匯編語言。例如,計算 A=15+10 的匯編語言程序:MOVA,15:把15放入累加器A中ADDA,10:10與累加器A相加,結(jié)果存入A中HLT :結(jié)束,停機匯編語言克服了機器語言難讀等缺點,保持了其編程質(zhì)量高,占存儲空間少,執(zhí)行速度快的優(yōu)點。常用于過程控制等編程。匯編語言面向機器,使用者需要專業(yè)知識。匯編語
5、言編寫的程序,必須翻譯成機器語言,才能被計算機執(zhí)行。 103.高級語言高級語言是由表達各種意義的詞和數(shù)學(xué)公式按照一定的語法規(guī)則來編寫程序的語言。高級語言使程序員可以完全不用與計算機的硬件打交道,可以不必了解機器的指令系統(tǒng),是面向過程的語言。這樣,程序員就可以集中精力來解決問題本身而不必受機器制約,編程效率高;由于與具體機器無關(guān),因此程序的通用性強。例如,計算 A=15+10 的BASIC語言程序如下:A=15+10 15與10相加的結(jié)果放入A中PRINT A 輸出AEND 程序結(jié)束114.高級語言分類高級語言的發(fā)展分為3類:1)面向過程的語言如FORTRAN、BASIC、PASCAL、C等。面
6、向過程的語言致力于用計算機能夠理解的邏輯來描述需要解決的問題和解決問題的具體方法、步驟。編程時,程序不僅要說明做什么,還要告訴計算機如何做,程序需要詳細描述解題的過程和細節(jié)。122)面向問題的語言(非過程化的語言)面向問題的語言又稱為第四代語言(4GLS)。解題時,不必關(guān)心問題的求解算法和求解的過程,只須指出要計算機做什么,數(shù)據(jù)的輸入和輸出形式,就能得到所需結(jié)果。例如,用非過程化的語言,只要用如下的一條語句就可實現(xiàn):SELECT 姓名,部門,教齡 FROM d:zg.dbf WHERE 教齡 =3013面向問題的語言是采用快速原型法開發(fā)應(yīng)用軟件的強大工具,能夠快速地構(gòu)造應(yīng)用系統(tǒng),提高軟件開發(fā)效
7、率。面向過程的語言需要詳細地描述“怎樣做”;面向問題的語言僅需要說明“做什么”。它和與數(shù)據(jù)庫的關(guān)系非常密切,能夠?qū)Υ笮蛿?shù)據(jù)庫進行高效處理。143)面向?qū)ο笳Z言在20世紀80年代推出面向?qū)ο笳Z言。它與以往各種語言的根本不同點在于:它設(shè)計的出發(fā)點就是為了能更直接地描述客觀世界中存在的事物(即對象)以及它們之間的關(guān)系。面向?qū)ο笳Z言將客觀事物看作具有屬性和行為的對象,通過抽象找出同一類對象的共同屬性和行為,形成類。通過類的繼承與多態(tài)可以很方便地實現(xiàn)代碼重用,這大大提高了程序的復(fù)用能力和程序開發(fā)效率。面向?qū)ο笳Z言已是程序語言的主要研究方向之一。面向?qū)ο蟮恼Z言有C+、Java、Visual Basic等。
8、 1511.1.3 語言處理程序 在所有的程序設(shè)計語言中,除了用機器語言編制的程序能夠被計算機直接理解和執(zhí)行外,其他的程序設(shè)計語言編寫的程序都必須經(jīng)過一個翻譯過程才能轉(zhuǎn)換為計算機所能識別的機器語言程序,實現(xiàn)這個翻譯過程的工具是語言處理程序,即翻譯程序。用非機器語言寫的程序稱為源程序;通過翻譯程序翻譯后的程序稱為目標程序。翻譯程序也稱為編譯器。針對不同的程序設(shè)計語言編寫出的程序,有各自的翻譯程序,互相不通用。 161.匯編程序 匯編程序是將匯編語言編制的程序(源程序)翻譯成機器語言程序(目標程序)的工具。 匯編語言源程序匯編程序機器語言程序匯編程序的具體翻譯工作步驟: 用機器操作碼代替符號化的操
9、作符。 用數(shù)值地址代替符號名稱。 將常數(shù)翻譯為機器的內(nèi)部表示。 分配指令和數(shù)據(jù)的存儲單元。 172.高級語言翻譯程序 1)解釋方式 解釋方式的翻譯工作由解釋程序來完成。解釋程序?qū)υ闯绦蜻M行逐句分析,若沒有錯誤,將該語句翻譯成一個或多個機器語言指令,然后立即執(zhí)行這些指令;若解釋時發(fā)現(xiàn)錯誤,會立即停止,報錯并提醒用戶更正代碼。解釋方式不生成目標程序。 數(shù)據(jù)高級語言源程序解釋程序計算結(jié)果182)編譯方式 翻譯工作由編譯程序完成。如同筆譯在紙上記錄翻譯后的結(jié)果。目標程序 源程序可執(zhí)行程序編譯程序連接程序數(shù)據(jù)計算結(jié)果19 編譯程序?qū)φ麄€源程序經(jīng)過編譯處理,產(chǎn)生一個與源程序等價的目標程序; 目標程序還可能
10、要調(diào)用一些其他語言編寫的程序和程序庫中的標準子程序,通過連接程序?qū)⒛繕顺绦蚝陀嘘P(guān)的程序庫組合成一個完整的可執(zhí)行程序。執(zhí)行速度快,修改源程序后都必須重新編譯。 一般高級語言(C/C+、PASCAL、FORTRAN、COBOL等)都是采用編譯方式。2011.2.2 算法的表示 自然語言用人們使用的語言描述算法 傳統(tǒng)的流程圖法用一些圖框、線條以及文字說明來形象地、直觀地描述算法。 N-S流程圖法-去掉了傳統(tǒng)流程圖中帶箭頭的流向線,全部算法以一個大的矩形框表示,框內(nèi)還可以包含一些從屬于它的小矩形框,適于結(jié)構(gòu)化程序設(shè)計。 ABAB條件TF當條件成立A直到條件成立AN-S圖的三種基本結(jié)構(gòu)21算法的表示 偽
11、代碼法:是一種假的代碼不能被計算機所理解,但接近于某種語言編寫的程序,便于轉(zhuǎn)換成編程語言。根據(jù)編程語言的不同,有對應(yīng)的類Pascal、類C等類-xxx語言。在數(shù)據(jù)結(jié)構(gòu)教材中,經(jīng)常用類-xxx語言來描述算法。 計算機語言:計算機無法識別自然語言、流程圖、偽代碼。這些方法僅為了幫助人們描述、理解算法,要用計算機解題,就要將它們轉(zhuǎn)換成計算機語言程序。用計算機語言描述算法,只有用計算機語言編寫的程序才能被計算機執(zhí)行。2211.2.3 常用算法 兩個變量的值交換 XY Sub Swap(x,y) Dim t t=x x=y y=tEnd Sub 計數(shù)器和累加器 n+ 1sum+xN=N+1 計數(shù)器,N為
12、計數(shù)器變量 Sum=Sum+x 累加器,Sum為累加器變量231.枚舉法枚舉法(窮舉法或試湊法) 根據(jù)條件確定答案的范圍,在此范圍內(nèi)對所有可能的情況逐一驗證。若某個情況符合條件,則為一個解;若全部情況均不符合條件,則問題無解。例 假定小雞0.5元/只,公雞2元/只,母雞3元/只。百元買百雞,列出所有可能的購雞方案。根據(jù)題意列出方程: x+y+z=100 3x+2y+0.5z=10024Print 母雞, 公雞, 小雞For x = 0 To 33 For y = 0 To 50 z =100-x-y If 3*x + 2*y + 0.5*z = 100 Then Print x, y, z N
13、ext yNext x252.遞推法遞推法(迭代法) 從初值出發(fā),歸納出新值與舊值間直到最后值為止存在的關(guān)系,每次重復(fù)都從舊值的基礎(chǔ)上遞推出新值,并由新值代替舊值。例:猴子吃桃子問題。小猴有桃若干,每天吃掉現(xiàn)有數(shù)的一半多一個,到第7天要吃時只剩下一個了,問小猴原有桃子多少個?設(shè)第n天的桃子為xn,它是前一天的桃子數(shù)的一半少1個 遞推公式 xn-1=(xn+1)2 1211-=-nnxx26例 猴子吃桃子問題。 x = 1 Print 第 7 天的桃子數(shù)為: 1只For i = 6 To 1 Step -1 x = (x + 1) * 2 Print 第; i; 天的桃子數(shù)為:; x; 只Nex
14、t i273.求最值 求最值 在n個數(shù)中先假設(shè)第1個數(shù)為最大(小)值初值,依次同第2、3、n個數(shù)據(jù)逐一比較,一旦某個數(shù)大(小) ,馬上替換;所有數(shù)比較完,最大(小)值也就獲得。28例 對輸入的若干個學(xué)生成績,求最高分。 TotalSalary = 0 n =Input Box( 輸入學(xué)生人數(shù)) Max= InputBox( “輸入第1個學(xué)生的成績”) For i = 2 To n mark =Input Box( 輸入第 & i & 個學(xué)生的成績) If mark Max Then Max = mark Next i Print Max 2911.3 程序設(shè)計步驟和程序設(shè)計方法 編制程序的工作
15、稱為程序設(shè)計,為了有效地進行程序設(shè)計,必須掌握兩方面知識:一門程序設(shè)計語言解題的算法一個好的程序有可靠性、易讀性、高效性、可維護性等良好特性。為達到這些目標,應(yīng)采用好的程序設(shè)計方法,以便從方法上更有助于設(shè)計出具有上述特性的程序。 3011.3.1 程序設(shè)計步驟 分析問題 設(shè)計程序(總體設(shè)計和詳細設(shè)計) 程序編碼以及編輯、編譯和連接 測試程序 編寫程序文檔 黑盒測試白盒測試找出程序中的錯誤3111.3.2 程序設(shè)計方法 1. 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序的結(jié)構(gòu)簡單清晰,可讀性強,模塊化強,描述方式符合人們解決復(fù)雜問題的普遍規(guī)律,在軟件重用性、軟件維護等方面有所進步,可以顯著提高軟件開發(fā)的效率。程序設(shè)
16、計模式:“數(shù)據(jù)結(jié)構(gòu)算法” 在軟件設(shè)計和實現(xiàn)過程中,采用自頂向下、逐步細化的模塊化程序設(shè)計原則。 在代碼編寫時,采用順序、選擇、循環(huán)三種基本控制結(jié)構(gòu),避免使用GOTO語句。322.面向?qū)ο蟪绦蛟O(shè)計 將問題分解為對象,對象的數(shù)據(jù)屬性,作用于數(shù)據(jù)的操作方法,將屬性和方法封裝成一個整體,供程序設(shè)計者使用。對象之間的相互作用通過消息傳遞來實現(xiàn)。程序設(shè)計模式:“對象消息”。面向?qū)ο蟮姆纸馔怀觯鹤鍪裁??大量的工作由相?yīng)的對象來完成,程序員在應(yīng)用程序中只需說明要求對象完成的任務(wù)。 結(jié)構(gòu)化程序設(shè)計的分解突出:如何做?強調(diào)代碼的功能是如何得以完成。面向?qū)ο蟮某绦蛟O(shè)計語言有: C+、Java、Visual Basi
17、c等 。3311.4 常用程序設(shè)計語言1. FORTRAN語言世界上最早出現(xiàn)的高級程序設(shè)計語言,用于科學(xué)計算。從1954年推出的FORTRAN起,版本不斷更新,功能不斷增強,結(jié)構(gòu)化程度提高,使古老的語言保持旺盛的生命力,最流行的版本是FORTRAN 77,目前使用FORTRAN 90。FOTRAN90具有Pascal語言的特征,引入了類型、遞歸、指針、動態(tài)數(shù)組等概念。 342. COBOL語言1959年開發(fā)出來,主要用于商業(yè)數(shù)據(jù)處理。80年代后隨著數(shù)據(jù)庫的廣泛應(yīng)用,該語言使用面減少,目前銀行系統(tǒng)還較多采用COBOL語言開發(fā)。COBOL程序很象寫英文文章,要完成同樣功能的程序是其他語言的兩倍長。
18、再簡單的程序都由4個部組成:標識部(IDENTIFICATION)描述程序環(huán)境部(ENVIRONMENT)描述運行程序的計算機系統(tǒng)數(shù)據(jù)部(DATA)描述程序中所有數(shù)據(jù)的格式程序部(PROCEDURE)是程序的主體353. Pascal語言1968年開發(fā)出來,Pascal語言是一種通用的編程語言,最大的優(yōu)點是語法嚴謹、豐富的數(shù)據(jù)類型、結(jié)構(gòu)化編程概念,成為在C語言問世前,風(fēng)靡全球、最受歡迎的語言之一,尤其適合于教學(xué)和應(yīng)用軟件的開發(fā)。80年代,隨著C語言的流行, Pascal語言走向了衰落。目前,在商業(yè)上僅有Inprise公司(即原Borland)仍在開發(fā)Pascal語言系統(tǒng)Delphi,它用了面向
19、對象與軟件組件的概念,用于開發(fā)商用軟件。364. BASIC語言1964年在FOTRAN語言的基礎(chǔ)上開發(fā)的,是最容易學(xué)習(xí)的語言之一。常用的BASIC語言版本有:BASIC、GWBASIC、Turbo BASIC、Quick BASIC、QBASIC、Visual BASIC。1991年微軟公司推出了基于Windows環(huán)境的Visual Basic1.0版,目前最流行的是6.0版,網(wǎng)絡(luò)功能更強的是VB.net。Visual Basic在語法結(jié)構(gòu)上同C、Pascal相似,采用可視化界面設(shè)計、事件驅(qū)動的編程機制和基于對象的程序設(shè)計方法,有利于軟件的開發(fā)和維護,極其易于被非計算機專業(yè)人員掌握使用。375. C與C+語言1972年貝爾實驗室設(shè)計、開發(fā)了C語言,當時主要用于編寫Unix操作系統(tǒng)的。C語言功能豐富、使用靈活、簡潔明了、編譯產(chǎn)生的代碼短、執(zhí)行速度快、可移植性強;C語言具有與機器硬件打交道的底層處理能力。可以用來開發(fā)系統(tǒng)軟件,和應(yīng)用軟件。1980年貝爾實驗室對C語言進行了擴充,加入了面向?qū)ο蟮母拍?,并?983年改名為C+。目前主要的C+語言開發(fā)工具有Inprise公司的C+ Builder、Borland C+,微軟公司的Visual C+、C#和Unix系統(tǒng)的GNU C+。 386. Jav
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 1 A new start:Developing ideas ③ 教學(xué)設(shè)計 2024-2025學(xué)年外研版(2024年)英語七年級 上冊
- 江蘇省如皋市薛窯中學(xué)高中信息技術(shù) 4.2.2表格數(shù)據(jù)的圖形化教學(xué)實錄 教科版必修1
- Unit 5 Fun Clubs第三課時 Grammar Focus 教學(xué)設(shè)計-2024-2025學(xué)年人教版七年級英語上冊
- 第4課《用圖表呈現(xiàn)數(shù)據(jù)》教學(xué)設(shè)計-2024-2025學(xué)年青島版(2024)小學(xué)信息技術(shù)第四冊
- 互聯(lián)網(wǎng)行業(yè)法規(guī)政策及監(jiān)管分析
- 中醫(yī)經(jīng)絡(luò)養(yǎng)生術(shù)
- 中西點心對比與交流
- 人事工作在組織發(fā)展中的作用研究
- 中醫(yī)藥在中醫(yī)理論指導(dǎo)下的應(yīng)用
- 河北省石家莊市贊皇縣第二中學(xué)八年級地理下冊教學(xué)設(shè)計
- 雷鋒叔叔你在哪里評課稿
- 《IP地址和域名》-高中信息技術(shù)人教-中圖版(2019)必修2
- (完整word版)高考英語作文練習(xí)紙(標準答題卡)
- 中南大學(xué)湘雅醫(yī)院進修匯報演示文稿
- 《藝術(shù)學(xué)概論考研》課件藝術(shù)本體論-模仿論
- 南站二期標識設(shè)計變更003精神堡壘施工圖
- 電廠防腐涂裝培訓(xùn)ppt課件
- 履帶-輪式爬樓梯電動輪椅設(shè)計【帶圖紙】
- 設(shè)計費投標報價表
- 全礦井風(fēng)量測定及風(fēng)表操作
- 中國歷朝歷代地圖大全
評論
0/150
提交評論