《過(guò)程》教學(xué)課件_第1頁(yè)
《過(guò)程》教學(xué)課件_第2頁(yè)
《過(guò)程》教學(xué)課件_第3頁(yè)
《過(guò)程》教學(xué)課件_第4頁(yè)
《過(guò)程》教學(xué)課件_第5頁(yè)
已閱讀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、過(guò)程教學(xué)PPT課件過(guò)程教學(xué)PPT課件例1、求sin5+sin8+sin13的值例2、求5!+8!+13!的和Private Sub Command1_Click() print Sin(5) + Sin(8) + Sin(13)End Sub引例Private Sub Command1_Click() print Fact(5) + Fact(8) + Fact(13)End SubPrivate Sub Command1_Click() print Sin(5) + Sin(8) + Sin(13)End Sub例1、求sin5+sin8+sin13的值Private S系統(tǒng)沒(méi)有求階乘的函數(shù)

2、,問(wèn)題如何解決?解決思路: 設(shè)計(jì)一段獨(dú)立計(jì)算階乘的程序,然后調(diào)用這段程序計(jì)算階乘。引例Founction fact(n as integer)t=1for i=1 to nt=t*1next Ifact=tEnd Sub定義函數(shù)計(jì)算階乘返回結(jié)果系統(tǒng)沒(méi)有求階乘的函數(shù),問(wèn)題如何解決?引例Founction 將一個(gè)“較大”的問(wèn)題,劃分為若干個(gè)獨(dú)立的“小”問(wèn)題求解,小問(wèn)題解決相對(duì)容易,只要解決了每一個(gè)“小”問(wèn)題,整個(gè)問(wèn)題即可解決。 每個(gè)“小” 問(wèn)題的求解設(shè)計(jì)一段獨(dú)立的程序,稱為一個(gè)“過(guò)程”。 整個(gè)問(wèn)題求解通過(guò)多個(gè)“過(guò)程”實(shí)現(xiàn),這種解決問(wèn)題的方法,體現(xiàn)模塊化程序設(shè)計(jì)思想。第8章 過(guò)程 將一個(gè)“較大”的問(wèn)

3、題,劃分為若干個(gè)獨(dú)立的“小”問(wèn)題使用過(guò)程編程有兩大好處:1.過(guò)程可使程序劃分成離散的邏輯單元,每個(gè)單元都比無(wú)過(guò)程的整個(gè)程序容易調(diào)試。2.一個(gè)程序中的過(guò)程,往往不必修改或只需稍作改動(dòng),便可以成為另一個(gè)程序的構(gòu)件。 第8章 過(guò)程使用過(guò)程編程有兩大好處:第8章 過(guò)程VB過(guò)程的分類:1、內(nèi)部過(guò)程: 包括系統(tǒng)內(nèi)部的函數(shù)過(guò)程(abs,sqr)和事件過(guò)程(command1_click())。2、用戶自定義過(guò)程: 用戶根據(jù)自己的需要定義的,可供應(yīng)用程序多次調(diào)用的過(guò)程。VB中的自定義過(guò)程又分為: (1) 以Sub開(kāi)始的子過(guò)程; (2) 以Function開(kāi)始的函數(shù)過(guò)程; (3) 以Property開(kāi)始的屬性過(guò)程

4、; (4) 以Event開(kāi)始的事件過(guò)程。 第8章 過(guò)程VB過(guò)程的分類:第8章 過(guò)程1. 函數(shù)過(guò)程的建立 1)用 “工具”“添加函數(shù)”菜單命令來(lái)添加函數(shù)過(guò)程。2)在代碼窗口中直接編寫(xiě)過(guò)程的代碼 代碼的基本格式如下:Function 過(guò)程名 (形式參數(shù)列表) As 數(shù)據(jù)類型 語(yǔ)句組 過(guò)程名=表達(dá)式End Function8.1 Function(函數(shù))過(guò)程1. 函數(shù)過(guò)程的建立 8.1 Function(函數(shù))過(guò)程其中:(1) 過(guò)程名 過(guò)程名的命名規(guī)則與變量命名相同。它有兩方面的作用,一方面標(biāo)識(shí)一個(gè)過(guò)程,另一方面可將過(guò)程運(yùn)算的結(jié)果傳回到調(diào)用處。(2) As 數(shù)據(jù)類型 是Function過(guò)程返回值的類

