s流程圖專業(yè)知識講座_第1頁
s流程圖專業(yè)知識講座_第2頁
s流程圖專業(yè)知識講座_第3頁
s流程圖專業(yè)知識講座_第4頁
s流程圖專業(yè)知識講座_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.1什么是算法1.2簡單算法舉例1.3算法特性1.4如何表達(dá)一種算法1.5構(gòu)造化程序設(shè)計辦法第1頁1.1什么是算法廣義地說,為處理一種問題而采取辦法和步驟,就稱為“算法”對同一種問題,能夠有不一樣解題辦法和步驟為了有效地進行解題,不但需要確保算法正確,還要考慮算法質(zhì)量,選擇合適算法第2頁1.1什么是算法計算機算法可分為兩大類別:數(shù)值運算算法非數(shù)值運算算法數(shù)值運算目標(biāo)是求數(shù)值解非數(shù)值運算包括面十分廣泛,最常見是用于事務(wù)管理領(lǐng)域第3頁1.2簡單算法舉例例求1×2×3×4×5能夠用最原始辦法進行:步驟1:先求1*2,得到成果2。步驟2:將步驟1得到乘積2再乘以3,得到成果6。步驟3:將6再乘以4,得24。步驟4:將24再乘以5,得120。這就是最后成果。例2.1求1×2×3×4×5×…×1000太繁瑣第4頁簡單算法舉例改善算法:設(shè)變量p為被乘數(shù)變量i為乘數(shù)用循環(huán)算法求成果第5頁S1:使p=1,或?qū)懗?

pS2:使i=2,或?qū)懗?

iS3:使p與i相乘,乘積仍放在變量p中,可表達(dá)為:p*i

pS4:使i值加1,即i+1

iS5:假如i不大于5,返回重新執(zhí)行S3;不然,算法結(jié)束最后得到p值就是5!值若是1000,求什么?第6頁S1:使p=1,或?qū)懗?

pS2:使i=2,或?qū)懗?

iS3:使p與i相乘,乘積仍放在變量p中,可表達(dá)為:p*i

pS4:使i值加1,即i+1

iS5:假如i不大于5,返回重新執(zhí)行S3;不然,算法結(jié)束最后得到p值就是5!值若求1×3×5×7×9×1133221111相稱于i≦11第7頁

例有50個學(xué)生,要求將成績在80分以上學(xué)生學(xué)號和成績輸出。用ni代表第i個學(xué)生學(xué)號,gi表達(dá)第i個學(xué)生成績S1:1

iS2:假如gi≥80,則輸出ni和gi,不然不輸出S3:i+1

iS4:假如i≤50,返回到步驟S2,繼續(xù)執(zhí)行,不然,算法結(jié)束第8頁例求規(guī)律:①第1項分子分母都是1②第2項分母是2,后來每一項分母子都是前一項分母加1③笫2項前運算符為“-”,后一項前面運算符都與前一項前運算符相反第9頁例2.4求S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1)*signS5:term=sign*(1/deno)S6:sum=sum+termS7:deno=deno+1S8:若deno≤100返回S4;不然算法結(jié)束sign—目前項符號term—目前項值sum—目前各項和deno—目前項分母-1-1/21-1/23滿足,返回S4第10頁1.2如何表達(dá)一種算法常用辦法有:自然語言傳統(tǒng)流程圖構(gòu)造化流程圖偽代碼……第11頁例.雞兔同籠問題已知雞兔總頭數(shù)為h(head),總腳數(shù)為f(feet),求雞兔各有多少只?解:(1)構(gòu)造數(shù)學(xué)模型設(shè)雞為x只,兔為y只x+y=h①2x+4y=f②則

用自然語言表達(dá)算法第12頁(2)找出求x,y詳細(xì)公式4

②:2x=4h

f②

2

①:2y=f

2h(3)確定算法a.輸入h,fb.按

計算x,yc.輸出x,y第13頁判斷一種數(shù)n(n≥3)是否素數(shù):將n作為被除數(shù),將2到(n-1)各個整數(shù)先后作為除數(shù),假如都不能被整除,則n為素數(shù)S1:輸入n值S2:i=2(i作為除數(shù))S3:n被i除,得余數(shù)rS4:假如r=0,表達(dá)n能被i整除,則輸出n“不是素數(shù)”,算法結(jié)束;不然執(zhí)行S5S5:i+1

