電工與電子技術(shù)電子商務(wù)電子課件數(shù)據(jù)與計(jì)算(第4版)Ch5 語言與程序ppt_第1頁
電工與電子技術(shù)電子商務(wù)電子課件數(shù)據(jù)與計(jì)算(第4版)Ch5 語言與程序ppt_第2頁
電工與電子技術(shù)電子商務(wù)電子課件數(shù)據(jù)與計(jì)算(第4版)Ch5 語言與程序ppt_第3頁
電工與電子技術(shù)電子商務(wù)電子課件數(shù)據(jù)與計(jì)算(第4版)Ch5 語言與程序ppt_第4頁
電工與電子技術(shù)電子商務(wù)電子課件數(shù)據(jù)與計(jì)算(第4版)Ch5 語言與程序ppt_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、電子課件數(shù)據(jù)與計(jì)算(第4版)Ch5 語言與程序CS, ZJU八月 222Data and Computation 4Th, CS of ZJU, PHEI Chapter 5 語言、程序概述編程語言翻譯系統(tǒng)高級(jí)編程語言怎樣編寫程序軟件工程Data and Computation 4Th, CS of ZJU, PHEI 3Overview重要的概念計(jì)算的對(duì)象是數(shù)據(jù)數(shù)據(jù)有各種形,抽象表達(dá)計(jì)算需要程序?qū)崿F(xiàn)不同的數(shù)據(jù)有不同的程序?qū)崿F(xiàn)算法是程序的基礎(chǔ)程序需要計(jì)算機(jī)語言編寫通用語言專業(yè)語言程序和軟件盡管被認(rèn)為是類似,但有不同Data and Computation 4Th, CS of ZJU, PHE

2、I 4Review專業(yè)角度程序和軟件是兩個(gè)不同的概念程序設(shè)計(jì)過程是軟件開發(fā)的一部分程序加上該程序的文檔就是軟件程序設(shè)計(jì)需要使用程序設(shè)計(jì)語言顧名思義:Program and Programing/Coding可視化程序設(shè)計(jì)編程的過程、執(zhí)行結(jié)果都是基于GUI熟悉的節(jié)目、按鈕、工具欄Data and Computation 4Th, CS of ZJU, PHEI 5概述系統(tǒng)軟件解決計(jì)算機(jī)系統(tǒng)問題應(yīng)用軟件解決特定的應(yīng)用問題每個(gè)大學(xué)生都需要學(xué)習(xí)程序設(shè)計(jì)?NoBut:理解并描述問題,提出編程任務(wù) - Everyone!語言、程序的特點(diǎn)形式化 and 抽象Data and Computation 4Th,

3、 CS of ZJU, PHEI 6概述The truth計(jì)算機(jī)最終執(zhí)行的是機(jī)器代碼,二進(jìn)制指令程序范式編程風(fēng)格和模式由編程語言確定程序執(zhí)行某種任務(wù)的一系列操作步驟 - 類似于算法算法是通用表達(dá),程序與語言結(jié)合程序設(shè)計(jì)者選擇語言,實(shí)現(xiàn)算法Data and Computation 4Th, CS of ZJU, PHEI 7概述編程用計(jì)算機(jī)能夠“明白”的語言告訴計(jì)算機(jī)如何去做算法是通用表達(dá),而程序則是與具體的編程語言結(jié)合的程序=算法+語言特點(diǎn):抽象,形式化表達(dá)程序設(shè)計(jì)范式(Paradigm)范式就是模式和方法命令范式、面向?qū)ο笫健⒑瘮?shù)式和邏輯式目前程序都是可視化(Visible)的程序操作更加貼

