資源描述:
《c語言程序設(shè)計教程第6章》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第六章函數(shù)與編譯預(yù)處理6.1模塊化程序設(shè)計與函數(shù)6.2函數(shù)的定義與調(diào)用6.3函數(shù)的遞歸調(diào)用6.4變量的作用域與存取方式6.5編譯預(yù)處理C語言程序設(shè)計教程2021/10/916.1模塊化程序設(shè)計與函數(shù)在設(shè)計較復(fù)雜的程序時,我們一般采用的方法是:把問題分成幾個部分,每部分又可分成更細的若干小部分,逐步細化,直至分解成很容易求解的小問題。這樣的話,原來問題的解就可以用這些小問題來表示。2基本概念基本模塊模塊模塊模塊模塊模塊模塊模塊模塊模塊2021/10/93模塊與函數(shù)C語言程序由基本語句和函數(shù)組成,每個函數(shù)可完成相對獨立的任務(wù),依一定的規(guī)則調(diào)用這些函數(shù),就組成了解決某個特定問題的程序。4模塊與函
2、數(shù)把大任務(wù)分解成若干功能模塊,用多個函數(shù)來實現(xiàn)這些功能模塊。通過函數(shù)的調(diào)用來實現(xiàn)完成大任務(wù)的全部功能。5模塊與函數(shù)任務(wù)、模塊與函數(shù)的關(guān)系:一個大任務(wù)分成多個功能模塊,功能模塊則由一個或多函數(shù)實現(xiàn)。模塊化的程序設(shè)計是靠設(shè)計函數(shù)和調(diào)用函數(shù)實現(xiàn)的。6例:分數(shù)排序任務(wù):輸入三個分數(shù),從大到小的順序的輸出。如果大于等于85,在該數(shù)后面輸出‘A’,小于85且大于等于70,則輸出‘B’,小于70且大于等于60,輸出‘C’,如果小于60,則輸出‘D’。思路:scanf()輸入分數(shù)另建一個排序函數(shù)判斷并輸出等級函數(shù)打印分數(shù)及等級的函數(shù)雖然也可以由一個主函數(shù)來完成,但這樣做可讀性及操作性會更好。7voi
3、dmain(){floata,b,c;scanf("%f,%f,%f",&a,&b,&c);/*輸入*/sortabc(&a,&b,&c);/*排序*/putabc(a,b,c);/*輸出a,b,c三個數(shù)*/}8voidsortabc(a,b,c)floata,b,c;{floatt;if(a=85)return('A
4、');elseif(x>=70)return('B');elseif(x>=60)return('C');elsereturn('D');}10voidputabc(a,b,c)floata,b,c;{charg;g=grade(a);/*判別等級*/printf("%6.1f:%c",a,g);g=grade(b);printf("%6.1f:%c",b,g);g=grade(c);printf("%6.1f:%c",c,g);}11模塊設(shè)計的原則模塊獨立規(guī)模適當層次分明功能專一12獨立性原則表現(xiàn)在模塊完成獨立的功能,和其它模塊間的關(guān)系簡單,各模塊可以單獨調(diào)試。修改某一模塊,不會造成
5、整個程序的混亂。每個模塊完成一個相對獨立的特定子功能。在對任務(wù)逐步分解時,要注意對問題的綜合。例如,一些模塊的相似的子任務(wù),可以把它們綜合起來考慮,找出它們的共性,把它們做成一個完成特定任務(wù)的單獨模塊。每個模塊有特定功能模塊獨立13模塊之間最好只通過數(shù)據(jù)傳遞發(fā)生聯(lián)系,而不發(fā)生控制聯(lián)系。例如,C語言禁止goto語句作用到另一個函數(shù),就是為了保證函數(shù)的獨立性。每個模塊力求簡單14模塊內(nèi)使用的數(shù)據(jù),對于不需要這些數(shù)據(jù)的其它模塊來說,應(yīng)該不允許使用;在一個模塊內(nèi)的變量的修改不會影響其它模塊的數(shù)據(jù)。即模塊的私有數(shù)據(jù)只屬于這個模塊。C語言的局部變量,就是滿足模塊獨立的的需要。每個模塊應(yīng)用獨立變量15模
6、塊不能太大,但也不能太小。模塊的功能復(fù)雜,可讀性就不好,而且也違背獨立性原則。但如果做得太小,實際上也會復(fù)雜各個模塊間反復(fù)調(diào)用,可讀性也會降低。這點需要慢慢積累經(jīng)驗,好好把握。模塊規(guī)模適當16分解模塊要注意層次要多層次的分解任務(wù),要注意對問題進行抽象化。開始不要過于注意細節(jié),注意做到逐步細化求精。17算法簡介算法簡介算法簡介什么是算法?通俗地說,算法是解決一類特定問題的方法和步驟。算法是一個有限操作的序列。算法的每一步都是確定的。算法的每一步計算機都能操作。有一個或多個的輸入或輸出。18算法的描述算法描述的任務(wù)是將解題步驟和方法用一定的形式表示出來,要清楚、準確、嚴謹,還要可讀性好,方便實
7、現(xiàn)。算法兩大要素:一是操作,用類計算機語句或自然語言描述。二是控制結(jié)構(gòu),描述算法一般可以用流程圖描述。19例6.2設(shè)計算法:找出a,b兩數(shù)中的較大者,并輸出分析:這個問題分三個步驟:輸入兩個數(shù);找出其中的大數(shù);輸出大數(shù)。20開始輸入a,ba