iS6:假如i≤n-1,返回S3;不然輸出n“是素數(shù)”,然后結(jié)束。第14頁前面介紹算法是用自然語言表達(dá)用自然語言表達(dá)通俗易懂,但文字冗長,容易出現(xiàn)歧義性用自然語言描述包括分支和循環(huán)算法,不很方便除了很簡單問題外,一般不用自然語言第15頁小結(jié):流程圖符號橢圓菱形1.起止框2.執(zhí)行框3.連接點4.輸入輸出框5.判斷框6.流程線7.注釋框第16頁2.4.2用流程圖表達(dá)算法流程圖是用某些圖框來表達(dá)多種操作用圖形表達(dá)算法,直觀形象,易于理解起止框輸入輸出框處理框判斷框流程線連接點注釋框③①②①③②③位置不夠避免交叉第17頁

例用流程圖表達(dá)。求1×2×3×4×5S1:使p=1,或?qū)懗?

pS2:使i=2,或?qū)懗?

iS3:使p與i相乘,乘積仍放在變量p中,可表達(dá)為:p*i

pS4:使i值加1,即i+1

iS5:假如i不大于5,返回重新執(zhí)行S3;不然,算法結(jié)束最后得到p值就是5!值第18頁

例用流程圖表達(dá)。求1×2×3×4×5假如需要將最后成果輸出:1ti>5開始2it*iti+1i結(jié)束NY第19頁

例算法用流程圖表達(dá)。求1×2×3×4×5假如需要將最后成果輸出:1t輸出ti>5開始2it*iti+1i結(jié)束NY第20頁

例有50個學(xué)生,要求將成績在80分以上學(xué)生學(xué)號和成績輸出。用ni代表第i個學(xué)生學(xué)號,gi表達(dá)第i個學(xué)生成績S1:1

iS2:假如gi≥80,則輸出ni和gi,不然不輸出S3:i+1

iS4:假如i≤50,返回到步驟S2,繼續(xù)執(zhí)行,不然,算法結(jié)束第21頁1ii>50開始i+1i結(jié)束NY輸入ni、gi1i開始gi≧80輸出ni、gii+1ii>50NYYN假如包括輸入數(shù)據(jù)部分①第22頁1ii>50開始i+1i結(jié)束NY輸入ni、gi1igi≧80輸出ni、gii+1ii>50NYYN假如包括輸入數(shù)據(jù)部分①①第23頁

例判斷素數(shù)算法用流程圖表達(dá)。對一種大于或等于3正整數(shù),判斷它是不是一種素數(shù)。第24頁NY輸出n是素數(shù)結(jié)束開始輸入n2in%irr=0i+1ii>輸出n是素數(shù)YN第25頁通過以上幾個例子能夠看出流程圖是表達(dá)算法較好工具一種流程圖包括下列幾部分:(1)表達(dá)對應(yīng)操作框(2)帶箭頭流程線(3)框內(nèi)外必要文字說明流程線不要忘掉畫箭頭,不然難以判定各框執(zhí)行次序第26頁1.3三種基本構(gòu)造和改善流程圖1.傳統(tǒng)流程圖弊端傳統(tǒng)流程圖用流程線指出各框執(zhí)行次序,對流程線使用沒有嚴(yán)格限制使用者能夠毫不受限制地使流程隨意地轉(zhuǎn)來轉(zhuǎn)去,使人難以理解算法邏輯第27頁構(gòu)造化程序只有三種基本構(gòu)造次序構(gòu)造:語句按書寫次序順次執(zhí)行。分支構(gòu)造:根據(jù)條件成立是否有選擇地執(zhí)行。循環(huán)構(gòu)造:根據(jù)條件成立是否反復(fù)執(zhí)行。第28頁1.4.3三種基本構(gòu)造和改善流程圖2.三種基本構(gòu)造(1)次序構(gòu)造AB第29頁次序構(gòu)造開始結(jié)束語句B輸入輸出語句A第30頁2.三種基本構(gòu)造(2)選擇構(gòu)造ABYpNAYpN第31頁2.分支構(gòu)造條件結(jié)束輸出開始語句B輸入語句A不成立成立條件結(jié)束輸出開始輸入語句A不成立成立第32頁2.三種基本構(gòu)造(3)循環(huán)構(gòu)造①當(dāng)型循環(huán)構(gòu)造AYp1NYx<5N0x輸出x值x+1x輸出1,2,3,4,5第33頁2.三種基本構(gòu)造(3)循環(huán)構(gòu)造②直到型循環(huán)構(gòu)造AYp2NYx≧5N0x輸出x值x+1x輸出1,2,3,4,5第34頁3.循環(huán)構(gòu)造條件結(jié)束輸出開始輸入語句不成立成立結(jié)束輸出開始輸入語句條件不成立成立While型循環(huán)Do-While型循環(huán)第35頁以上三種基本構(gòu)造,有下列共同特點:(1)只有一種入口(2)只有一種出口一種判斷框有兩個出口一種選擇構(gòu)造只有一種出口(3)構(gòu)造內(nèi)每一部分都有機會被執(zhí)行到。也就是說,對每一種框來說,都應(yīng)當(dāng)有一條從入口到出口途徑通過它(4)構(gòu)造內(nèi)不存在“死循環(huán)”第36頁由三種基本構(gòu)造派生出來構(gòu)造:ANp2YB根據(jù)體現(xiàn)式p值進行選擇ABp=p1p=p2…MNp=pmp=pn第37頁1.3用N-S流程圖表達(dá)算法N-S流程圖用下列流程圖符號:ABABYNpA當(dāng)p1成立A直到p2成立次序構(gòu)造選擇構(gòu)造循環(huán)構(gòu)造(當(dāng)型)循環(huán)構(gòu)造(直到型)第38頁