5、型,默認(rèn)為變體類型。(3) (形式參數(shù)列表) 代表調(diào)用時(shí)要傳遞給Function過(guò)程的參數(shù)變量列表。多個(gè)參數(shù)間用逗號(hào)隔開(kāi)。形式參數(shù)(簡(jiǎn)稱形參)本身沒(méi)有值,只代表了參數(shù)的個(gè)數(shù)、位置和類型,系統(tǒng)并不為其分配實(shí)際內(nèi)存空間。8.1 Function(函數(shù))過(guò)程其中:8.1 Function(函數(shù))過(guò)程其中:(4) 語(yǔ)句組 又稱為函數(shù)體,函數(shù)體中的執(zhí)行語(yǔ)句,用來(lái)完成函數(shù)值的運(yùn)算。在程序流程返回調(diào)用程序之前,必須將函數(shù)值賦給函數(shù)名。(5)將函數(shù)值賦給函數(shù) 格式:過(guò)程名=表達(dá)式8.1 Function(函數(shù))過(guò)程其中:8.1 Function(函數(shù))過(guò)程例8-1 編寫(xiě)計(jì)算n的階乘的Function過(guò)程。 定

6、義下面函數(shù)對(duì)應(yīng)的Function過(guò)程。 例8-2 已知直角三角形兩直角邊的值,編寫(xiě)計(jì)算第三邊(斜邊)的Function過(guò)程。編寫(xiě)求兩個(gè)數(shù)中最大數(shù)的函數(shù)過(guò)程。 (x0)(x=0)(x2.函數(shù)過(guò)程的調(diào)用 1)直接調(diào)用,即有返回值的調(diào)用,最簡(jiǎn)單的情況就是在賦值語(yǔ)句中調(diào)用函數(shù)過(guò)程,其形式為:變量名=函數(shù)過(guò)程名(實(shí)參表)2)用call語(yǔ)句調(diào)用,即沒(méi)有返回值的調(diào)用,格式為: call 過(guò)程名(實(shí)際參數(shù)表) 或 過(guò)程名 實(shí)際參數(shù)表3)無(wú)參函數(shù)調(diào)用,調(diào)用無(wú)參函數(shù),只須寫(xiě)出函數(shù)名 如:Now Time Date等函數(shù)8.1 Function(函數(shù))過(guò)程2.函數(shù)過(guò)程的調(diào)用 如:Now Time Date等函數(shù)8.

7、說(shuō)明:定義函數(shù)時(shí),在函數(shù)名后指定的參數(shù)稱為形式參數(shù);在調(diào)用函數(shù)時(shí),函數(shù)名后指定的參數(shù)稱為實(shí)際參數(shù)。在函數(shù)調(diào)用時(shí),實(shí)參通過(guò)形參將數(shù)據(jù)傳遞給被調(diào)用函數(shù)。 函數(shù)被調(diào)用后可以返回一個(gè)運(yùn)算結(jié)果,即函數(shù)值。函數(shù)值是通過(guò)給函數(shù)名賦值的方法獲得的。函數(shù)也可以沒(méi)有返回值,調(diào)用無(wú)返回值的函數(shù),或不需要函數(shù)的返回值時(shí),可以采用第二種調(diào)用格式.8.1 Function(函數(shù))過(guò)程說(shuō)明:8.1 Function(函數(shù))過(guò)程 兩類Sub過(guò)程,即事件過(guò)程和用戶自定義Sub過(guò)程。 事件過(guò)程:是系統(tǒng)對(duì)事件響應(yīng)時(shí)執(zhí)行的一段程序代碼,它不能被其它過(guò)程調(diào)用。 用戶自定義Sub過(guò)程:是用戶自己建立的一種過(guò)程,它可以被其它過(guò)程隨意調(diào)用。

