![whx即是副程式(sub-program_第1頁(yè)](http://file4.renrendoc.com/view/82aea0312d1318e7d041909efa78bcc8/82aea0312d1318e7d041909efa78bcc81.gif)
![whx即是副程式(sub-program_第2頁(yè)](http://file4.renrendoc.com/view/82aea0312d1318e7d041909efa78bcc8/82aea0312d1318e7d041909efa78bcc82.gif)
![whx即是副程式(sub-program_第3頁(yè)](http://file4.renrendoc.com/view/82aea0312d1318e7d041909efa78bcc8/82aea0312d1318e7d041909efa78bcc83.gif)
![whx即是副程式(sub-program_第4頁(yè)](http://file4.renrendoc.com/view/82aea0312d1318e7d041909efa78bcc8/82aea0312d1318e7d041909efa78bcc84.gif)
![whx即是副程式(sub-program_第5頁(yè)](http://file4.renrendoc.com/view/82aea0312d1318e7d041909efa78bcc8/82aea0312d1318e7d041909efa78bcc85.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Function (函數(shù))Introduction to the C Programming Language1Function (函數(shù))Function 即是副程式(sub-program,或 subroutine)為何要使用 function ?避免重複寫(xiě)相同的程式碼, 節(jié)省coding 時(shí)間可重複使用該程式碼增加程式的可讀性與可維護(hù)性, 降低主程式之複雜性開(kāi)發(fā)較大應(yīng)用程式時(shí), 可分割成數(shù)個(gè)不同功能的function, 由不同的程式設(shè)計(jì)師分工完成符合結(jié)構(gòu)化語(yǔ)言之特性尚有一些程式語(yǔ)言, 將副程式分為兩類(lèi) :副程式 : 處理指定功能之程序過(guò)程函數(shù)式 : 負(fù)責(zé)計(jì)值運(yùn)算並傳回結(jié)果2Function
2、語(yǔ)法規(guī)則語(yǔ)法規(guī)則 :function_type function_name (parameter, parameter)parameters declarations;statements;例:char func(p1, p2)int p1;char p2;statements;3函數(shù)與主程式間之架構(gòu)合法之架構(gòu)錯(cuò)誤之架構(gòu)主程式函數(shù) 1函數(shù) 2主程式函數(shù) 1函數(shù) 2主程式函數(shù) 1函數(shù) 2主程式函數(shù) 1函數(shù) 2主程式函數(shù) 2函數(shù) 14範(fàn)例一比較使用者所輸入兩整數(shù)之大小void larger_value(a,b) int a, b; if(a b) printf(2: The larger valu
3、e is %d n, a); else printf(2: Two values are equal. n); void main() int i, j; printf(1: Please input 2 values. n = ); scanf(%d %d, &i, &j); larger_value(i,j); 函式呼叫5Function注意事項(xiàng)函數(shù)名稱依照識(shí)別字的規(guī)則命名.每個(gè)函數(shù)各自獨(dú)立, 可相互呼叫.所有函數(shù)語(yǔ)法地位一律平等.參數(shù)列式呼叫函數(shù)時(shí)需要與主程式間作資料或位置的傳遞, 若無(wú)資料需要傳遞時(shí), 則可省略參數(shù)列, 但不可省略小括號(hào).若函數(shù)須傳回?cái)?shù)值時(shí), 則敘述中必有一條傳回?cái)⑹?
4、 語(yǔ)法規(guī)則為 : return (運(yùn)算式)return 為關(guān)鍵字運(yùn)算式可為常數(shù), 變數(shù)或算數(shù)運(yùn)算式return 除了可把函數(shù)內(nèi)的值傳回呼叫程式外, 同時(shí)具有令函數(shù)結(jié)束, 返回呼叫程式之功能.6範(fàn)例二輸入一數(shù)值 n, 求出 1 至 n 的連乘 (示範(fàn)函數(shù)傳回?cái)?shù)值給呼叫程式)void main() long fact(void); long f; f = fact(); printf(The factorial = %ld n, f);long fact(void) int i,n; long f=1; printf(Enter one value : ); scanf(%d, &n); for(
5、 i=1; i= n; i+) f *= i; return(f);傳回值函式呼叫 (無(wú)參數(shù)傳遞)參數(shù)列中無(wú)資料7範(fàn)例三輸入一數(shù)值 n, 求出 1 至 n 的連乘(示範(fàn)由呼叫程式傳遞一數(shù)值給函數(shù), 函數(shù)計(jì)算後將結(jié)果傳回給呼叫程式)void main() int n; long f; long fact(int); printf(Enter one value : ); scanf(%d, &n); f = fact(n); printf(The factorial of %d = % ld n, n, f);long fact( int n) int i; long f = 1; for (i
6、 =1; i = n; i+) f *= i; return (f);函式呼叫 (參數(shù)傳遞)傳回值參數(shù)列中傳遞之參數(shù)8範(fàn)例四 (共2頁(yè))計(jì)算輸入之三個(gè)整數(shù)的 gcd 與 lcm.void main() int gcd(int, int); int lcm(int, int); int a, b, c; printf(Enter three integer values : ); scanf(%d %d %d, &a, &b, &c); printf(The gcd of %d %d %d is %d n, a, b, c, gcd(gcd(a,b), c); printf(The lcm of
7、 %d %d %d is %d n, a, b, c, lcm(lcm(a,b), c); 9範(fàn)例四 續(xù)接上頁(yè)int gcd(int x, int y) int 4; while (y != 0) r = x % y; x = y; y = r; return(x);int lcm(int x, int y) return(x * y / gcd(x,y);10範(fàn)例五輸入半徑資料計(jì)算圓面積void main() float area(int); int r; float a; printf(Enter radius : ); scanf(%d, &r); a = area (r); print
8、f(Circle area = %10.4f n, a);float area(int r) float pi = 3.14159; return(pi * r * r);11範(fàn)例六 (共 2 頁(yè))輸入一系列數(shù)字, 以函數(shù)方式求出最大值與最小值, 將最大值,最小值與數(shù)字總和列印出來(lái)int min(x,y) if( x= y) return x; else return y;int max(x,y) if(x ); scanf(%d, &num); for( i=1; i , i); scanf(%d, &value); tmpmin = min(value, tmpmin); tmpmax =
9、 max(value, tmpmax); sum += value; printf(2: The maximun is %d n, tmpmax); printf(2: The minimum is %d n, tmpmin); printf(2: The sum is %d n, sum);範(fàn)例六 續(xù)13利用函數(shù)方式, 將陣列中的最小值傳回 int minimum(var)int var5; int min, i; min = var0; for( i=0; i=4; i+) if(vari min) min = vari; return min;void main() int array5
10、; int minimum_value; int i; for( i =0; i , i+1); scanf(%d, &arrayi); minimum_value = minimum(array); printf(2: The minimum value is %d n, minimum_value);陣列資料傳遞 範(fàn)例一14利用函數(shù)方式將二維陣列各列的前三元素平均值, 放在最後一個(gè)元素位置void main() int num34 = 88, 29,91, 0, 86, 84, 90, 0, 77, 65, 70, 0; void average(); int i, j; average(
11、num, 3); for( i=0; i3; i+) printf(2: ); for( j=0; j4; j+) printf(%5d, numij); printf(n); 陣列資料傳遞 範(fàn)例二 (共2頁(yè))15接上頁(yè)void average(var, length)int var4, length; int sum, i, j; for( i=0; ilength; i+) sum = 0; for( j=0; j4; j+) sum += varij; vari3 = sum / 3; 陣列資料傳遞 範(fàn)例二 (續(xù))16參數(shù)之區(qū)域觀念全面性變數(shù)(Global variable) : 宣告在
12、主程式區(qū)域外的變數(shù), 可在程式中任何區(qū)域中存取該變數(shù).區(qū)域性變數(shù)(Local variable) : 宣告在主函數(shù)區(qū)域中或函數(shù)區(qū)域中的變數(shù), 只在該宣告的區(qū)域中有效. 離開(kāi)該區(qū)域則視為未定義變數(shù), 各區(qū)域中的區(qū)域變數(shù)互不相干.17參數(shù)之儲(chǔ)存類(lèi)別C語(yǔ)言提供四個(gè)關(guān)鍵字 : auto, extern, static, register靜態(tài)變數(shù)(Static variable) : 只要程式繼續(xù)執(zhí)行, 不因函數(shù)的結(jié)束而消失, 該變數(shù)所配置的記憶體空間與數(shù)值依然存在.外部變數(shù)(Extern variable) : 如上頁(yè)提及宣告在主程式區(qū)域外的變數(shù)為全面性變數(shù), 也稱為外部變數(shù).外部靜態(tài)變數(shù) : 只提供同一程式檔中的所有函數(shù)存取, 其他程式檔中的函數(shù)則無(wú)法使用.暫存器變數(shù)(Register variable) : 為加速程式的執(zhí)行速度, 可將區(qū)域性變數(shù)或正式參數(shù)宣告為暫存器變數(shù).18範(fàn)例一 : 區(qū)域性變數(shù)宣告使用void main() int sum(void); int i; for (i=1; i=3; i+) printf(%dth time = %d n, i, sum(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)下冊(cè)數(shù)學(xué)聽(tīng)評(píng)課記錄《 分?jǐn)?shù)加減法簡(jiǎn)便運(yùn)算》人教新課標(biāo)
- 八年級(jí)道德與法治下冊(cè)第二單元理解權(quán)利義務(wù)第四課公民義務(wù)第二框依法履行義務(wù)聽(tīng)課評(píng)課記錄(新人教版)
- 湘教版數(shù)學(xué)九年級(jí)上冊(cè)《4.4解直角三角形的應(yīng)用(1)》聽(tīng)評(píng)課記錄
- 人教版歷史八年級(jí)下冊(cè)第15課《鋼鐵長(zhǎng)城》聽(tīng)課評(píng)課記錄
- 天天練習(xí)-四年級(jí)上冊(cè)口算練習(xí)
- 七年級(jí)下學(xué)期語(yǔ)文教學(xué)工作總結(jié)
- 蘇教版小學(xué)數(shù)學(xué)三年級(jí)上冊(cè)口算試題全套
- 蘇教版四年級(jí)數(shù)學(xué)下冊(cè)期末復(fù)習(xí)口算練習(xí)題三
- 滬科版八年級(jí)數(shù)學(xué)下冊(cè)聽(tīng)評(píng)課記錄《第17章一元二次方程數(shù)17.2一元二次方程的解法(第3課時(shí))》
- LED屏幕安裝協(xié)議書(shū)范本
- 華為攜手深圳國(guó)際會(huì)展中心創(chuàng)建世界一流展館
- 2023版思想道德與法治專(zhuān)題2 領(lǐng)悟人生真諦 把握人生方向 第3講 創(chuàng)造有意義的人生
- 全過(guò)程工程咨詢服務(wù)技術(shù)方案
- 小報(bào):人工智能科技科學(xué)小報(bào)手抄報(bào)電子小報(bào)word小報(bào)
- GB/T 41509-2022綠色制造干式切削工藝性能評(píng)價(jià)規(guī)范
- 企業(yè)生產(chǎn)現(xiàn)場(chǎng)6S管理知識(shí)培訓(xùn)課件
- 五年級(jí)下冊(cè)數(shù)學(xué)課件 第10課時(shí) 練習(xí)課 蘇教版(共11張PPT)
- 三年級(jí)道德與法治下冊(cè)我是獨(dú)特的
- 土木工程畢業(yè)設(shè)計(jì)(論文)-五層宿舍樓建筑結(jié)構(gòu)設(shè)計(jì)
- 青年卒中 幻燈
- 典型倒閘操作票
評(píng)論
0/150
提交評(píng)論