溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,qqbaobao負責整理代發布。如果您對本文檔版權有爭議請及時聯系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯系客服處理。
網站微信客服:wwwQQBAOBAO
展開
循環結構算法初步,步驟1步驟2(1)順序結構-----是由若干個依次執行的處理步驟組成的.這是任何一個算法都離不開的基本結構.,(2)條件結構---在一個算法中,經常會遇到一些條件的判斷,算法的流向根據條件是否成立有不同的流向.條件結構就是處理這種過程的結構.滿足條件?步驟A步驟B是否滿足條件?步驟A是否,練習鞏固1 看下面的程序框圖,分析算法的作用(1)開始結束輸入xy=3*x*x+4*x+5輸出y(2)開始結束輸入a,ban-1,或r=0?否是求n除以i的余數r循環結構---在一些算法中,也經常會出現從某處開始,按照一定條件,反復執行某一步驟的情況,這就是循環結構.反復執行的步驟稱為循環體.,是循環體滿足條件?否Until(直到型)循環循環結構分為兩種------當型和直到型.當型循環在每次執行循環體前對循環條件進行判斷,當條件滿足時執行循環體,不滿足則停止;(當條件滿足時反復執行循環體)直到型循環在執行了一次循環體之后,對控制循環條件進行判斷,當條件不滿足時執行循環體,滿足則停止.(反復執行循環體,直到條件滿足)循環體滿足條件?是否While(當型)循環,(2)注意:循環結構不能是永無終止的“死循環”,一定要在某個條件下終止循環,這就需要條件結構來作出判斷,因此,循環結構中一定包含條件結構.,第一步:給定一個大于2的整數n第二步:令i=1第三步:用i除n,得到余數r第四步:判斷“r=0”是否成立;若是,則輸出“i”第六步:判斷“i>n”是否成立,若是,結束算法;否則,返回第三步.設計一個算法,求出n(n>2)的所有因數。第五步:i的值增加1,仍用i表示,例1設計一算法,求和:1+2+3+…+100第一步:確定首數a,尾數b,項數n;第二步:利用公式“總和=(首數+尾數)×項數/2”求和;第三步:輸出求和結果。算法1:開始結束輸入a,b,nS=(a+b)*n/2輸出S,例3:設計一個計算1+2+3+……+100的值的算法,并畫出程序框圖.算法分析:第1步:0+1=1;第2步:1+2=3;第3步:3+3=6;第4步:6+4=10…………第100步:4950+100=5050.第(i-1)步的結果+i=第i步的結果各步驟有共同的結構:為了方便有效地表示上述過程,我們引進一個變量S來表示每一步的計算結果,從而把第i步表示為S=S+iS=0S=S+1S=S+2S=S+3…S=S+100,例1設計一算法,求和:1+2+3+…+100S=S+i怎么用程序框圖表示呢?3、i有什么作用?S呢?i=i+1S=S+iS=0S=S+1S=S+2S=S+3…S=S+100累加變量S來表示每一步的計算結果,從而把第i步表示為S=S+iS的初始值為0,i依次取1,2,…,100,由于i同時記錄了循環的次數,所以i稱為計數變量.,i=i+1S=S+i解決方法就是加上一個判斷,判斷是否已經加到了100,如果加到了則退出,否則繼續加。試分析兩種流程的異同點直到型結構當型結構S=S+ii=i+1是否S=S+ii=i+1否是i<=100?i>100?請填上判斷的條件。,結束S=S+ii=i+1i<=100?輸出S否是i=1,S=0開始步驟A步驟B思考:將步驟A和步驟B交換位置,結果會怎樣?能達到預期結果嗎?為什么?要達到預期結果,還需要做怎樣的修改?答:達不到預期結果;當i=100時,沒有退出循環,i的值為101加入到S中;修改的方法是將判斷條件改為i<100,程序框圖:開始i=1S=0S=S+ii=i+1i>100?是輸出S結束否直到型循環結構開始i=1S=0i≤100?是S=S+ii=i+1否輸出S結束當型循環結構,若將“i=1”改成“i=0”,則程序框圖怎么改?結束輸出Sum否是S=0開始結束輸出SS=0開始否是i=0i=0S=S+iS=S+ii=i+1i=i+1i>=100?i<100?,說明:一般地,循環結構中都有一個計數變量和累加變量.計數變量用于記錄循環次數,同時它的取值還用于判斷循環是否終止,這個變量的取值一般都含在執行或中止循環體的條件中。累加變量用于輸出結果.累加變量和計數變量一般是同步執行的,累加一次,記數一次.,結束輸出Si=0,S=0開始i=i+1S=S+ii>n?否是輸入n改進上面的算法,表示輸出1,1+2,1+2+3,…,1+2+3+…+(n-1)+n()的過程。,練習鞏固1、設計一算法,求積:1×2×3×…×100,畫出流程圖結束輸出Ai=0,A=1開始i=i+1A=A*ii>=100?否是思考:該流程圖與前面的例3中求和的流程圖有何不同?,例5某工廠2005年的年生產總值為200萬,技術革新以后每年的年生產總值比上一年增長5%。設計一個程序框圖,輸出預計年生產總值超過300萬元的最早年份。算法分析:第一步,輸入2005年的年生產總值。第二步,計算下一年的年生產總值。第三步,判斷所得的結果是否大于300.若是,則輸出該年的年份;否則,返回第二步,由于“第二步”是重復操作的步驟,所以可以用循環結構來實現。我們按照“確定循環體”“初始化變量”“設定循環控制條件”的順序來構造循環結構。(2)初始化變量:若將2005年的年生產總值堪稱計算的起始點,則n的初始值為2005,a的初始值為200.(3)設定循環控制條件:當“年生產總值超過300萬元”時終止循環,所以可通過判斷“a>300”是否成立來控制循環。(1)確定循環體:設a為某年的年生產總值,t為年生產總值的年增長量,n為年份,則循環體為,程序框圖:開始n=2005a=200t=0.05an=n+1a>300?是輸出n結束否a=a+t,小結1、循環結構的特點2、循環結構的框圖表示3、循環結構有注意的問題避免死循環的出現,設置好進入(結束)循環體的條件。當型和直到型重復同一個處理過程,作業:課本P20頁A組2;