8、 1. Sub過(guò)程的建立 1)通過(guò)菜單 2)通過(guò)代碼窗體直接輸入代碼,格式如下:過(guò)程名(形式參數(shù)列表) 語(yǔ)句組 End Sub 8.2 Sub過(guò)程 兩類Sub過(guò)程,即事件過(guò)程和用戶自定義Sub過(guò)程。8.2其中:(1) 過(guò)程名 過(guò)程名的命名規(guī)則與變量命名規(guī)則相同,它起到標(biāo)識(shí)一個(gè)過(guò)程的作用。(2) (形式參數(shù)列表) 說(shuō)明在調(diào)用過(guò)程時(shí)要傳遞給Sub過(guò)程的參數(shù)列表,是過(guò)程與調(diào)用程序之間數(shù)據(jù)傳送的主要渠道。當(dāng)有一個(gè)以上參數(shù)時(shí),參數(shù)之間用逗號(hào)隔開(kāi)。 當(dāng)無(wú)參數(shù)形式參數(shù)列表時(shí),這種過(guò)程叫無(wú)參過(guò)程,其形式如下:過(guò)程名()8.2 Sub過(guò)程其中:8.2 Sub過(guò)程(3) 語(yǔ)句組 是一組用于完成特定功能的程序段(過(guò)

9、程體),其中可包含Exit Sub語(yǔ)句用于強(qiáng)行退出過(guò)程。注意:通用過(guò)程與函數(shù)不同,不能通過(guò)過(guò)程名返回運(yùn)算結(jié)果,而需要通過(guò)特定的形式參數(shù)將計(jì)算結(jié)果返回。8.2 Sub過(guò)程(3) 語(yǔ)句組 是一組用于完成特定功能的程序段(過(guò)程體),例8-3 寫(xiě)出輸出如下圖形的Sub過(guò)程*例8-4 計(jì)算任意整數(shù)n的階乘的Sub過(guò)程。 編寫(xiě)求兩個(gè)數(shù)中最大數(shù)的Sub過(guò)程。例8-5 編寫(xiě)一個(gè)判斷素?cái)?shù)的通用過(guò)程。8.2 Sub過(guò)程例8-3 寫(xiě)出輸出如下圖形的Sub過(guò)程8.2 Sub過(guò)程2、Sub過(guò)程的調(diào)用 格式: call 過(guò)程名(實(shí)參表) 或 過(guò)程名 實(shí)參列表8.2 Sub過(guò)程2、Sub過(guò)程的調(diào)用8.2 Sub過(guò)程在主程序

10、調(diào)用過(guò)程和過(guò)程處理的結(jié)果返回主程序的運(yùn)行過(guò)程中,形參與實(shí)參之間的數(shù)據(jù)傳遞是關(guān)鍵。在Function過(guò)程和Sub過(guò)程被調(diào)用之前,所有形參都無(wú)定義,也就是說(shuō)所有的形參既沒(méi)有具體的存儲(chǔ)單元也無(wú)具體的值,只是起到形式上的作用。當(dāng)程序執(zhí)行轉(zhuǎn)向過(guò)程時(shí),實(shí)參和形參按一定方式結(jié)合,形參獲取了相應(yīng)的值后執(zhí)行過(guò)程體,過(guò)程的運(yùn)算結(jié)果通過(guò)形參(Function過(guò)程也可通過(guò)函數(shù)名)返回到主程序。8.3 參數(shù)傳遞 在主程序調(diào)用過(guò)程和過(guò)程處理的結(jié)果返回主程序的運(yùn)行過(guò)程中,形參1. 形式參數(shù)與實(shí)際參數(shù) 1) 形式參數(shù) 在定義過(guò)程時(shí),過(guò)程名后圓括號(hào)中列出的就是形式參數(shù)(簡(jiǎn)稱形參)。在過(guò)程被調(diào)用時(shí),它接收實(shí)參傳來(lái)的數(shù)據(jù)。 形參只

11、能是變量或數(shù)組,不能是常量、表達(dá)式或函數(shù)。2) 實(shí)際參數(shù) 在過(guò)程調(diào)用時(shí),過(guò)程名后的圓括號(hào)中列出的數(shù)據(jù)稱為實(shí)際參數(shù)(簡(jiǎn)稱實(shí)參),它用于向形參傳送數(shù)據(jù)。 在過(guò)程調(diào)用時(shí),實(shí)參可以是常量、變量,數(shù)組或函數(shù)。8.3 參數(shù)傳遞 1. 形式參數(shù)與實(shí)際參數(shù) 8.3 參數(shù)傳遞 2 參數(shù)的傳遞方式 1) 按值傳遞 在過(guò)程調(diào)用執(zhí)行時(shí),實(shí)參只將其本身的值傳遞(復(fù)制)給形參,使形參得到實(shí)參的值。 采用傳值方式,在過(guò)程執(zhí)行時(shí),形參的變化不會(huì)影響實(shí)參的值,即不會(huì)將形參的值再回送給實(shí)參,這種參數(shù)傳遞方式稱為“單向”數(shù)據(jù)傳遞。 采用按值傳遞方式調(diào)用過(guò)程時(shí),實(shí)參只能是常量、表達(dá)式或括在一對(duì)園括號(hào)中的變量名。例如, Call jc