4、近人的習(xí)慣-良好的用戶體驗(yàn)程序特定的數(shù)據(jù)集,測試程序測試這個(gè)數(shù)據(jù)集,以確定被測程序的正確性和可靠性Data and Computation 4Th, CS of ZJU, PHEI 8概述機(jī)器語言匯編語言高級(jí)語言面向過程面向?qū)ο笃渌呒?jí)語言函數(shù)型說明型超文本標(biāo)記語言-網(wǎng)絡(luò)編程關(guān)系數(shù)據(jù)庫語言組建(中間件)Data and Computation 4Th, CS of ZJU, PHEI 95.2 編程語言Truth:計(jì)算機(jī)只能執(zhí)行機(jī)器語言程序,因此任何語言編寫的程序,最終都要轉(zhuǎn)化為機(jī)器語言程序機(jī)器語言:二進(jìn)制代碼CPU都有一整套的專門操作-指令和指令系統(tǒng)指令與CPU類型相關(guān),例如 x86, x6

5、4Data and Computation 4Th, CS of ZJU, PHEI 10機(jī)器語言和匯編語言數(shù)據(jù)傳輸類指令:將數(shù)據(jù)源傳輸?shù)侥康模ù鎯?chǔ)器等)算術(shù)邏輯類指令:包括算術(shù)運(yùn)算和邏輯、比較運(yùn)算,操作對(duì)象是數(shù)據(jù)控制操作類指令:實(shí)現(xiàn)程序的不同執(zhí)行結(jié)構(gòu)有條件轉(zhuǎn)移和無條件轉(zhuǎn)移;Data and Computation 4Th, CS of ZJU, PHEI 11指令系統(tǒng)的主要類型MemoryInputOutput控制器ALUFor Example:2+3=5命令:輸入222命令:輸入333Write Write ReadRead235OutAdd+Data and Computation 4T

6、h, CS of ZJU, PHEI 12用文字符號(hào)來表示指令-助記符CPU所有指令助記符的集合以及使用規(guī)則匯編語言(Assemble Language)。例子(匯編語言的一條加法語句) ADD A,B將存儲(chǔ)地址A和B的內(nèi)容相加,結(jié)果存儲(chǔ)在A中特點(diǎn)匯編語言可讀性較二進(jìn)制指令好。必須熟悉計(jì)算機(jī)硬件結(jié)構(gòu)、指令系統(tǒng)和指令格式等面向計(jì)算機(jī)硬件的語言,程序移植性差匯編程序?qū)R編語言源程序翻譯為機(jī)器語言程序Data and Computation 4Th, CS of ZJU, PHEI 13匯編語言在Windows命令行狀態(tài)下執(zhí)行 debug(x64需要加裝DOSBox和Debug)輸入:-a-mov

7、ax,1 -mov cx,2 -add ax,cx 退出編程狀態(tài)(直接回車) -u 100 (以匯編語言顯示-上述窗口)Data and Computation 4Th, CS of ZJU, PHEI 14Example匯編語言(Assemble Language)就是CPU所有的指令助記符以及相應(yīng)的編程規(guī)則匯編語言源程序用匯編語言編寫的程序源程序需要翻譯為機(jī)器語言程序-匯編匯編程序完成匯編任務(wù)匯編程序是把匯編語言源程序轉(zhuǎn)換為機(jī)器語言程序的程序-awkward-sounding移植性較差匯編語言與硬件密切相關(guān)的語言Data and Computation 4Th, CS of ZJU, PH

8、EI 15匯編語言High Level Language 與機(jī)器硬件關(guān)系密切的,叫做 Low level, 如匯編語言與機(jī)器硬件幾乎無關(guān)的,叫做 High level介于之間的,叫做Middle Level 高級(jí)語言20世紀(jì)60年代表達(dá)形式更接近與被描述問題的語言(English)Now:面向過程、面向?qū)ο驡reat Progress!有程序員這個(gè)職業(yè)了!軟件成為專業(yè)、學(xué)科Data and Computation 4Th, CS of ZJU, PHEI 16高級(jí)語言命令型范式,強(qiáng)制性語言每個(gè)語句都是為完成一個(gè)特定的任務(wù)而對(duì)計(jì)算機(jī)發(fā)出執(zhí)行的命令BasicC有高級(jí)語言的優(yōu)點(diǎn),又有匯編語言的效率,

