《條件結(jié)構(gòu)與循環(huán)結(jié)構(gòu).ppt》由會員分享,可在線閱讀,更多相關(guān)《條件結(jié)構(gòu)與循環(huán)結(jié)構(gòu).ppt(49頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第一章 算法初步 1.1.2 程序框圖與算法的基本 邏輯結(jié)構(gòu)(二),1.用程序框、流程線及文字說明來表示算法的圖形稱為程序框圖,它使算法步驟顯得直觀、清晰、簡明.其中程序框有哪幾種基本圖形?它們表示的功能分別如何?,,,,,終端框 (起止框),輸入、輸出框,處理框 (執(zhí)行框),判斷框,流程線,2.順序結(jié)構(gòu)是任何一個算法都離不開的基本邏輯結(jié)構(gòu),在一些算法中,有些步驟只有在一定條件下才會被執(zhí)行,有些步驟在一定條件下會被重復執(zhí)行,這需要我們對算法的邏輯結(jié)構(gòu)作進一步探究.,條件結(jié)構(gòu)與循環(huán)結(jié)構(gòu),知識探究(一):算法的條件結(jié)構(gòu),思考1:在某些問題的算法中,有些步驟只有在一定條件下才會被執(zhí)行,算法的流
2、程因條件是否成立而變化.在算法的程序框圖中,由若干個在一定條件下才會被執(zhí)行的步驟組成的邏輯結(jié)構(gòu),稱為條件結(jié)構(gòu),用程序框圖可以表示為下面兩種形式:,你如何理解這兩種程序框圖的共性和個性?,思考2:判斷“以任意給定的3個正實數(shù)為三條邊邊長的三角形是否存在”的算法步驟如何設計?,第二步,判斷a+bc,b+ca,c+ab是否同時成立.若是,則存在這樣的三角形;否則,不存在這樣的三角形.,第一步,輸入三個正實數(shù)a,b,c.,思考3:你能畫出這個算法的程序框圖嗎?,知識探究(一):多重條件結(jié)構(gòu)的程序框圖,思考1:解關(guān)于x的方程ax+b=0的算法步驟如何設計?,第三步,判斷b是否為0.若是,則輸出“方程的解
3、為任意實數(shù)”;否則,輸出“方程無實數(shù)解”.,第一步,輸入實數(shù)a,b.,第二步,判斷a是否為0.若是,執(zhí)行第三步;否則,計算 ,并輸出x,結(jié)束算法.,思考2:該算法的程序框圖如何表示?,例1 設計一個求解一元二次方程ax2+bx+c=0的算法,并畫出程序框圖表示.,算法分析:,第一步,輸入三個系數(shù)a,b,c.,第二步,計算=b2-4ac.,第三步,判斷0是否成立.若是,則計 算 ;否則,輸出“方程沒有 實數(shù)根”,結(jié)束算法.,第四步,判斷=0是否成立.若是,則輸出 x1=x2=p,否則,計算x1=p+q,x2=p-q, 并輸出x1,x2.,程序框圖:,思考3:你能畫出求分段函數(shù)
4、 的值的程序框圖嗎?,知識探究(二):算法的循環(huán)結(jié)構(gòu),思考1:在算法的程序框圖中,由按照一定的條件反復執(zhí)行的某些步驟組成的邏輯結(jié)構(gòu),稱為循環(huán)結(jié)構(gòu),反復執(zhí)行的步驟稱為循環(huán)體,那么循環(huán)結(jié)構(gòu)中一定包含條件結(jié)構(gòu)嗎?,思考2:某些循環(huán)結(jié)構(gòu)用程序框圖可以表示為:,這種循環(huán)結(jié)構(gòu)稱為直到型循環(huán)結(jié)構(gòu),你能指出直到型循環(huán)結(jié)構(gòu)的特征嗎?,在執(zhí)行了一次循環(huán)體后,對條件進行判斷,如果條件不滿足,就繼續(xù)執(zhí)行循環(huán)體,直到條件滿足時終止循環(huán).,思考3:還有一些循環(huán)結(jié)構(gòu)用程序框圖可以表示為:,這種循環(huán)結(jié)構(gòu)稱為當型循環(huán)結(jié)構(gòu),你能指出當型循環(huán)結(jié)構(gòu)的特征嗎?,在每次執(zhí)行循環(huán)體前,對條件進行判斷,如果條件滿足,就執(zhí)行循環(huán)體,否則終止
5、循環(huán).,A,D,20,4某程序框圖如圖所示,若輸出的S57,則判斷框內(nèi)為(),Ak4? Bk5? Ck6? Dk7?,5如圖所示,程序的 輸出結(jié)果為S132, 則判斷框中應填(),Ai10? Bi11? Ci11? Di12?,根據(jù)條件把圖中的程序框圖補充完整,求區(qū)間1,1 000內(nèi)所有奇數(shù)的和, (1)處填________; (2)處填________,(1)SSi(2)ii2,完善程序框圖,A2 450 B2 500 C2 550 D2 652,7如果執(zhí)行下面的程序框圖,那么輸出的S等于(),程序框圖如圖所示, 則該程序框圖的功能 是___________________
6、____,讀懂程序框圖的功能,開始,結(jié)束,s=0,i=1,,i=i+1,i99?,輸出s,,否,是,設計一個算法的程序框圖的基本思路:,第二步,確定每個算法步驟所包含的邏輯結(jié)構(gòu), 并用相應的程序框圖表示.,第一步,用自然語言表述算法步驟.,第三步,將所有步驟的程序框圖用流程線連接 起來,并加上兩個終端框.,思考4:計算1+2+3++100的值可按如下過程進行:,第1步,0+1=1. 第2步,1+2=3. 第3步,3+3=6. 第4步,6+4=10. 第100步,4950+100=5050.,我們用一個累加變量S表示每一步的計算結(jié)果,即把S+i的結(jié)果仍記為S,從而把第i步表示為S=S+
7、i,其中S的初始值為0,i依次取1,2,,100,通過重復操作,上述問題的算法如何設計?,第四步,判斷i100是否成立.若是,則輸出S,結(jié)束算法;否則,返回第二步.,第一步,令i=1,S=0.,第二步,計算S+i,仍用S表示.,第三步,計算i+1,仍用i表示.,思考5:用直到型循環(huán)結(jié)構(gòu),上述算法的程序框圖如何表示?,思考6:用當型循環(huán)結(jié)構(gòu),上述算法的程序框圖如何表示?,,,求使12345+n100成立的最小自然數(shù)n的值,畫出程序框圖,例1、某工廠2005年的年生產(chǎn)總值為200萬元,技術(shù)革新后預計以后每年的年生產(chǎn)總值都比上一年增長5%.設計一個程序框圖,輸出預計年生產(chǎn)總值超過300萬元的最早年份
8、.,第三步,判斷所得的結(jié)果是否大于300. 若是,則輸出該年的年份; 否則,返回第二步.,第一步, 輸入2005年的年生產(chǎn)總值.,第二步,計算下一年的年生產(chǎn)總值.,算法分析:,(3)控制條件:當“a300”時終止循環(huán).,(1)循環(huán)體:設a為某年的年生產(chǎn)總值,t為年生產(chǎn)總值的年增長量,n為年份,則t=0.05a,a=a+t,n=n+1.,(2)初始值:n=2005,a=200.,循環(huán)結(jié)構(gòu):,程序框圖:,(3)條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序框圖各有兩種形式,相互對立統(tǒng)一.,條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的基本特征:,(1)程序框圖中必須有兩個起止框,穿插輸入、輸出框和處理框,一定有判斷框.,(2)循環(huán)結(jié)構(gòu)中包含條件結(jié)構(gòu),條件結(jié)構(gòu)中不含循環(huán)結(jié)構(gòu).,,,