12、h(9,3) Call sjx(x+3,y+2) 定義過(guò)程時(shí)在形參前加ByVal關(guān)鍵字,調(diào)用時(shí),無(wú)論實(shí)參是什么形式,參數(shù)傳遞均按值傳遞方式進(jìn)行。 8.3 參數(shù)傳遞 2 參數(shù)的傳遞方式 8.3 參數(shù)傳遞 2) 按地址傳遞 這是VB中傳遞參數(shù)默認(rèn)的方式。它與傳值方式不同,實(shí)參在過(guò)程調(diào)用執(zhí)行時(shí),將其在內(nèi)存中所分配的存儲(chǔ)單元地址傳遞給形參,使形參與實(shí)參具有相同的內(nèi)存地址,即使用同一存儲(chǔ)單元。 在過(guò)程執(zhí)行中,形參的任何變化都直接影響實(shí)參的值,即相當(dāng)于形參將其值又回送給實(shí)參,這種參數(shù)傳遞方式稱為“雙向”數(shù)據(jù)傳遞。 采用地址傳遞方式調(diào)用過(guò)程(或函數(shù))時(shí),實(shí)參只能是變量或數(shù)組,不能是常量或表達(dá)式。8.3 參數(shù)

13、傳遞 2) 按地址傳遞8.3 參數(shù)傳遞 例8-10 編寫(xiě)一個(gè)降序排序的過(guò)程,調(diào)用編寫(xiě)的過(guò)程對(duì)任意輸入的一組數(shù)排序。過(guò)程應(yīng)用舉例例8-10 編寫(xiě)一個(gè)降序排序的過(guò)程,調(diào)用編寫(xiě)的過(guò)程對(duì)任意輸 VB的應(yīng)用程序由若干個(gè)過(guò)程組成,這些過(guò)程一般保存在窗體文件(.frm)或標(biāo)準(zhǔn)模塊文件(.bas)中。變量在過(guò)程代碼中是必不可少的。一個(gè)變量、過(guò)程所處的位置不同,可被訪問(wèn)的范圍也不同。把變量、過(guò)程可被訪問(wèn)的范圍稱為變量、過(guò)程的作用域。 應(yīng)用程序(.vbp)若干個(gè)窗體模塊(*.frm)文件若干個(gè)標(biāo)準(zhǔn)模塊(.bas)文件事件過(guò)程(Sub)自定義通用過(guò)程(Sub)自定義函數(shù)過(guò)程(Function)自定義通用過(guò)程(Sub

14、)自定義函數(shù)過(guò)程(Function)Vb應(yīng)用程序組成8.4 變量、過(guò)程的作用域 VB的應(yīng)用程序由若干個(gè)過(guò)程組成,這些過(guò)程一般保存1.過(guò)程的作用域 在定義過(guò)程時(shí),可以指定關(guān)鍵字Private或Public,不同的關(guān)鍵字使定義的過(guò)程作用范圍有所不同。 1)窗體(模塊)級(jí)過(guò)程 窗體級(jí)過(guò)程是指在窗體通用聲明段定義的、用Private關(guān)鍵字限制的過(guò)程;模塊級(jí)過(guò)程是指在標(biāo)準(zhǔn)模塊內(nèi)定義的、用Private關(guān)鍵字限制的過(guò)程,該類過(guò)程只能在所屬的窗體或標(biāo)準(zhǔn)模塊中被其它過(guò)程調(diào)用。 8.4 變量、過(guò)程的作用域1.過(guò)程的作用域 8.4 變量、過(guò)程的作用域2) 全局級(jí)過(guò)程 指在窗體或標(biāo)準(zhǔn)模塊中定義的過(guò)程,其默認(rèn)是全局的

