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

正文內(nèi)容

第6章過(guò)程封裝--函數(shù)(完整版)

  

【正文】 6 數(shù)組作為函數(shù)的參數(shù) ? 在函數(shù)中并沒有定義新的數(shù)組 ? 對(duì)形式參數(shù)數(shù)組指定規(guī)模是沒有意義的 ? 形式參數(shù)數(shù)組不需要指定大小,所以方括號(hào)中為空 ? 函數(shù)如何知道數(shù)組的規(guī)模?用另一個(gè)整型參數(shù)表示 ? 總結(jié):數(shù)組傳遞需要兩個(gè)參數(shù),數(shù)組名和數(shù)組規(guī)模 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 27 第 6章 過(guò)程封裝--函數(shù) ? 函數(shù) ? 自己編寫函數(shù) ? 函數(shù)的使用 ? 數(shù)組作為參數(shù) ? 帶默認(rèn)值的函數(shù) ? 內(nèi)聯(lián)函數(shù) ? 重載函數(shù) ? 函數(shù)模版 ? 變量的作用域 ? 變量的存儲(chǔ)類別 ? 遞歸函數(shù) ? 基于遞歸的算法 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 28 默認(rèn)參數(shù) ? 對(duì)于某些函數(shù),程序往往會(huì)用一些固定的值去調(diào)用它 .例如對(duì)于以某種數(shù)制輸出整型數(shù)的函數(shù) print: void print(int value, int base)。 i 10。所以有 10個(gè)整型的形式參數(shù) ?一組同類數(shù)據(jù)可以用一個(gè)數(shù)組來(lái)描述,所以參數(shù)也可以是一個(gè) 10個(gè)元素的整型數(shù)組 ?第二種方法更加簡(jiǎn)練 ?返回值是平均成績(jī) 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 22 統(tǒng)計(jì)函數(shù)的實(shí)現(xiàn) int average(int array[10]) { int i, sum = 0。i=n。 2. 作為表達(dá)式的一部分 如要計(jì)算 5!+4!+7! x=p(5) + p(4) + p(7) 3. 作為函數(shù)的參數(shù) Printstar( p(5) + p(4) + p(7))。 else return(b)。 ? 如果在所有函數(shù)定義之前,在函數(shù)外部已經(jīng)做了函數(shù)聲明,則在主調(diào)函數(shù)中無(wú)須再作聲明。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 11 第 6章 過(guò)程封裝--函數(shù) ? 函數(shù) ? 自己編寫函數(shù) ? 函數(shù)的使用 ? 數(shù)組作為參數(shù) ? 帶默認(rèn)值的函數(shù) ? 內(nèi)聯(lián)函數(shù) ? 重載函數(shù) ? 函數(shù)模版 ? 變量的作用域 ? 變量的存儲(chǔ)類別 ? 遞歸函數(shù) ? 基于遞歸的算法 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 12 函數(shù)的聲明 ? 所有函數(shù)在使用前必須被聲明,以便讓編譯器知道用戶的用法是否正確。 i = n。 } } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 8 函數(shù)舉例 — 無(wú)參數(shù)、有返回值的函數(shù) ? 從終端獲取一個(gè) 1 – 10之間的整型數(shù) int getInput() { int num。 i = numOfLine。沒有返回值的函數(shù)也稱為過(guò)程 類型標(biāo)識(shí)符 函數(shù)名 ( 形式參數(shù)表 ) { 變量定義部分 語(yǔ)句部分 } return 返回值; 或 return( 返回值 ) ; eg. int max(int a, int b) {if (ab) return(a) else return(b)?!?程序設(shè)計(jì) 》 程序設(shè)計(jì) 1 第 6章 過(guò)程封裝--函數(shù) ? 函數(shù) ? 自己編寫函數(shù) ? 函數(shù)的使用 ? 數(shù)組作為參數(shù) ? 帶默認(rèn)值的函數(shù) ? 內(nèi)聯(lián)函數(shù) ? 重載函數(shù) ? 函數(shù)模版 ? 變量的作用域 ? 變量的存儲(chǔ)類別 ? 遞歸函數(shù) ? 基于遞歸的算法 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 2 函數(shù)的用途 ? 函數(shù)是程序設(shè)計(jì)語(yǔ)言中最重要的部分,是模塊化設(shè)計(jì)的主要工具。 } 函數(shù)體 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 5 函數(shù)的命名 ? 函數(shù)名是一個(gè)標(biāo)識(shí)符,符合標(biāo)識(shí)符命名規(guī)范 ? 函數(shù)名要有意義 ? 函數(shù)名一般是一個(gè)動(dòng)詞短語(yǔ),表示函數(shù)的行為 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 6 函數(shù)舉例 — 無(wú)參數(shù)、無(wú)返回值的函數(shù) ? 打印一個(gè)由五行組成的三角形 * *** ***** ******* ********* void printstar() { cout ― *\n‖。 ++i) { cout endl。 while (true) { cin num。 ++i) s *= i。 ? 函數(shù)聲明包括下列內(nèi)容: ? 函數(shù)名 ? 函數(shù)的參數(shù)類型 ? 函數(shù)的返回類型 ? 函數(shù)的聲明被稱為函數(shù)的原型,它的形式為: 返回類型 函數(shù)名(參數(shù)表); 參數(shù)表中的每個(gè)參數(shù)說(shuō)明可以是類型,也可以是類型后面再接一個(gè)參數(shù)名。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 14 函數(shù)調(diào)用 include int max(int a, int b)。 } main() { int x, y。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 18 函數(shù)執(zhí)行過(guò)程 ? 在主程序中計(jì)算每個(gè)實(shí)際參數(shù)值 ? 用實(shí)際參數(shù)值初始化形式參數(shù) ? 依次執(zhí)行函數(shù)體的每個(gè)語(yǔ)句,直到遇見 return語(yǔ)句或函數(shù)體結(jié)束 ? 計(jì)算 return后面的表達(dá)式的值,用表達(dá)式的值構(gòu)造一個(gè)臨時(shí)變量 ? 回到調(diào)用函數(shù),用臨時(shí)變量置換函數(shù)調(diào)用,繼續(xù)主程序的執(zhí)行 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 19 函數(shù)執(zhí)行過(guò)程 int p( int )。 ++i) s*=i。 for (i = 0。 i++) cin score[i]。 在大多數(shù)情況下都是以十進(jìn)制輸出,因此 base的值總是為 10。 y= special( ) //x=2。 ? 對(duì)于任何內(nèi)聯(lián)函數(shù),編譯器在符號(hào)表里放入函數(shù)的聲明(包括名字、參數(shù)類型、返回值類型)。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 35 慎用內(nèi)聯(lián)函數(shù) ? 內(nèi)聯(lián)以代碼復(fù)制 (膨脹 )為代價(jià),省去了函數(shù)調(diào)用的開銷,提高函數(shù)的執(zhí)行效率。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 38 函數(shù)重載 ? 使參數(shù)個(gè)數(shù)不同、參數(shù)類型不同或兩者兼而有之的兩個(gè)以上的函數(shù)取相同的函數(shù)名 ? 如 int max(int a1, int a2)。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 40 第 6章 過(guò)程封裝--函數(shù) ? 函數(shù) ? 自己編寫函數(shù) ? 函數(shù)的使用 ? 數(shù)組作為參數(shù) ? 帶默認(rèn)值的函數(shù) ? 內(nèi)聯(lián)函數(shù) ? 重載函數(shù) ? 函數(shù)模版 ? 變量的作用域 ? 變量的存儲(chǔ)類別 ? 遞歸函數(shù) ? 基于遞歸的算法 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 41 函數(shù)模板 ? 如果一組重載函數(shù)僅僅是參數(shù)的類型不一樣,程序的邏輯完全一樣,那么這一組重載函數(shù)可以寫成一個(gè)函數(shù)模板。 { int a = 4。 ? 全局變量:在所有的函數(shù)外面定義的變量稱為全局變量 ? 作用范圍:從定義位置到文件結(jié)束。 } int f3() {int q。 f2()。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 53 register ? 存儲(chǔ)在寄存器中,代替自動(dòng)變量或形參,可以提高變量的訪問速度。 void f()。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 56 static ? 為在整個(gè)程序的運(yùn)行期間都存在的變量限定訪問范圍。 for (i=0。 ? 雖然局部靜態(tài)變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)不能引用它。 b()。 cout ―x in main is ‖ x endl。} int x=2。 } else { return( n * RaiseIntToPower( n, k 1))。究竟使用哪一種,憑你的經(jīng)驗(yàn)選擇。 if (n == 1) return 1。由于很多調(diào)用的活動(dòng)都是同時(shí)進(jìn)行的,操作系統(tǒng)可能會(huì)耗盡可用的內(nèi)存 ,避免在處理過(guò)大的 n時(shí)產(chǎn)生溢出問題。 void fill(int, int,int)。 for (col = 0。 if (size == 1) { p[begin][begin] = number。 ++number。 ++i) { row。 } fill( number, begin+1, size2 )。試設(shè)計(jì)一個(gè)函數(shù),輸入一個(gè)字符串,輸出該字符串中所有字母的全排列 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 94 用遞歸的思想分析問題 ? 如排列“ ABCDE‖,用遞歸的思想可以看成: ? 第一個(gè)字母為‘ A‘,后面是“ BCDE‖的全排列 ? 第一個(gè)字母為‘ B‘,后面是“ CDE‖的全排列 ? 第一個(gè)字母為‘ C‘,后面是“ BDE‖的全排列 ? 第一個(gè)字母為‘ D‘,后面是“ BCE‖的全排列 ? 第一個(gè)字母為‘ E‘,后面是“ BCD‖的全排列 ? 第一個(gè)字母為‘ B‘,后面是“ ACDE‖的全排列 ? 第一個(gè)字母為‘ C‘,后面是“ BADE‖的全排列 ? 第一個(gè)字母為‘ D‘,后面是“ BCAE‖的全排列 ? 第一個(gè)字母為‘ E‘,后面是“ BCDA‖的全排列 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 95 選擇存儲(chǔ)結(jié)構(gòu) ? 用一個(gè)字符串存儲(chǔ)排列。 istrlen(str)。如果當(dāng)前的候選解滿足包括問題規(guī)模在內(nèi)的所有要求時(shí) , 該候選解就是問題的一個(gè)解 。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 103 算法 queen_all(k) { for (i = 1。 當(dāng)回溯到第 0列時(shí) , 說(shuō)明程序已求得全部解 (或無(wú)解 ), 結(jié)束程序執(zhí)行 。 i++) // 依次在 l至 8行上配置 k列的皇后 if ( a[i] amp。 j++) cout j col[j] 39。q39。 j =8。如果所有的整數(shù)都是負(fù)的,那么最大連續(xù)子序列的和是零。 ?情況 3:從前半部開始但在后半部結(jié)束。 ? 選擇三個(gè)和中的最大值。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 115 for (int i = center。 } return max3(maxLeft, maxRight, maxLeftTmp + maxRightTmp)。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 120 劃分過(guò)程 ? 從右向左開始檢查。amp。 } while (low != high)。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 125 找零問題 ? 對(duì)于一種貨幣,有面值為 C1, C2, …, CN(分 )的硬幣,最少需要多少個(gè)硬幣來(lái)找出 K分錢的零錢。因此, 63分錢需要使用五個(gè)硬幣。 if (能用一個(gè)硬幣找零) return 1。 ? 一個(gè) 1分的硬幣加上遞歸地分派 62分錢 ? 一個(gè) 5分的硬幣加上遞歸地分派 58分錢 ? 一個(gè) 10分的硬幣加上遞歸地分派 53分錢 ? 一個(gè) 21分的硬幣加上遞歸地分派 42分錢 ? 一個(gè) 25分的硬幣加上遞歸地分派 38分錢 ? 該算法的問題仍然是效率問題 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 132 動(dòng)態(tài)規(guī)劃解 ? 效率低下主要是由于重復(fù)計(jì)算造成的。 ? 在本例中,我們用 coinsUsed[i]代表了找i分零錢所需的最小硬幣數(shù)。 ik。 ? 我們繼續(xù)嘗試所有的可能性。我們可以通過(guò)使用 2個(gè)25分、一個(gè) 10分的硬幣以及三個(gè) 1分來(lái)找出 63分錢,一共是 6個(gè)硬幣。 return low。 if (low high) { a[low] = a[high]。 ? 將大于 k的這個(gè)值放入 low的位置。 ?對(duì)前一半和后一半分別重復(fù)上述方法。 i) { leftSum += a[i]。 int leftSum = 0, rightSum = 0。類似地,從左到右的掃描找到右半段的最長(zhǎng)序列。又如第二個(gè)例子,對(duì)于輸入{1, 3, 4, 2, 1, 6},答案是 7,這個(gè)子序列包含最后四項(xiàng)。 for(j = 0。 } else queen_a11(k+1)。 。 b[k+i1] amp。 ?數(shù)組 c[16], c[A]=true表示第 A條左高右低斜線上沒有皇后 。 ++i) if (皇后放在第 i行是可行的 ) { 在第 i行放入皇后; if
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1