9、So -“中級(jí)語言”可操作對(duì)內(nèi)存單元,適合編寫硬件操作又要求處理速度的程序Fortran第一個(gè)高級(jí)語言:IBM公司在1957年開發(fā)的,解決數(shù)學(xué)計(jì)算 Cobol商用程序設(shè)計(jì)語言Ada語言美國國防部開發(fā)署(DoD)專用Data and Computation 4Th, CS of ZJU, PHEI 17面向過程的高級(jí)語言系統(tǒng)軟件開發(fā)首選語言應(yīng)用很廣Java C+ 源于C很多系統(tǒng)為C語言保留接口如各種統(tǒng)計(jì)軟件流行效率高表達(dá)簡潔適合表述和實(shí)現(xiàn)算法Data and Computation 4Th, CS of ZJU, PHEI 18C語言面向?qū)ο笮头妒絆bject-Oriented Paradigm

10、/Programming,OOPData and Computation 4Th, CS of ZJU, PHEI 19面向?qū)ο蟮木幊陶Z言什么是編程(從算法的角度)?最簡單的答案:定義數(shù)據(jù),對(duì)這些數(shù)據(jù)操作數(shù)據(jù)是屬性(Property),操作是行為(Action)什么是對(duì)象?一個(gè)駕駛者準(zhǔn)備開車(對(duì)象),需要對(duì)車(對(duì)象)了解些什么?Data and Computation 4Th, CS of ZJU, PHEI 20Whats OBJECT答案:需要了解車的基本數(shù)據(jù)(排量、郵箱、車長),了解車的操控(自動(dòng)、手動(dòng)、剎車、油門)數(shù)據(jù)是對(duì)象(車)的屬性,后者是車(對(duì)象)的行為And, 駕駛者不需要了解

11、車是如何開起來的如果一個(gè)程序被定義為Class-程序單元其內(nèi)有其屬性和行為使用者通過Class就可以使用程序單元Class(類),一個(gè)獨(dú)立的程序單元,包括屬性及行為Object通過Class定義,就可以使用Class的數(shù)據(jù)和操作不需要知道實(shí)現(xiàn)的細(xì)節(jié)面向?qū)ο蟮木幊陶Z言提供了定義對(duì)象、使用對(duì)象的語句Data and Computation 4Th, CS of ZJU, PHEI 21Class 和 Object另一個(gè)例子動(dòng)漫產(chǎn)品是類,給出其公共特性(材質(zhì)、產(chǎn)地)和行為(如售價(jià))Kitty、加菲貓、哆啦愛夢就是有這個(gè)動(dòng)畫產(chǎn)品的“對(duì)象”封裝(Encapsulation)類(對(duì)象)的屬性和操作構(gòu)成一個(gè)

12、獨(dú)立體Data and Computation 4Th, CS of ZJU, PHEI 22面向?qū)ο蟮奶攸c(diǎn)繼承(Inheritance)子類可以擁有父類的屬性和行為提高了軟件代碼的復(fù)用性多態(tài)性(Polymorphism)對(duì)象可以具有不同的行為多態(tài)是一種運(yùn)算特性,例如”(減,符號(hào))OOP擴(kuò)展了多態(tài)機(jī)制-方法可以有多種實(shí)現(xiàn)結(jié)構(gòu)設(shè)計(jì)提供了靈活性減少了信息冗余,提高了軟件的可擴(kuò)展性Max(a,b)Max(a,b,c)Max(a,b,c,d)Visual Basic簡稱VB,BASIC引入面向?qū)ο蟮脑O(shè)計(jì)方法已經(jīng)淡出Data and Computation 4Th, CS of ZJU, PHEI 23

