結(jié)構化程序設計(1)_第1頁
結(jié)構化程序設計(1)_第2頁
結(jié)構化程序設計(1)_第3頁
結(jié)構化程序設計(1)_第4頁
結(jié)構化程序設計(1)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學部門:計算機教研室青海建院教案表授課班級學科名稱c語言程序設計授課時間講授題目結(jié)構化程序設計教學內(nèi)容1. 結(jié)構化程序設計思想的產(chǎn)生2. 結(jié)構化程序設計的三種基本結(jié)構3. 認識流程圖4. 算法教學目的 要求1. 了解結(jié)構化程序設計思想2. 掌握結(jié)構化程序設計的三種基本結(jié)構3. 認識流程圖4. 掌握算法的描述教學重點1. 結(jié)構化程序設計思想2. 三種基木結(jié)構3. 三種基木結(jié)構的流程4. 算法的描述教學難點1. 結(jié)構化程序設計思想2. 三種基木結(jié)構3. 三種基木結(jié)構的流程4. 算法的描述課程類型理論課教學方法講授法教具黑板作業(yè)布置p29思考與習題時間分配2課時課后小結(jié)審閱意見主講教師:馬國峰年 月

2、 口預備知識【算法】一個程序應包括: 對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(data structure)。 對操作的描述。即操作步驟,也就是算法(algorithm)onikiklaus wirth提出的公式:數(shù)據(jù)結(jié)構+算法二程序教材認為:程序二算法+數(shù)據(jù)結(jié)構+程序設計方法+語言工具和環(huán)境這4個方面是一個程序涉及人員所應具備的知識。本課程的目的是使同學知道怎樣編寫一個c程序,進行編寫程序的初步訓練,因此, 只介紹算法的初步知識。1-算法的概念做任何事情都有一定的步驟。為解決一個問題而采取的方法和步驟,就稱為算法。 計算機算法:計算機能夠執(zhí)行的算法。 計算機算法可

3、分為兩大類: 數(shù)值運算算法:求解數(shù)值; 非數(shù)值運算算法:事務管理領域。2. 簡單算法舉例【例i】求lx2x3x4x5o最原始方法:步驟1:先求1x2,得到結(jié)果2。步驟2:將步驟1得到的乘積2乘以3,得到結(jié)果6o步驟3:將6再乘以4,得24。步驟4:將24再乘以5,得120。這樣的算法雖然正確,但太繁。改進的算法:s1:使匸1s2:使 i=2s3:使txi,乘積仍然放在在變量t中,可表示為s4:使i的值+1,即i+1-hs5:如果iw5,返m重新執(zhí)行步驟s3以及其后的s4和s5;否則,算法結(jié)束。如果計算100!只需將s5:若iw5改成iwloo即可。如果該求1x3x5x7x9x11,算法也只需做

4、很少的改動:si: l->ts2:3-*is3: txi-*ts4: i+2-ts5:若iwll,返回s3,否則,結(jié)束。該算法不僅正確,而l是計算機較好的算法,因為計算機是高速運算的自動機器,實現(xiàn)循 環(huán)輕而易舉。思考:若將s5寫成:s5:若i<ll,返ln!s3;否則,結(jié)束?!纠?】有5()個學生,要求將他們之屮成績在8()分以上者打卬出來。如果,n表示學生學號,厲表示第個學生學號;g表示學生成績,旨表示第個學生成績; 則算法可表示如下:si: 1-is2:如果g&80,則打印馬和否則不打印s3: i+1-is4:若iw50,返回s2,否則,結(jié)束?!纠?】判定2000 25

5、00年中的每一年是否閏年,將結(jié)果輸出。潤年的條件:1) 能被4整除,但不能被1()()整除的年份;2) 能被100整除,又能被400整除的年份;設y為被檢測的年份,則算法可表示如下:sl:2000-*ys2:若y不能被4整除,則輸出y “不是閏年”,然后轉(zhuǎn)到s6s3:若y能被4整除,不能被1()()整除,則輸出y “是閏年”,然后轉(zhuǎn)到s6s4:若y能被100整除,又能被400整除,輸出y “是閏年”否則輸出y “不是閏年”, 然后轉(zhuǎn)到s6s5:輸出y “不是閏年” os6:y+1ys7:當yw2500時,返回s2繼續(xù)執(zhí)行,否則,結(jié)束。,111 1 111b h【例4】求 23 499100。算

