freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

實(shí)用c語言程序設(shè)計(jì)教程4 函數(shù)模塊化編程ppt-預(yù)覽頁

2024-12-31 18:51 上一頁面

下一頁面
 

【正文】 塊化編程 確定了 函數(shù) ?的自變量 x到因變量 y間的對應(yīng)關(guān)系 。形參的取值范圍由參數(shù)本身的數(shù)據(jù)類型決定。 表達(dá)式 —— 數(shù)學(xué)函數(shù)的計(jì)算過程由數(shù)學(xué)表達(dá)式來說明 。 main函數(shù)中兩次調(diào)用該函數(shù)可求出三個(gè)數(shù)中的最大數(shù)。 scanf(%d%d%d,amp。 max = GetMax(a,b)。 if(x y) max = x。 ?函數(shù)的定義( Function Definition) 一個(gè)完整的函數(shù)定義由兩部分組成 : ?函數(shù)的首部; ?函數(shù)體( function body) ,實(shí)現(xiàn)程序的實(shí)際語句。 ( 2) 函數(shù)返回值類型。 表達(dá)式的值被傳回到調(diào)用者。 ( 4) 函數(shù)體。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 int pare(int a,int b) /*函數(shù)首部 */ { if(ab) return a。 z = x y ? x : y。 { z = x y ? x : y。 形參也可以這樣定義 如下定義都是錯(cuò)誤的 ? ? √ C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 例,編寫求任意數(shù)階乘的自定義函數(shù)。++i) product*=i。 printf(請輸入數(shù)據(jù): \n)。 printf(%d的階乘為 %d.\n,x,p)。 若主調(diào)函數(shù)和被調(diào)函數(shù)在同一個(gè)源文件中,且函數(shù)定義在主調(diào)函數(shù)之后,函數(shù)需經(jīng)聲明才能使用。 ( 1)函數(shù)原型 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 ? 若主調(diào)函數(shù)和被調(diào)函數(shù)不在同一個(gè)源文件中,函數(shù)需經(jīng)聲明才能使用。 int Area(int, int)。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 ( 2)頭文件。 例,標(biāo)準(zhǔn)輸入輸出頭文件 : …… _CRTIMP int __cdecl printf(const char *, ...)。 _CRTIMP int __cdecl _putw(int, FILE *)。 包括對字符串進(jìn)行各種操作和對字符進(jìn)行操作的函數(shù)。常用的宏定義有 isalpha、isdigit、 isspace、 istrl、isspace等。 st 、轉(zhuǎn)換、隨機(jī)數(shù)產(chǎn)生等有關(guān)的常量、結(jié)構(gòu)以及相應(yīng)函數(shù)的類型描述和參數(shù)描述。用戶也可以根據(jù)自己的需要建立自己的用戶函數(shù)庫。 分析: 程序中需要判斷字符的類型 。 函數(shù)原型 : int isspace(int c)。 (2)設(shè)計(jì)鍵盤輸入字符用變量 c表示 ,為 char c。 再判斷 getchar()==10意味著第二個(gè)輸入字符是回車 。 在循環(huán)語句之前 , 輸入第一個(gè)字符 , 形成初始條件 。 \n請輸入字符 \n)。getchar()==10) /*注意邏輯表達(dá)式的順序 */ { if(isprint(c)) { if(isspace(c)) printf(這是空格符 \n)。 c=getchar()。 分析: (1) 隨機(jī)函數(shù)原型為: int rand(void)。 若用 unsigned int 雙字節(jié)是 65535, 四字節(jié)是 4294967295的整數(shù)范圍 。 參數(shù)seed必須是個(gè)整數(shù) , 如果每次 seed都設(shè)相同值 , rand()所產(chǎn)生的隨機(jī)數(shù)值每次就會一樣 。 例 [10, 100]。 10+rand()%90產(chǎn)生 [10, 100]的隨即數(shù)。 所以這是一個(gè)雙循環(huán)嵌套 。i=10。break。 include include /*包含了隨機(jī)函數(shù) */ include /*時(shí)間、日期和與系統(tǒng)有關(guān)的函數(shù) */ void main() { int num,x,i。 /*產(chǎn)生 [1, 100]的隨機(jī)數(shù) */ printf(開始新一輪猜數(shù)據(jù)游戲 .請輸入 :x\n)。x)。 } else if(xnum) printf(大了 .請繼續(xù) ...\n)。 若此數(shù)是素?cái)?shù) , 返回值為 1;否則 , 返回值為 0。j=(int)sqrt(n)。 } void main() { int j,k,min,max。max)。 /*函數(shù)調(diào)用 */ if(k) printf(%8d,j)。當(dāng)被調(diào)函數(shù)執(zhí)行結(jié)束,程序控制流程再返回到主調(diào)函數(shù),繼續(xù)執(zhí)行主調(diào)函數(shù)。實(shí)參間以 “ , ” 分隔。主調(diào)函數(shù)和被調(diào)函數(shù)間的數(shù)據(jù)傳遞渠道,也叫 數(shù)據(jù)接口 。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 【 例 45】 閱讀程序并分析下面程序中參數(shù)值傳遞過程。 b=temp。 printf(swapped:\n)。值傳遞方式下,數(shù)據(jù)是單向值傳遞。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 【 例 46】 閱讀程序并分析下面程序中參數(shù)地址傳遞過程。 printf(swapped:\n)。 printf(x=%d,\ty=%d\n,x,y)。 *b=temp。x amp。 …… } 函數(shù)之間的調(diào)用可以是任意的,即允許在一個(gè)函數(shù)體內(nèi)再調(diào)用其他函數(shù) (包括在一個(gè)函數(shù)的定義中出現(xiàn)對另一個(gè)函數(shù)的調(diào)用) ,這種在函數(shù)體中再調(diào)用其它函數(shù)稱為函數(shù)的嵌套調(diào)用。 printf (%d\n,sub1(n) )。 i) a+=sub2(i)。 分析: ( 1)問題描述: 絕對素?cái)?shù)是指一個(gè)自然數(shù)本身是素?cái)?shù),且它的數(shù)字位置經(jīng)過任意對換后仍為素?cái)?shù)。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 ( 3) 這是一個(gè)已知循環(huán)次數(shù)的問題,可用 for語句來實(shí)現(xiàn)。 函數(shù)原型: int invert(int n)。n++) if(prime_number(n)amp。 for(j=2。} return flag。 return (n*10+m)。 for(n=11。prime_number(invert(n))) /*函數(shù)嵌套調(diào)用 */ printf(%d\t,n)。 ② 求階乘值: 函數(shù)原型: long f2(int x)。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 ( 2)各函數(shù)嵌套調(diào)用關(guān)系如下。 } long f2(int x) { long c=1,b。 for(i=1。 } long f3(int x) { int i。i=x。 long s。 s=f3(n)。就必須先算出 f(n1),而要求 f(n1)就必須先求出 f(n2)。 遞歸是在執(zhí)行某一處理過程時(shí),該過程中的某一步要用到它自身的上一步(或上幾步)的結(jié)果。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 f函數(shù) 調(diào)用 f函數(shù) f1函數(shù) 調(diào)用 f2函數(shù) f2函數(shù) 調(diào)用 f1函數(shù) int f(int x) { int z。 但該函數(shù)將無休止地調(diào)用其自身 。這個(gè)新子問題的解決與原問題一樣,可以繼續(xù)轉(zhuǎn)化為下一個(gè)新子問題,以此類推。 分析: ( 1) 用遞歸法計(jì)算 n!, 可用下述公式表示: ( 2) 用遞歸函數(shù)可將 n!表示為: C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 include void main() { int n。n)。 if(n0) printf(n0,input error)。 } ( 3)程序如下 : /*函數(shù)調(diào)用 */ /*遞歸終止條件 */ /*遞歸調(diào)用 */ 局部變量 執(zhí)行過程剖析: ff函數(shù)是遞歸函數(shù) .每次調(diào)用 ff函數(shù)時(shí) , 其局部變量 n和 f值隨著調(diào)用的深入 , 值也隨之變化 ,直到終止條件 。 兩類問題具有不同的性質(zhì),所以用遞歸方法解決問題時(shí)也是不同的。 (3)對原來的定義進(jìn)行數(shù)學(xué)變換: p(x,n)= xx2+x3x4+ ...(1)n1xn =x*(1x+x2x3+x4......(1)n1xn1) =x*(1(xx2+x3......(1)n2xn1) =x*(1p(x,n1)) 其等價(jià)的遞歸定義: 遞歸終結(jié)條件 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 include double p(double x, int n) { if(n==1) return(x)。 printf(Enter x and n:)。 printf(“p=%f\n”,p(x,n))??砂聪铝胁襟E進(jìn)行分析: (1)化簡問題。 關(guān)于非數(shù)值型遞歸問題的求解方法 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 【 例 411】 輸入一個(gè)正整數(shù),要求以相反的順序輸出該數(shù)。對一位整數(shù)無所謂 “ 正 ” 與 “ 反 ” , 問題簡化為輸出一位整數(shù) 。 void printn(n)。 printn(num)。n=9 ) printf(“%dn”,n)。但有些問題用遞歸算法更容易理解和實(shí)現(xiàn)。(本題理解) C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 例 【 412】 漢諾塔( Hanoi)問題是一個(gè)著名的問題。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 用上面方法找出移動圓盤的遞歸算法。大 (移動 1次,遞歸結(jié)束條件) 分解問題。 這是一個(gè)天文數(shù)字,若每一微秒可能計(jì)算(并不輸出)一次移動,那么也需要幾乎一百萬年。 ③ movedisc(n1, usingneedle, toneedle, fromneedle) } } 問題終結(jié) 問題復(fù)原 ① ②問題分解 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 include void movedisc(unsigned ,char,char,char)。 scanf(%d, amp。, 39。)。 { if(n==1) printf(“%2d(%2d):%c== %c\n”, ++i, n,fromneedle,toneedle)。 } } /* 將 usingneedle上的 N1個(gè)圓盤借助 fromneedle移到 toneedle上 */ /*將 fromneedle上的一個(gè)圓盤移到 toneedle上 */ /*將 fromneedle上的 N1個(gè)圓盤借助 toneedle移到 usingneedle上 */ /* 將 fromneedle上的一個(gè)圓盤移到 toneedle上 */ /* movedisc函數(shù)完成的功能是:將 fromneedle桿上的 n個(gè)圓盤借助 usingneedle桿移動到 toneedle桿上 */ C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 關(guān)于遞歸的幾點(diǎn)說明: 當(dāng)一個(gè)問題蘊(yùn)含了遞歸關(guān)系且結(jié)構(gòu)比較復(fù)雜時(shí) ,采用遞歸調(diào)用的程序設(shè)計(jì)技巧可以使程序變得簡潔 , 代碼緊湊 , 增加了程序的可讀性 。 C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 程序填空:程序在輸入平面上 3個(gè)點(diǎn)的坐標(biāo)后,調(diào)用函數(shù) length計(jì)算并輸出各點(diǎn)之間的距離。ax,amp。cx,amp。 printf(%f %f %f\n, ( 4) )。 填空題 函數(shù) f定義如下,計(jì)算寫出 f(f(4))的值是 。 } 6 錯(cuò) C語言程序設(shè)計(jì) 第 4章 函數(shù)模塊化編程 程序閱讀題 include int f(int m, int n) { if(m%n==0) return n。 分析: ( 1) 問題陳述 : 編程實(shí)現(xiàn) “ 學(xué)生信息管理系統(tǒng) ” 的主模塊。 ②二級菜單界面各函數(shù)原型: void StudentMenu(void)。 /*班級管理二級模塊函數(shù) */ void StudentInfo(void)。 return。 getchar()。return。} void CourseMenu(void) {printf(正在使用課程信息管理系統(tǒng) !按回車鍵繼續(xù) ...\n)。 getchar()。 return。 } void StudentAdd() { printf(正在添加學(xué)生成績 !!!按回車鍵繼續(xù) ...\n)。 getchar()。 ret
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1