13、常用的OOP語言Python可以通過發(fā)出命令執(zhí)行程序任務(wù)提供了大數(shù)據(jù)處理的許多功能JAVA基于CSun Microsystem公司開發(fā)純面向?qū)ο?、平臺(tái)無關(guān)、多線程、高安全性解決了困擾軟件界多年的軟件移植問題C+基于C語言的面向?qū)ο蟮臄U(kuò)展它在C語言的基礎(chǔ)上增加了面向?qū)ο蟪绦蛟O(shè)計(jì)的支持SQL 數(shù)據(jù)庫語言(Next Chapter)。Data and Computation 4Th, CS of ZJU, PHEI 24其他編程語言函數(shù)型語言主要有LISP和Scheme大數(shù)據(jù)平臺(tái)采用的程序設(shè)計(jì)方法源于此說明型語言 Prolog也叫邏輯語言,根據(jù)邏輯推理的原則回答問題人工智能語言超文本鏈接標(biāo)記語言(h

14、tml) 由一種格式標(biāo)記何超鏈接組成的“偽語言”主要用于網(wǎng)絡(luò)上的信息服務(wù)。翻譯程序本身也是程序,任務(wù)是把源程序翻譯為目標(biāo)程序翻譯程序功能解釋程序 - 同聲翻譯逐句翻譯,翻譯一句執(zhí)行一句(類型命令模式)編譯程序 - 書面翻譯源程序一次性翻譯成目標(biāo)程序代碼,生成可執(zhí)行文件編譯完成,程序就可以被單獨(dú)執(zhí)行Data and Computation 4Th, CS of ZJU, PHEI 25程序的程序-翻譯系統(tǒng)高級(jí)語言程序(源)機(jī)器語言程序(目)翻譯系統(tǒng)高級(jí)語言運(yùn)算數(shù)據(jù)類型語句編程工具,集成(編輯、調(diào)試)開發(fā)環(huán)境程序員更注重程序邏輯函數(shù)/方法Data and Computation 4Th, CS o

15、f ZJU, PHEI 26高級(jí)編程語言編程區(qū)輸入/輸出區(qū)編程文件瀏覽存儲(chǔ)器單元常量(Constant)常量在程序執(zhí)行過程中,固定不變的量常量兩種:文字常量(1,3.0)、符號(hào)常量(PI, MAX)變量(Variable)變量:可被改變的量,使用標(biāo)識(shí)符(變量名)標(biāo)記在內(nèi)存的位置程序只需要對(duì)這個(gè)變量進(jìn)行賦值、運(yùn)算即可變量:先定義后使用Maybe:使用變量前必須先給變量賦一個(gè)初值Data and Computation 4Th, CS of ZJU, PHEI 27數(shù)據(jù)類型數(shù)據(jù)存放在存儲(chǔ)器,標(biāo)識(shí)其存放位置標(biāo)識(shí)符(Label)命名運(yùn)算對(duì)象mX1,2,1301.0, 2.0, -0.05,A, a,

16、x, 9,基本數(shù)據(jù)類型: 整數(shù),實(shí)數(shù),字符Data and Computation 4Th, CS of ZJU, PHEI 28構(gòu)造數(shù)據(jù)類型構(gòu)造數(shù)據(jù)類型,派生數(shù)據(jù)類型基本類型+數(shù)據(jù)結(jié)構(gòu) 新的、復(fù)雜數(shù)據(jù)類型語句 Statement程序執(zhí)行的動(dòng)作,被翻譯程序翻譯成一條或幾條指令 賦值語句 x 3 按規(guī)則將一個(gè)值存入到變量名所代表的存儲(chǔ)單元中表達(dá)式語句: 不同(運(yùn)算符連接)表達(dá)式構(gòu)成的語句復(fù)合語句用大括號(hào)將多行語句定義為一個(gè)語句稱為復(fù)合語句(語句塊)程序?qū)?fù)合語句當(dāng)做一個(gè)語句進(jìn)行處理轉(zhuǎn)移語句: 著名的goto語句返回語句 子程序使用Return語句可以將運(yùn)算結(jié)果返回調(diào)用程序。輸入、輸出語句Data

