《帶參帶返回值函數(shù).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《帶參帶返回值函數(shù).ppt(22頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、帶參帶返回值函數(shù),復(fù)習(xí) 自定義函數(shù)的分類 自定義函數(shù)的聲明、調(diào)用、編寫 帶參帶返回值函數(shù)的應(yīng)用 課堂練習(xí) 課堂小結(jié) 本節(jié)對(duì)應(yīng)教材:P198-216,專業(yè)英語(yǔ)詞匯,回顧與提問(wèn),簡(jiǎn)單回顧第1學(xué)期的主要內(nèi)容 回顧第1學(xué)期計(jì)算器案例的主要內(nèi)容,第1學(xué)期主要內(nèi)容,C語(yǔ)言程序結(jié)構(gòu) (無(wú)參無(wú)返回值函數(shù)的編寫) 數(shù)據(jù)類型、變量輸入/輸出、運(yùn)算符 int、float、double、char scanf、printf、(getchar、 putchar) 算術(shù)、賦值、關(guān)系、邏輯運(yùn)算符 三種程序設(shè)計(jì)結(jié)構(gòu) 順序、選擇(分支)、循環(huán) 結(jié)構(gòu),第1學(xué)期計(jì)算器案例主要內(nèi)容,用無(wú)參無(wú)返回值的函數(shù)實(shí)現(xiàn) 加、減、乘運(yùn)算----順序
2、結(jié)構(gòu) 除法、求余----分支結(jié)構(gòu)(判斷除數(shù)是否為0) 累加、階乘----循環(huán)結(jié)構(gòu) 主函數(shù)----switch語(yǔ)句的應(yīng)用、用死循環(huán)控制程序反復(fù)執(zhí)行,本課內(nèi)容,帶參數(shù)有返回值函數(shù),函數(shù)的類型,函數(shù)定義基本格式: 返回值類型 函數(shù)名(參數(shù)類型 參數(shù)名) 注:也可以沒(méi)有參數(shù)或有兩個(gè)(以上)的參數(shù),兩個(gè)以上的參數(shù)用逗號(hào)分隔,如: 返回值類型 函數(shù)名(參數(shù)類型 參數(shù)名,參數(shù)類型 參數(shù)名,參數(shù)類型 參數(shù)名)----這是有三個(gè)參數(shù)的函數(shù) 返回值類型有:void、int、double、float、char及其他C語(yǔ)言中可以使用的類型。 如果是void表示該函數(shù)無(wú)返回值。其他則表示有返回值。參數(shù)類型即是數(shù)據(jù)類型、
3、參數(shù)名即是變量名,只是叫法不同而已。,函數(shù)的類型,由返回值和參數(shù)是否有可構(gòu)成以下四類函數(shù): 實(shí)際編程中,各種類型都可能遇到,但最常見(jiàn)的是有返回值帶參數(shù)的函數(shù),無(wú)返回值無(wú)參數(shù)函數(shù)的編寫思路,與在main函數(shù)中編程思路完全相同。 例如:計(jì)算器中的除法函數(shù) void divide( ) //第一步:定義變量(用于輸入運(yùn)算數(shù)和保存結(jié)果) //第二步:從鍵盤上輸入兩個(gè)運(yùn)算數(shù) //第三步:計(jì)算兩個(gè)數(shù)的除法(要用if語(yǔ)句考慮除數(shù)為0的特殊情況) //第四步:輸出計(jì)算結(jié)果 ,無(wú)返回值無(wú)參數(shù)函數(shù)的調(diào)用,假設(shè)在main函數(shù)中調(diào)用。在其他函數(shù)中調(diào)用也是一樣的。 main() divide( ); //函數(shù)調(diào)用語(yǔ)
4、句(直接調(diào)用) ,有返回值有參數(shù)函數(shù)的編寫思路,與無(wú)返回值無(wú)參數(shù)函數(shù)略有不同。 返回值的數(shù)據(jù)類型 函數(shù)名(數(shù)據(jù)類型 參數(shù)名1 , 數(shù)據(jù)類型 參數(shù)名2) //函數(shù)的功能代碼部分----略有不同 //返回結(jié)果值--最大的不同之處 ,有返回值有參數(shù)函數(shù)的編寫,例1:如果我們想定義一個(gè)函數(shù),要求該函數(shù)能夠?qū)崿F(xiàn)計(jì)算圓的面積,并將計(jì)算結(jié)果返回,則可將函數(shù)定義如下: double areaOfCircle( double radius ) //radius表示半徑 //根據(jù)radius計(jì)算圓的面積 //返回圓的面積 ,有返回值有參數(shù)函數(shù)的編寫,例1:如果我們想定義一個(gè)函數(shù),要求該函數(shù)能夠?qū)崿F(xiàn)計(jì)算圓的面積,并
5、將計(jì)算結(jié)果返回,則可將函數(shù)定義如下: double areaOfCircle( double radius ) //radius表示半徑 double area; //定義面積變量 //根據(jù)radius計(jì)算圓的面積 area = 3.14 * radius * radius ; //返回圓的面積 return area; ,有返回值有參數(shù)函數(shù)的編寫,編寫中注意的問(wèn)題: (1)不允許再次定義與參數(shù)名相同的變量 (2)參數(shù)的值是不需要在函數(shù)中輸入的(因?yàn)槭窃谡{(diào)用的時(shí)候傳遞過(guò)來(lái)的) (3)在函數(shù)中一般不輸出結(jié)果 (4)函數(shù)要結(jié)束的位置必須用 return語(yǔ)句返回正確的值。 return 語(yǔ)句的格式為
6、: return 表達(dá)式(或常量值); 該表達(dá)式的值 應(yīng)該與 返回值的類型一致,否則程序就存在缺陷。,有返回值有參數(shù)函數(shù)的編寫,練習(xí):根據(jù)三角形的三條邊來(lái)計(jì)算其面積,并將面積返回。計(jì)算公式為: ,其中s=(a+b+c)/2。 函數(shù)定義如下: double areaOfTriangle( double a, double b, double c) //a,b,c分別表示三邊 //根據(jù)三邊計(jì)算三角形面積 //返回三角形面積 ,有返回值有參數(shù)函數(shù)的調(diào)用,假設(shè)在main函數(shù)中進(jìn)行調(diào)用:思路如下 (1)定義與被調(diào)用函數(shù)參數(shù)個(gè)數(shù)相同,且類型對(duì)應(yīng)相同的變量 (2)定義與被調(diào)用函數(shù)返回值類
7、型一致的一個(gè)變量,用以保存調(diào)用后的結(jié)果 (3)為每個(gè)實(shí)際參數(shù)賦值 (4)調(diào)用函數(shù),并保存函數(shù)返回的結(jié)果 (5)輸出結(jié)果(或用結(jié)果進(jìn)行其他運(yùn)算),有返回值有參數(shù)函數(shù)的調(diào)用,假設(shè)在main函數(shù)中進(jìn)行調(diào)用areaOfCircle : main( ) double r; double result; //定義變量 scanf( “%lf” , //輸出結(jié)果 ,有返回值有參數(shù)函數(shù)的調(diào)用,result = areaOfCircle( r ); //調(diào)用函數(shù),main( ) //調(diào)用前的代碼 result = areaOfCircle( r ); //調(diào)用時(shí) //調(diào)用后的代碼 ,,double areaO
8、fCircle( double radius) //函數(shù)的主要功能代碼 return area; //使用return 語(yǔ)句返回結(jié)果值 ,,,,課堂練習(xí),用帶參數(shù)有返回值函數(shù)完成下列程序: 1、編寫一個(gè)程序,完成三角形面積的計(jì)算。 2、編寫程序判斷兩個(gè)字符是否一致,并返回判斷結(jié)果。一致請(qǐng)返回1,不一致返回0.函數(shù)定義如下: int isEqual( char ch1, char ch2 ) //ch1,ch2表示兩個(gè)字符,返回值用整型 //比較兩個(gè)字符是否一樣,如果一樣結(jié)果記為整數(shù)1,否則結(jié)果記為整數(shù)0 //返回結(jié)果 ,更進(jìn)一步,試著自己找一個(gè)例子,看能不能寫成帶參數(shù)有返回值的函數(shù)來(lái)解決,并編程實(shí)現(xiàn)之。,本次課小結(jié),函數(shù)類型 帶參數(shù)有返回值函數(shù)的編寫、調(diào)用,作業(yè),1、用帶參數(shù)帶返回值的函數(shù)實(shí)現(xiàn)功能: 從鍵盤上輸入一個(gè)整數(shù)n,計(jì)算n !. 2、調(diào)用上面的程序,使之運(yùn)行正確。并掌握調(diào)試過(guò)程。,