程序設(shè)計(jì)和基本流程_第1頁(yè)
程序設(shè)計(jì)和基本流程_第2頁(yè)
程序設(shè)計(jì)和基本流程_第3頁(yè)
程序設(shè)計(jì)和基本流程_第4頁(yè)
程序設(shè)計(jì)和基本流程_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

程序設(shè)計(jì)和基本流程演示文稿當(dāng)前1頁(yè),總共36頁(yè)。(優(yōu)選)程序設(shè)計(jì)和基本流程當(dāng)前2頁(yè),總共36頁(yè)。1.1.1程序設(shè)計(jì)語(yǔ)言的發(fā)展歷史機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過(guò)程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加

10010000減用助記符號(hào)描述的指令系統(tǒng)如ADDA,B程序設(shè)計(jì)是數(shù)據(jù)被加工的過(guò)程客觀世界可以分類,對(duì)象是類的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過(guò)發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對(duì)象馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲(chǔ)器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU面向機(jī)器的語(yǔ)言當(dāng)前3頁(yè),總共36頁(yè)。5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90程序設(shè)計(jì)語(yǔ)言發(fā)展時(shí)間表當(dāng)前4頁(yè),總共36頁(yè)。1.1.2程序的基本構(gòu)成例1.1第一個(gè)程序Hello,World!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){printf(“Hello,World!”);}注釋編譯預(yù)處理函數(shù)語(yǔ)句輸出:Hello,World!當(dāng)前5頁(yè),總共36頁(yè)。/*例1.2計(jì)算a和b的和*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;

a=10;

b=24;

sum=add(a,b);

printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;

z=x+y;

return(z);}運(yùn)行結(jié)果:sum=34函數(shù)語(yǔ)句預(yù)處理命令注釋

程序的基本構(gòu)成當(dāng)前6頁(yè),總共36頁(yè)。格式特點(diǎn)習(xí)慣用小寫字母,大小寫敏感一般不使用行號(hào),無(wú)程序行概念可使用空行和空格常用鋸齒形書寫格式main(){inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}printf(“%d\n”,sum);}優(yōu)秀程序員的素質(zhì):使用TAB縮進(jìn){}對(duì)齊有足夠的注釋有合適的空行望文知義的起名風(fēng)格1.1.2程序的基本構(gòu)成當(dāng)前7頁(yè),總共36頁(yè)。結(jié)構(gòu)組成函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開(kāi)始,在main中結(jié)束,其它函數(shù)通過(guò)嵌套調(diào)用得以執(zhí)行。程序語(yǔ)句程序由語(yǔ)句組成用“;”作為語(yǔ)句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/非法編譯預(yù)處理命令1.1.2程序的基本構(gòu)成當(dāng)前8頁(yè),總共36頁(yè)。編輯鏈接編譯執(zhí)行程序代碼的錄入,生成源程序*.c語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序*.exe1.1.3程序的編制及運(yùn)行步驟當(dāng)前9頁(yè),總共36頁(yè)。第一章程序設(shè)計(jì)和基本流程1.2.1為什么要將程序模塊化1.2.2模塊化的程序設(shè)計(jì)思想1.2.3程序的功能模塊圖§1.2功能模塊圖當(dāng)前10頁(yè),總共36頁(yè)。1.2.1為什么要將程序模塊化當(dāng)前11頁(yè),總共36頁(yè)。結(jié)構(gòu)化的程序設(shè)計(jì)方法:

自頂向下、逐步求精、模塊化

(1)每天的日程

(2)一臺(tái)大型的機(jī)器的制作

(3)一個(gè)軟件開(kāi)發(fā)公司的架構(gòu)

(4)一個(gè)機(jī)器人的行走

(5)打印一個(gè)較為復(fù)雜的圖案

(6)QQ的實(shí)例

1.2.2模塊化程序設(shè)計(jì)的思想當(dāng)前12頁(yè),總共36頁(yè)。功能模塊圖是軟件工程過(guò)程中的一個(gè)重要環(huán)節(jié),它將顯示出工程所要實(shí)現(xiàn)的各種功能,并分類,然后軟件工程師根據(jù)功能模塊圖來(lái)具體實(shí)現(xiàn)這些功能(通過(guò)代碼)。1.2.3功能模塊圖當(dāng)前13頁(yè),總共36頁(yè)。第一章程序設(shè)計(jì)和基本流程1.3.1程序=算法+數(shù)據(jù)結(jié)構(gòu)1.3.2算法及程序的基本結(jié)構(gòu)1.3.3什么是數(shù)據(jù)結(jié)構(gòu)§1.3算法和數(shù)據(jù)結(jié)構(gòu)當(dāng)前14頁(yè),總共36頁(yè)。一個(gè)程序應(yīng)包括兩個(gè)方面的內(nèi)容:對(duì)數(shù)據(jù)的描述:數(shù)據(jù)結(jié)構(gòu)(datastructure)對(duì)操作的描述:算法(algorithm)著名計(jì)算機(jī)科學(xué)家沃思提出一個(gè)公式:程序=數(shù)據(jù)結(jié)構(gòu)+算法

數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+語(yǔ)言工具完整的程序設(shè)計(jì)應(yīng)該是:1.3.1程序=算法+數(shù)據(jù)結(jié)構(gòu)當(dāng)前15頁(yè),總共36頁(yè)。1.3.2算法及程序的基本結(jié)構(gòu)1.算法:計(jì)算機(jī)求解某一問(wèn)題而采用的具體方法、步驟算法的評(píng)價(jià)標(biāo)準(zhǔn):正確、高效、結(jié)構(gòu)性好⒉算法描述:描述算法的方法多種多樣。歸納為兩大類:①文字易懂、繁瑣、不直觀②圖形(符號(hào))直觀、簡(jiǎn)單3.常用的算法描述方法

自然語(yǔ)言描述偽碼流程圖、N-S圖(盒圖)當(dāng)前16頁(yè),總共36頁(yè)。1.3.2算法及程序的基本結(jié)構(gòu)順序結(jié)構(gòu):從前向后順序執(zhí)行程序。選擇結(jié)構(gòu):根據(jù)判斷條件的結(jié)果選擇執(zhí)行程序。

由選擇結(jié)構(gòu)派生出的多分支選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu):根據(jù)條件反復(fù)的執(zhí)行某一段程序若干次當(dāng)型循環(huán)直到型循環(huán)

當(dāng)前17頁(yè),總共36頁(yè)。SlideNo.18結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)具有以下共同的特點(diǎn):只有一個(gè)入口;只有一個(gè)出口;結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到;結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。1.3.2算法及程序的基本結(jié)構(gòu)當(dāng)前18頁(yè),總共36頁(yè)。1.3.3什么是數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來(lái)更高的運(yùn)行或者存儲(chǔ)效率。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)當(dāng)前19頁(yè),總共36頁(yè)。第一章程序設(shè)計(jì)和基本流程1.4.1為什么使用流程圖1.4.2流程圖的組成和畫法1.4.3流程圖的改進(jìn):N-S盒圖§1.4流程圖當(dāng)前20頁(yè),總共36頁(yè)。自然語(yǔ)言就是日常使用的語(yǔ)言,漢語(yǔ)或英語(yǔ)或其它語(yǔ)言。自然語(yǔ)言表示通俗易懂,但文字冗長(zhǎng),容易出現(xiàn)“歧義性”自然語(yǔ)言表示的含義不嚴(yán)格,要根據(jù)上下文才能判斷其正確含義。描述包含分支和循環(huán)的算法時(shí)也不很方便。因此,除了那些很簡(jiǎn)單的問(wèn)題外,程序設(shè)計(jì)一般不用自然語(yǔ)言描述算法。1.4.1為什么使用流程圖當(dāng)前21頁(yè),總共36頁(yè)。例1.3:有兩個(gè)存儲(chǔ)單元a和b,要求將它們的值互換。

分析:按存儲(chǔ)器的性質(zhì),如果將單元a的值直接送到單元b中,那么就會(huì)覆蓋掉b原來(lái)的內(nèi)容,因此,需要借助一個(gè)臨時(shí)單元c來(lái)交換。

具體算法用自然語(yǔ)言表述如下:步驟1:將單元a的值送給單元c;步驟2:將單元b的值送給單元a;步驟3:將單元c的值送給單元b。1.4.1為什么使用流程圖當(dāng)前22頁(yè),總共36頁(yè)。流程圖通常采用一些幾何圖形來(lái)代表各種類型的操作,在圖形內(nèi)標(biāo)明文字或符號(hào)來(lái)表示操作的內(nèi)容,并用箭頭來(lái)表示操作的順序。用流程圖表示算法,直觀形象,易于理解.1.4.1為什么使用流程圖當(dāng)前23頁(yè),總共36頁(yè)。起止框輸入/輸出框判斷框處理框流程線連接點(diǎn)1.4.2流程圖的組成和畫法當(dāng)前24頁(yè),總共36頁(yè)。

ABPAB選擇結(jié)構(gòu):根據(jù)判斷條件的結(jié)果選擇執(zhí)行程序。順序結(jié)構(gòu):從前向后順序執(zhí)行程序算法三種基本結(jié)構(gòu)的流程圖畫法1.4.2流程圖的組成和畫法當(dāng)前25頁(yè),總共36頁(yè)。由選擇結(jié)構(gòu)派生出的多分支選擇結(jié)構(gòu):A1A2AiAnk=k1k=k2k=kik=knkB1.4.2流程圖的組成和畫法當(dāng)前26頁(yè),總共36頁(yè)。循環(huán)結(jié)構(gòu):根據(jù)條件反復(fù)的執(zhí)行某一段程序若干次。PA真假

直到型循環(huán)結(jié)構(gòu):PA真假當(dāng)型循環(huán)結(jié)構(gòu)1.4.2流程圖的組成和畫法當(dāng)前27頁(yè),總共36頁(yè)。例1.4:求1+2+3+4+…+10用流程圖進(jìn)行描述。n+1=>n1=>ns+n=>s0=>sn≤10輸出s是否1.4.2流程圖的組成和畫法當(dāng)前28頁(yè),總共36頁(yè)。針對(duì)流程圖存在的缺點(diǎn),I.Nassi和B.Shneiderman提出了結(jié)構(gòu)化程序設(shè)計(jì)的流程圖,稱為N-S圖,更能體現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)的思想。推薦使用N-S圖。

N-S圖完全去掉了流程線,算法的所有處理步驟都寫在一個(gè)大矩形框內(nèi)(表示簡(jiǎn)單、符合結(jié)構(gòu)化思想)(象堆積木)1.4.3流程圖的改進(jìn):N-S盒圖由于流程圖允許使用箭頭隨意跳轉(zhuǎn),對(duì)表示算法的層次結(jié)構(gòu)非常不利,且流程圖占的篇幅較大,作圖工作量也很大。

當(dāng)前29頁(yè),總共36頁(yè)。1.4.3流程圖的改進(jìn):N-S盒圖順序結(jié)構(gòu):從前向后順序執(zhí)行程序選擇結(jié)構(gòu):根據(jù)判斷條件的結(jié)果選擇執(zhí)行程序。循環(huán)結(jié)構(gòu):根據(jù)條件反復(fù)的執(zhí)行某一段程序若干次。當(dāng)前30頁(yè),總共36頁(yè)。0s1nn≤10n+ssn+1n

輸出s1.4.3流程圖的改進(jìn):N-S盒圖n+1=>n1=>ns+n=>s0=>sn≤10輸出s是否N-S盒圖例1.4:求1+2+3+4+…+10用流程圖進(jìn)行描述。流程圖當(dāng)前31頁(yè),總共36頁(yè)。例1.5:求10個(gè)任意整數(shù)中的最大數(shù)用N-S圖進(jìn)行描述輸入max1nn<10

輸入xTx>max?Fxmaxn+1n輸出max1.4.3流程圖的改進(jìn):N-S盒圖當(dāng)前32頁(yè),總共36頁(yè)。例1.6:用*打印10X10的正方形1.4.3流程圖的改進(jìn):N-S盒圖當(dāng)前33頁(yè),總共36頁(yè)。第一章程序設(shè)計(jì)和基本流程1.5.1程序開(kāi)發(fā)的步驟1.5.2結(jié)構(gòu)化程序設(shè)計(jì)舉例§1.5程序開(kāi)發(fā)的基本過(guò)程當(dāng)前34頁(yè),總共36頁(yè)。應(yīng)用程序的設(shè)計(jì)和實(shí)現(xiàn)大致要經(jīng)過(guò)以下幾個(gè)步驟:

問(wèn)題描述(將要解決的問(wèn)題分析、描述清楚)概要設(shè)計(jì)(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論