17、 and Computation 4Th, CS of ZJU, PHEI 29基本語句實(shí)現(xiàn)分支結(jié)構(gòu)的語句根據(jù)條件決定程序下一步該執(zhí)行程序的哪一條語句或語句塊Data and Computation 4Th, CS of ZJU, PHEI 30分支語句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語句大多數(shù)高級(jí)語言有多種循環(huán)語句Data and Computation 4Th, CS of ZJU, PHEI 31循環(huán)語句(Loop)子程序,一段能夠完成某種功能的代碼函數(shù)(Function)- 大多數(shù)語言使用的名詞方法(Method) - 主要是Java使用的名詞Data and Computation 4Th, CS o

18、f ZJU, PHEI 32函數(shù)和方法主程序調(diào)用返回子程序函數(shù)/方法主程序調(diào)用參數(shù)實(shí)參( Actual parameter )子程序接收參數(shù)形參( Formal parameter )規(guī)則:實(shí)參和形參三個(gè)一致類型、數(shù)量、順序子程序的類型就是返回值的類型程序設(shè)計(jì)是一個(gè)系統(tǒng)過程通常把這個(gè)過程分為6個(gè)步驟問題的定義設(shè)計(jì)方案編碼測試編寫文檔運(yùn)行維護(hù)Data and Computation 4Th, CS of ZJU, PHEI 33怎樣編寫程序No.1清晰、明確的定義是解決問題過程中最重要的一步25% 30% and More幾個(gè)問題:程序目標(biāo)是什么?可能需要輸入哪些數(shù)據(jù)?數(shù)據(jù)具體的處理過程和要求是

19、什么?程序可能產(chǎn)生的數(shù)據(jù)輸出以及輸出形式是什么?Data and Computation 4Th, CS of ZJU, PHEI 34理解問題No.2 程序設(shè)計(jì)設(shè)計(jì)具體的解決方案關(guān)鍵-設(shè)計(jì)算法、合適的邏輯結(jié)構(gòu)確定程序范式,選擇編程技術(shù)(語言)程序運(yùn)行在網(wǎng)絡(luò)中還是單臺(tái)機(jī)器上如有舊的程序在運(yùn)行,新程序如何與之兼容No.3Coding!Data and Computation 4Th, CS of ZJU, PHEI 35程序設(shè)計(jì)和編碼調(diào)試已編好的程序找出程序中的邏輯錯(cuò)誤和語法錯(cuò)誤違反語法規(guī)則,就會(huì)發(fā)生語法錯(cuò)誤程序結(jié)果不對(duì),這是邏輯錯(cuò)誤程序測試測試程序中的錯(cuò)誤, 而不是使得程序中沒有錯(cuò)誤”。常用的

20、測試方法有:黑盒測Beta()版(測試版)白盒測-專業(yè)測試,輸入一組特意設(shè)計(jì)的數(shù)據(jù)讓程序執(zhí)行,測試程序是否按照設(shè)計(jì)流程要求執(zhí)行Data and Computation 4Th, CS of ZJU, PHEI 36尋找錯(cuò)誤:程序測試Grace Hoppe程序文檔設(shè)計(jì)文檔使用說明文檔形式有兩種:一種是在代碼行后面加注釋一種是按照一定規(guī)則專門編寫運(yùn)行與維護(hù)程序的安裝、系統(tǒng)配置對(duì)用戶的培訓(xùn)軟件維護(hù)Data and Computation 4Th, CS of ZJU, PHEI 37文檔、運(yùn)維程序開發(fā)到最后不再使用的時(shí)間ExampleWindows的版本更新,Windows 1.0Windows10查看你的微信版本?搜索一下,微信有多少個(gè)版本?And,版本維護(hù)?Data and Computation 4Th, CS of ZJU, PHEI 38軟件的生命周期時(shí)尚?Dispute:YESNO In factMost people are not suitable

溫馨提示

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

評(píng)論

0/150

提交評(píng)論