6、法可表示如下:s1: sigh= is2: sum=ls3: dcno=2s4: sigh=(-l)xsighs5: term= sighx(l/deno )s6: term=sum+terms7: deno= deno +1s&若denow 100,返回s4;否則,結(jié)束?!纠?】對一個大于或等于3的止整數(shù),判斷它是不是一個素數(shù)。算法可表示如下:s1:輸入n的值s2: i=2s3:n被i除,得余數(shù)rs4:如果=(),表示n能被i整除,則打卬n “不是素數(shù)”,算法結(jié)束;否則執(zhí)行s5s5: i+1-is6:如果iwml,返冋s3;否則打印是素數(shù)”;然后算法結(jié)束。改進:s6:如果iw石,返回

7、s3:否則打卬n“是素數(shù)”撚后算法結(jié)束。3. 算法的特性 有窮性:一個算法應包含有限的操作步驟而不能是無限的。 確定性:算法中每一個步驟應當是確定的,而不能應當是含糊的、模棱兩可的。 有零個或多個輸入。 有一個或多個輸出。 有效性:算法屮每一個步驟應當能有效地執(zhí)行,并得到確定的結(jié)果。 對于程序設計人員,必須會設計算法,并根據(jù)算法寫出程序。1)怎樣表示一個算法:用自然語言表示算法:除了很簡單的問題,一般不用自然語言 表示算法。2)用流程圖表示算法:流程圖表示算法,點觀形象,易于理解。起止框輸入輸出框判斷框 卿框擁線 連接點【例6】將例1求5!的算用流程圖表示。l->t2i1i+l-*i【例

8、7將例2的處用流程圖表示【例8將例2.3判定閏年的算用流程圖表示【例9】將例2.4求 23499100的算用流程圖表示。一個流程圖包括:1. 表示相應操作的框;2. 帶箭頭的流程線;3. 框內(nèi)外必耍的文字說明。、三種基本結(jié)構和改進的流程圖1.2.選擇結(jié)構:3.循環(huán)結(jié)構當p1成立aa直到pl成立循環(huán)結(jié)構三種基木結(jié)構的共同特點: 只有一個入口; 只有一個岀口; 結(jié)構內(nèi)的每一部分都冇機會被執(zhí)行到; 結(jié)構內(nèi)不存在“死循環(huán)”。二、用ns流程圖表示算法main()int i,t;t=l;i=2; while(i<=5)t=t*i; i=i+l;printf(“ d”q;三、用偽代碼表示算法偽代碼使用

9、介于自然語言和計算機語言z間的文字和符號來描述算法。用計算機語言表示算法:我們的任務是用計算機解題,就是用計算機實現(xiàn)算法; 用計算機語言表示算法必須嚴格遵循所用語言的語法規(guī)則?!纠壳?x2x3x4x5用c語言表示。 【例2.21】求級數(shù)的值。main()int sigh=l;float deno=2.0,sum=l .0,term; while(deno<=l 00) sigh= -sigh; term= sigh/ deno; sum=sum+term; deno=deno+l;printf("%f',sum);l結(jié)構化程序設計方法自頂向下;逐步細化;模塊化設計;結(jié)

10、構化編碼。u!、順序結(jié)構程序設計順序結(jié)構程序設計舉例【例】輸入三和形的三邊長,求三角形面積。已知三角形的三邊長a,b,c,則該三如形的 面積公式為:area =s(s 一 a)($ - b)(s - c),其中 s = (a+b+c)/2源程序如下:# include<math.h>main()float a,b,c,s,area;scanf(“f,%f,%f',&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(<ta=%7.2f,b=%7.2f,c=%7.2f,s=%7.2an,a,b,c,s);printf(4tarea=%7.2fnm,area);【例】求ax2+bx+c=0方程的根,a,b,c由鍵盤輸入,設b2-4ac>0o 求根公式為:-b + b2 -4ac2alb2 -4ac令尸h,2a則 xi=p+qx2=p-q源程序如下:#include<math.h>main()float a,b,c,disc,xl,x2,p,q;scanf(t4a=%f,b=%f,c=%f&a,&b,&c);disc=b*b-4*a*c;p=-b/

溫馨提示

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

評論

0/150

提交評論