例用流程圖表達(dá)。求1×2×3×4×5S1:使p=1,或?qū)懗?

pS2:使i=2,或?qū)懗?

iS3:使p與i相乘,乘積仍放在變量p中,可表達(dá)為:p*i

pS4:使i值加1,即i+1

iS5:假如i不大于5,返回重新執(zhí)行S3;不然,算法結(jié)束最后得到p值就是5!值第39頁例將例2.1求5!算法用N-S圖表達(dá)。直到i>51t輸出t2it*iti+1i第40頁例2.4求S1:sign=1S2:sum=1S3:deno=2S4:sign=(-1)*signS5:term=sign*(1/deno)S6:sum=sum+termS7:deno=deno+1S8:若deno≤100返回S4;不然算法結(jié)束sign—目前項符號term—目前項值sum—目前各項和deno—目前項分母第41頁例用N-S圖表達(dá)。求直到deno>100deno+1deno輸出sum1sum1sign2deno(-1)*signsignsign*(1/deno)termsum+termsum第42頁一種構(gòu)造化算法是由某些基本構(gòu)造次序組成在基本構(gòu)造之間不存在向前或向后跳轉(zhuǎn),流程轉(zhuǎn)移只存在于一種基本構(gòu)造范圍之內(nèi)一種非構(gòu)造化算法能夠用一種等價構(gòu)造化算法替代,其功能不變假如一種算法不能分解為若干個基本構(gòu)造,則它必然不是一種構(gòu)造化算法第43頁

例2.15將例2.5鑒別素數(shù)算法用N-S流程圖表達(dá)。例2.10流程圖不是由三種基本構(gòu)造組成循環(huán)有兩個出口,不符合基本構(gòu)造特點無法直接用N-S流程圖三種基本構(gòu)造符號來表達(dá)先作必要變換第44頁NY輸出n是素數(shù)結(jié)束開始輸入n2in%irr=0i+1ii>輸出n是素數(shù)YN第45頁NY開始輸入n0w2in%irr=0i+1ii≦和w=0YN1w①輸出n是素數(shù)結(jié)束w=0①輸出n不是素數(shù)第46頁輸入nr=0是否0w2in%ir1wi+1i直到i>或w≠0w=0是否輸出n是素數(shù)輸出n不是素數(shù)第47頁1.4用偽代碼表達(dá)算法偽代碼是用介于自然語言和計算機語言之間文字和符號來描述算法用偽代碼寫算法并無固定、嚴(yán)格語法規(guī)則,能夠用英文,也能夠中英文混用第48頁代碼特點:接近于程序代碼7種偽代碼符號:算法名稱Procedure(過程):不需要返回值Function(函數(shù)):需要返回值例如:ProcedureHanoi_Tower()FunctionFac(x)算法名稱背面能夠帶括號也能夠不帶括號第49頁2.指令序列Begin指令序列;End或者:{指令序列;/}第50頁3.輸入/輸出輸入:用Input表達(dá);輸出:用Output或Return表達(dá)4.分支選擇(1)If<條件>Then{指令/}(2)If<條件>Then{指令1/}else{指令2/}第51頁5.賦值

:=或

例如:x:=x+1yx*x6.循環(huán)計數(shù)式循環(huán)

For變量:=初值To終值{指令/}(2)條件式循環(huán)

While(條件)do{指令/}第52頁7.算法結(jié)束關(guān)鍵字End背面加上算法名稱,表達(dá)算法結(jié)束,是算法最后一句。例如:EndHanoi_Towe

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論