已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1 第 9章 過(guò) 程與函數(shù) 2 過(guò)程的定義 : 在設(shè)計(jì)一個(gè)規(guī)模較大、復(fù)雜程度較高的程序時(shí),往往根據(jù)需要按功能 將程序分解成若干個(gè)相對(duì)獨(dú)立的部分 ,然后對(duì)每個(gè)部分分別編寫(xiě)一段程序,這些程序段稱(chēng)為 過(guò)程。 過(guò)程是構(gòu)成程序邏輯部件的基本單位 ,將程序分割成較小的邏輯部件可以簡(jiǎn)化程序設(shè)計(jì)任務(wù),結(jié)構(gòu)化設(shè)計(jì)就是建立在這個(gè)思路之上。 每個(gè)過(guò)程完成一個(gè)具有特定目的的任務(wù)。 3 過(guò)程 函數(shù) 內(nèi)部函數(shù)(如: ) ) 通用函數(shù)(自定義函數(shù) 事件過(guò)程 通用過(guò)程(自定義過(guò)程 窗體事件過(guò)程(如: )) 控件事件過(guò)程(如 :)) 事件過(guò)程 是對(duì) 發(fā)生的事件 進(jìn)行處理的程序段 通用過(guò)程和通用函數(shù) 是由用戶根據(jù)自己的需要定義和編寫(xiě) 的、可供事件過(guò)程多次調(diào)用的程序段 它們都不直接與特定的事件相關(guān)聯(lián) 4 通用過(guò)程( 程 是指 以規(guī)定語(yǔ)法結(jié)構(gòu)組織的 、 可以被重復(fù)調(diào)用的 、 具有特定功能的 、 相對(duì)獨(dú)立的 程序段。 與任何特定的事件過(guò)程相關(guān)聯(lián),只能由別的過(guò)程調(diào)用 1、 聲明 程 (定義 ) 聲明 程 就是在 窗體或標(biāo)準(zhǔn)模塊 的代碼窗口編寫(xiě)一個(gè)能實(shí)現(xiàn)預(yù)期功能的語(yǔ)句塊。 聲明 過(guò)程名 () 過(guò)程體 注意: 程名無(wú)值,無(wú)類(lèi)型。 5 說(shuō)明: 1、 每個(gè)通用過(guò)程都有一個(gè) 過(guò)程名 (由用戶自己指定,規(guī)定同變量名), 同一模塊中過(guò)程名不得重復(fù)。 2、 過(guò)程前加上 缺省,則該過(guò)程為 全局級(jí)過(guò)程 , 可以被應(yīng)用程序的所有窗體模塊或標(biāo)準(zhǔn)模塊中的過(guò)程調(diào)用(在窗體中定義,調(diào)用時(shí)應(yīng)加窗體名) 。 3、 過(guò)程前加上 則該過(guò)程為 模塊級(jí)過(guò)程 ,只有在聲明它的模塊中才可以調(diào)用此過(guò)程。 4、 在過(guò)程名前加上 表明該過(guò)程的變量都是靜態(tài)變量。 5、 形參列表 是傳遞到過(guò)程中的變量名 (多個(gè)時(shí)用“ ,”分隔 ),它指明了調(diào)用時(shí)傳遞給過(guò)程的參數(shù)的類(lèi)型和個(gè)數(shù) . 過(guò)程可以有參數(shù),也可以不帶任何參數(shù)。根據(jù)需要而定 格式為: 量名 ( ) 據(jù)類(lèi)型 , 示按值傳遞; 示按地址傳遞 6、過(guò)程內(nèi)不能再定義過(guò)程,過(guò)程定義也不能寫(xiě)在事件過(guò)程內(nèi) 6 如: x y x=x+100 y=y*6 x,y 7、 建立通用過(guò)程可以使用以下兩種方法: “工具” ”添加過(guò)程” 在標(biāo)準(zhǔn)模塊或窗體模塊中, 直接輸入通用過(guò)程的代碼。 8、子過(guò)程名不返回值,只能通過(guò)形式參數(shù)與調(diào)用語(yǔ)句通信 9、過(guò)程體中的 示強(qiáng)制退出過(guò)程返回 7 2、調(diào)用 程 要執(zhí)行一個(gè)過(guò)程 , 必須調(diào)用該過(guò)程 。 調(diào)用的方法為: 方法 1 使用 格式: 過(guò)程名 (實(shí)參列表 ) 方法 2. 將過(guò)程名作為語(yǔ)句使用 : 格式: 過(guò)程名 特點(diǎn): 程的調(diào)用 是一句獨(dú)立的語(yǔ)句。 例:要調(diào)用前面的 可以使用下面兩種方式: a , b) 或 a , b 主過(guò)程 過(guò)程 1 程 1 過(guò)程 2 程 2 用的本質(zhì):轉(zhuǎn)入被調(diào)用過(guò)程去執(zhí)行 ,完成后返回 8 說(shuō)明: 1、使用 數(shù)必須放在括號(hào)內(nèi),如沒(méi)有參數(shù),括號(hào)可省略 2、用過(guò)程名調(diào)用時(shí),過(guò)程名后不能加括號(hào),若有參數(shù),參數(shù)與過(guò)程名間用空格隔開(kāi) 3、參數(shù)表:在調(diào)用語(yǔ)句中的參數(shù)稱(chēng)為實(shí)際參數(shù)(簡(jiǎn)稱(chēng)實(shí)參),實(shí)參可以是變量、常量、數(shù)組或表達(dá)式,參數(shù)間用逗號(hào)隔開(kāi) 4、 可以直接調(diào)用本模塊中聲明的過(guò)程或 標(biāo)準(zhǔn)模塊中聲明的全局過(guò)程; 5、 當(dāng)定義的過(guò)程重名時(shí),調(diào)用過(guò)程時(shí),過(guò)程名前應(yīng)加模塊名修飾; 6、 如果要調(diào)用 窗體模塊 中聲明的 全局過(guò)程, 調(diào)用時(shí)過(guò)程名前 應(yīng)加窗體名。 9 程 與 程 的主要區(qū)別是: 程 可通過(guò)函數(shù)名返回一個(gè)值到調(diào)用的過(guò)程 1、 聲明 程(函數(shù)定義) 格式: 函數(shù)過(guò)程名 () = 返回值語(yǔ)句 意: 在函數(shù)體內(nèi),函數(shù)名可以當(dāng)變量名使用,函數(shù)的返回值就是通過(guò)對(duì)函數(shù)名的賦值語(yǔ)句來(lái)實(shí)現(xiàn)的。即函數(shù)值通過(guò)函數(shù)名返回。 函數(shù)體中的 函數(shù)過(guò)程需要返回的值的類(lèi)型由 設(shè)置 。 程(自定義函數(shù)) 函數(shù)體 10 2、 調(diào)用 程 程的調(diào)用 , 與標(biāo)準(zhǔn)函數(shù) ( 內(nèi)部函數(shù) ) 相同 。 通常用在表達(dá)式中 格式: 函數(shù)名 () 特點(diǎn): 不能獨(dú)立成為語(yǔ)句,必須參加表達(dá)式的運(yùn)算。 如 1: 下面是已知直角三角形兩直角邊的值,計(jì)算斜邊的函數(shù)。 as as as *A+B*B) ) a=: b= a , b) 1 例 2: 將前面的兩個(gè) x y z s s = (x + y + z) / 2 s - x) * (s - y) * (s - z) * s) a#, b#, c#, s#, a = : b = c = If a + b c b + c a c + a b 面積 =; a, b, c) ) 無(wú)參數(shù)時(shí),括號(hào)不能省略 f 2 過(guò)程中參數(shù)的傳送 不同模塊(過(guò)程)之間數(shù)據(jù)的傳遞方式: 通過(guò)全局變量實(shí)現(xiàn)各過(guò)程中共享數(shù)據(jù) (即在 “通用”部份 定義的變量,由該模塊所有過(guò)程 共享 ) 通過(guò)過(guò)程調(diào)用實(shí)參與形參的結(jié)合實(shí)現(xiàn) 按值傳遞 (單向傳遞 ) 按地址傳遞 (雙向傳遞 ) 13 的參數(shù)稱(chēng)為 形式參數(shù) ( 形參 ) , 在程序中調(diào)用 稱(chēng)為實(shí)際參數(shù) ( 實(shí)參 ) 。 在調(diào)用過(guò)程時(shí) , 就是 把 “ 實(shí)參 ” 依次 按位置 傳遞給被調(diào)用過(guò)程的 “ 形參 ” , 然后執(zhí)行被調(diào)用過(guò)程中的語(yǔ)句 。 參數(shù)傳遞時(shí)相當(dāng)于給變量賦初值 。 如: x, y) m n 參數(shù)傳遞有兩種模式: 按值傳遞 與 按址傳遞 14 按值傳遞 就是將 實(shí)參的值 傳送給被調(diào)用過(guò)程中的 形參 。 即:系統(tǒng)把實(shí)參復(fù)制一份傳送給形參。 這樣, 被調(diào)用的過(guò)程如果改變了形參的值,也不會(huì)改變實(shí)參的值。 在 值方式的標(biāo)志為: 在形參前加上 這種傳遞方式 是一種單向的數(shù)據(jù)傳遞 , 即調(diào)用時(shí)只能由實(shí)參的值傳遞給形參,調(diào)用結(jié)束不能由形參將操作結(jié)果返回給實(shí)參 。 實(shí)參可以是常數(shù)、變量或表達(dá)式。 1、 按值傳遞 15 例: 寫(xiě)出下列程序的運(yùn)行結(jié)果 x as y as x=x+100 y=y*6 “x=“;x.”y=“;y a%,b% a=10:b=20 a,b “a=“;a,”b=“;b 值: X=110 y=120 a=10 b=20 16 2、 按址傳遞 變量的引用 傳址方式是將實(shí)參在內(nèi)存的地址傳遞給形參 , 也就是實(shí)參 、形參公用內(nèi)存的 “ 地址 ” 。 在 按址傳遞數(shù)據(jù)是在形參前加上 默認(rèn)方式 ) 。 這種傳遞方式 是一種雙向的數(shù)據(jù)傳遞 ,即調(diào)用時(shí)實(shí)參將值傳遞給形參;調(diào)用結(jié)束由形參將操作結(jié)果返回給實(shí)參。當(dāng)用傳址方式時(shí), 實(shí)參只能是變量、數(shù)組名,不能是常數(shù)、表達(dá)式。 修改前例題 再寫(xiě)其運(yùn)行結(jié)果 17 x as y as x=x+100 y=y*6 “x=“;x.”y=“;y a%,b% a=10:b=20 a,b “a=“;a,”b=“;b 址: X=110 y=120 a=110 b=120 18 3、 數(shù)組作過(guò)程的參數(shù) 數(shù)組作參數(shù)是通過(guò)傳地址方式傳送 。 在傳送數(shù)組時(shí) , 除遵守參數(shù)傳送的一般規(guī)則外 , 還應(yīng)注意以下幾點(diǎn): 1 為了把一個(gè)數(shù)組的全部元素傳送給一個(gè)過(guò)程 , 應(yīng)將數(shù)組名分別寫(xiě)入形參表中 , 并略去數(shù)組的上下界 , 但括號(hào)不能省略 。 a() As 中形參 “ a( )”即為數(shù)組 。 19 2 被調(diào)過(guò)程可通過(guò) 下界 。 3 當(dāng)用數(shù)組作形參時(shí) , 對(duì)應(yīng)的實(shí)參必須也是數(shù)組 , 且類(lèi)型一致 。 4 實(shí)參和形參結(jié)合是按地址傳遞 , 即形參數(shù)組和實(shí)參數(shù)組共用一段內(nèi)存單元 。 例如:定義了實(shí)參數(shù)組 b(1 ), 給它們賦了值 , 調(diào)用函數(shù)過(guò)程的形式如下: b( ) 或 b() ) 實(shí)參數(shù)組后面的括號(hào)可以省略,但為便于閱讀,建議一般不要省略為好。 3、 數(shù)組作過(guò)程的參數(shù) 20 調(diào)用時(shí)形參數(shù)組 共用一段內(nèi)存單元 , 如圖 6 因此在 過(guò)程中改變數(shù)組 也就相當(dāng)于改變了實(shí)參數(shù)組 當(dāng)調(diào)用結(jié)束時(shí) , 形參數(shù)組 b(1) b(2) b(3) b(4) b(5) b(6) b(7) b(8) a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) 參數(shù)為數(shù)組時(shí)虛實(shí)結(jié)合示意圖 3、 數(shù)組作過(guò)程的參數(shù) 21 可選參數(shù)和可變參數(shù) 1、 可選參數(shù) 在過(guò)程的形參列表中加入 就可以指定過(guò)程的參數(shù)為可選的。如果指定了可選參數(shù),則 參數(shù)表中此參數(shù)后面的其它參數(shù)也必是可選的 ,并且要用 例 6: 求兩個(gè)數(shù)的和的函數(shù)過(guò)程。 函數(shù)過(guò)程: s f 2 事件過(guò)程: a b c im s a = 10: b = 20 a, b) ; a = 10: b = 20: c = 30 a, b, c) ; )檢測(cè)可選參數(shù)是否被省略 23 2、 不定數(shù)量的參數(shù)(可變參數(shù)) 一般說(shuō)來(lái),過(guò)程調(diào)用中的參數(shù)個(gè)數(shù)應(yīng)等于過(guò)程說(shuō)明的參數(shù)個(gè)數(shù)。 在傳遞參數(shù)時(shí), 如果要求參數(shù)的數(shù)目可以變化 ,則在函數(shù)過(guò)程或 參前可加 不能與 連用) 指明。 格式如下: 程名 ( 其他參數(shù) , ( ) ) 24 s( ), a%, b c d s = , 2, 3, 4, 5) ; s(0), s(2), s(4) ) a = 1000: b = 10000: c = 100: d = 10 ; a, b, c, d ) p() ) as or p) p) p(5 窗體參數(shù) 形參定義格式 : 形參名 調(diào)用時(shí)實(shí)參 : 必須為某個(gè)窗體名稱(chēng) 控件參數(shù) : 形參定義格式 : 形參名 調(diào)用時(shí)實(shí)參 : 可為任意一個(gè)控件對(duì)象 26 過(guò)程的嵌套和遞歸 1、 過(guò)程的嵌套 在程序中調(diào)用一子過(guò)程 , 而在子過(guò)程中又調(diào)用另外的子過(guò)程 , 這種程序結(jié)構(gòu)稱(chēng)為 過(guò)程的嵌套 。 過(guò)程的嵌套調(diào)用執(zhí)行過(guò)程如 下圖: 27 2、 過(guò)程的遞歸調(diào)用 用自身的結(jié)構(gòu)來(lái)描述自身,稱(chēng)遞歸。例如,對(duì)階乘的定義: )!2()1()!1()!1(!遞歸 直接調(diào)用自己稱(chēng)為直接遞歸調(diào)用 間接調(diào)用自己稱(chēng)為間接遞歸調(diào)用 過(guò)程的嵌套和遞歸調(diào)用 28 n f n = 1 1 n * n - 1) f )=”; ) 序的遞歸過(guò)程: 29 說(shuō)明: 遞歸處理分遞推和回歸兩個(gè)過(guò)程 , 如上圖所示 。 當(dāng)一個(gè)大問(wèn)題能夠分解成同類(lèi)型的小問(wèn)題 ,且問(wèn)題 規(guī)模在逐漸減小 ,才適合用遞歸解決 . 使用遞歸算法必須要滿足以下的遞歸條件: ( 1)存在遞歸結(jié)束條件及結(jié)束時(shí)的值; ( 2)能用遞歸形式表示,且遞歸向終止條件發(fā)展。 30 變量的作用域 根據(jù)變量的作用域,變量分為 局部 ( 過(guò)程級(jí) )變量、 窗體 / 模塊 變量和 全局 變量 局部 變量 在過(guò)程中用 存在于過(guò)程中 用 義的變量稱(chēng)為動(dòng)態(tài)變量 ,生存期為過(guò)程的一次調(diào)用 . 用 生存期為整個(gè)應(yīng)用程序的執(zhí)行期間 (重點(diǎn)掌握 ,舉例 ) 窗體 / 模塊 變量 塊中的所有過(guò)程都可使用 全局 變量 以在所有模塊中使用 31 s i 0 i = 1 i) i x s s = s + x s 行時(shí)單擊窗體 , 程序輸出結(jié)果為 : 32 能 能 變量名前加窗體 名 不能 不能 被其他模塊 存取 能 能 不能 被本模塊的其他過(guò)程存取 通用聲明 通用聲明 過(guò)程中
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年蘇州城際鐵路有限公司公開(kāi)招聘?jìng)淇碱}庫(kù)附答案詳解
- 內(nèi)科學(xué)總論內(nèi)分泌系統(tǒng)疾病講解課件
- 2026年佛山市高明區(qū)教師發(fā)展中心公開(kāi)選聘中心副主任備考題庫(kù)及答案詳解(易錯(cuò)題)
- 2026年專(zhuān)科有崗中國(guó)建筑科技館招聘?jìng)淇碱}庫(kù)及1套參考答案詳解
- 2026年哈爾濱市南崗區(qū)花園社區(qū)衛(wèi)生服務(wù)中心招聘?jìng)淇碱}庫(kù)有完整答案詳解
- 2026年華東師范大學(xué)附屬順德美的學(xué)校臨聘教師招聘?jìng)淇碱}庫(kù)含答案詳解
- 重慶市北碚區(qū)教育事業(yè)單位2026年面向應(yīng)屆高校畢業(yè)生考核招聘工作人員備考題庫(kù)及1套完整答案詳解
- 2026年中國(guó)海洋大學(xué)環(huán)境科學(xué)與工程學(xué)院實(shí)驗(yàn)技術(shù)人員招聘?jìng)淇碱}庫(kù)有完整答案詳解
- 2025年某國(guó)有企業(yè)新媒體運(yùn)營(yíng)崗招聘?jìng)淇碱}庫(kù)及一套完整答案詳解
- 廣東省云浮市云城區(qū)2026年赴高校公開(kāi)招聘事業(yè)編制教師備考題庫(kù)及答案詳解(考點(diǎn)梳理)
- 2026天津市濱海新區(qū)事業(yè)單位招聘25人備考題庫(kù)必考題
- T∕GDAM 005.1-2025 實(shí)驗(yàn)室儀器設(shè)備管理規(guī)范 第1部分:總則
- 2025年全面質(zhì)量管理體系建設(shè)項(xiàng)目可行性研究報(bào)告
- 光療課件教學(xué)課件
- 北師大版二上《參加歡樂(lè)購(gòu)物活動(dòng)》(課件)
- 基坑土方開(kāi)挖專(zhuān)項(xiàng)施工方案(完整版)
- 招標(biāo)人主體責(zé)任履行指引
- 健康管理師考試題庫(kù)及答案題庫(kù)大全
- 雨課堂學(xué)堂云在線《中國(guó)傳統(tǒng)藝術(shù)-篆刻、書(shū)法、水墨畫(huà)體驗(yàn)與欣賞(哈工 )》單元測(cè)試考核答案
- 110kv變電站安全距離110kv變電站設(shè)計(jì)規(guī)范
- 材料力學(xué)課件壓桿的穩(wěn)定性
評(píng)論
0/150
提交評(píng)論