15、,可加Pub1ic說(shuō)明。全局級(jí)過(guò)程可供該應(yīng)用程序的所有窗體和所有標(biāo)準(zhǔn)模塊中的過(guò)程調(diào)用,但根據(jù)過(guò)程所處的位置不同,其調(diào)用方式有所區(qū)別: (1) 在窗體中定義的全局級(jí)過(guò)程,外部過(guò)程要調(diào)用,必須在過(guò)程名前加該過(guò)程所處的窗體名。 (2) 在標(biāo)準(zhǔn)模塊中定義的過(guò)程,外部過(guò)程均可調(diào)用,但過(guò)程名必須惟一,否則要加標(biāo)準(zhǔn)模塊名。 8.4 變量、過(guò)程的作用域2) 全局級(jí)過(guò)程 8.4 變量、過(guò)程的作用域2、變量的作用域 變量的作用域是指變量能被訪問(wèn)的范圍。根據(jù)變量聲明的位置,把變量的作用域分為過(guò)程級(jí)和模塊級(jí)。對(duì)于模塊級(jí)變量,根據(jù)限制范圍的關(guān)鍵字(Private或Public)又可分為私有級(jí)變量和公有級(jí)變量。為了便于理

16、解,下面按照過(guò)程級(jí)、窗體級(jí)(私有級(jí)變量)和全局級(jí)(公有級(jí)變量)三種分別介紹。 1) 過(guò)程級(jí)變量 過(guò)程級(jí)變量的作用范圍限制在該過(guò)程內(nèi)部,也就是說(shuō)在一個(gè)過(guò)程內(nèi)部聲明的變量,只有該過(guò)程內(nèi)部的代碼才能訪問(wèn)或改變變量的值。在過(guò)程內(nèi)部,局部變量可通過(guò)以下兩種形式聲明 。 8.4 變量、過(guò)程的作用域2、變量的作用域8.4 變量、過(guò)程的作用域用Dim聲明局部變量 用Dim聲明的變量采用動(dòng)態(tài)存儲(chǔ)分配方式。即每次過(guò)程調(diào)用時(shí),系統(tǒng)都會(huì)為變量分配所需的存儲(chǔ)單元并進(jìn)行初始化,并在過(guò)程調(diào)用結(jié)束時(shí)自動(dòng)將其釋放。用Static聲明局部變量 用Static聲明的局部變量采用靜態(tài)存儲(chǔ)分配方式,系統(tǒng)在程序運(yùn)行開(kāi)始時(shí)為其分配存儲(chǔ)單元

17、并初始化,此后該存儲(chǔ)單元始終由它占用,直至程序結(jié)束。 靜態(tài)變量?jī)H初始化一次,以后再次調(diào)用時(shí)就不初始化了。如果在某個(gè)過(guò)程中未說(shuō)明而直接使用了某個(gè)變量,則該變量被默認(rèn)為過(guò)程級(jí)變量8.4 變量、過(guò)程的作用域用Dim聲明局部變量 如果在某個(gè)過(guò)程中未說(shuō)明而直接使用了某 注意下面的程序,其中用Static聲明局部變量 Private Sub Command1_Click() Static x%, s% x = x + 4 s = s + 1 Print x, s End Sub 例中的靜態(tài)變量s和x,除了在過(guò)程第一次調(diào)用時(shí)自動(dòng)賦初始值0外,以后每次調(diào)用時(shí)其初始值均為前一次調(diào)用結(jié)束時(shí)的值。8.4 變量、過(guò)程的作用域 注意下面的程序,其中用Static聲明局部變量8.4 2)窗體(模塊)級(jí)變量 窗體(模塊)級(jí)變量的作用域限制在聲明它的窗體(模塊)中的所有過(guò)程均可訪問(wèn)該變量,其他窗體不能訪問(wèn)該變量。在窗體的通用聲明段中用Private或Dim關(guān)鍵字聲明。3)全局級(jí)變量 全局級(jí)變量在所有模塊的所有過(guò)程都能使用,它的作用范圍是整個(gè)應(yīng)用程序,在模塊的通用段中使用Public關(guān)鍵字聲明。8.4 變量、過(guò)程的作用域2)窗體(模塊)級(jí)變量 8.4 變量、過(guò)程的作用域遞歸的思想:遞歸概念:一個(gè)過(guò)程調(diào)用自己本身。遞歸實(shí)現(xiàn):(如:N!)分析:根據(jù)階乘的定義,求n的階乘可以轉(zhuǎn)換為求n*(n-1)!

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論