函數(shù)與過程精品課件_第1頁
函數(shù)與過程精品課件_第2頁
函數(shù)與過程精品課件_第3頁
函數(shù)與過程精品課件_第4頁
函數(shù)與過程精品課件_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、函數(shù)與過程第1頁,共13頁,2022年,5月20日,9點24分,星期一procedure fiveline; var i:integer; begin for i:=1 to 5 do writeln end;procedure nlines(n:integer); var i:integer; begin for i:=1 to n do writeln end;無參過程,輸出5個空行帶參過程,輸出n個空行過程調(diào)用過程名(實在參數(shù)表) 實在參數(shù)若有,是用逗號隔開的變量或表達(dá)式,他們必須與形式參數(shù)順序一一對應(yīng),個數(shù)相同,類型一致,而實參的名字與形參取名無關(guān)如:procedure lowterm

2、(var n,d:integer);lowterm(n,d);lowterm(n+d);lowterm(n,n/d);實參只有一個第二個實參是實型,而對應(yīng)的形參是整型第2頁,共13頁,2022年,5月20日,9點24分,星期一過程調(diào)用是一個獨(dú)立的語句,當(dāng)執(zhí)行到該語句時,則將實參中的信息傳送給相應(yīng)的形參(若有的話),然后轉(zhuǎn)去執(zhí)行過程說明中的語句,執(zhí)行完畢后返回到調(diào)用位置例3:定義一個打印由“”組成的三角形的過程,然后,在主程序中輸入行數(shù),并調(diào)用該過程輸出三角形。第3頁,共13頁,2022年,5月20日,9點24分,星期一Procedure sjx(x:integer);Var I,j:integ

3、er;Begin for I:=1 to x do begin for j:=1 to I do write(); writeln; end;End;Var a:integer;Begin read(a); sjx(a);End.第4頁,共13頁,2022年,5月20日,9點24分,星期一練習(xí)1:分別用函數(shù)和過程計算S=1/7!+1/9!+1/13!Procedure f(n:integer;var fac:real); var i:integer;k:longint; begin k:=1; for i:=2 to n do k:=k*i; fac:=1/k end;Var s1,s2,s3

4、:real;begin f(7,s1); f(9,s2); f(13,s3); s1:=s1+s2+s3; writeln(s1)end.Function f(n:integer):real; var i:integer;k:longint; begin k:=1; for i:=2 to n do k:=k*i; f:=1/k end;Var s:real; begin s:=f(7)+f(9)+f(13); writeln(s) end.第5頁,共13頁,2022年,5月20日,9點24分,星期一三、參數(shù)傳遞形參有4種:值參數(shù)、變量參數(shù)、過程參數(shù)、函數(shù)參數(shù)形式參數(shù)表中前無var,后有類型的

5、參數(shù) 形式參數(shù)表中前有var后有類型的參數(shù) 形參實參值參類型賦值相容的表達(dá)式變量參數(shù)同一類型的變量例:var x:real;i:integer;procedure change(y:real); begin end;change(sin(x)+0.5);change(1.0);change(x);change(i);若將過程首部改為:procedure change(var y:real);只有change(x)正確第6頁,共13頁,2022年,5月20日,9點24分,星期一形參是值參:過程或函數(shù)被調(diào)用時,系統(tǒng)為每個值參開辟臨時存儲單元,然后將對應(yīng)實參的值賦給值參。由于值參與實參是不同的存儲單

6、元,所以過程體中對值參的改變不會影響實參,數(shù)據(jù)的傳送是單向的,當(dāng)流程返回到調(diào)用程序時,值參所占的存儲單元被釋放。形參是變量參數(shù):進(jìn)入過程體前,系統(tǒng)將實參的存儲地址傳送給形參,過程體執(zhí)行期間,對變量參數(shù)的操作就是對相應(yīng)實參的操作,從而達(dá)到調(diào)用函數(shù)與被調(diào)函數(shù)之間互相傳送數(shù)據(jù)的目的。參考課本P84P86第7頁,共13頁,2022年,5月20日,9點24分,星期一例Program transmit; var a,b:integer; procedure p(var x:integer;y:integer); begin x:=x+5; y:=y+5; writeln(x=,x,y=,y) end; b

7、egin a:=3;b:=3; p(a,b); p(a,b); writeln(a=,a,b=,b) end.x=8 y=8x=13 y=8a=13 b=3閱讀課本例69P86第8頁,共13頁,2022年,5月20日,9點24分,星期一四、標(biāo)識符的作用域在主程序中說明的常量、類型、變量、過程名等標(biāo)識符,它們的作用域是整個程序,故稱為全程量。而在過程或函數(shù)中說明的常量、類型、變量、參數(shù)以及嵌套在其內(nèi)的過程名等標(biāo)識符,作用域是說明它的過程或函數(shù)分程序之內(nèi),在之外不能使用,這些標(biāo)識符成為局部量。如果在過程或函數(shù)中局部量與全程量(或非局部量)同名,則阻礙了過程或函數(shù)對同名全程量(或非局部量)的訪問。P

8、rogram example; var x,y:integer; procedure change; var x:integer; begin x:=2;y:=2; writeln(x,y) end; begin x:=1;y:=1; writeln(x,y); change; writeln(x,y) end.全局量與局部量分析結(jié)果112212第9頁,共13頁,2022年,5月20日,9點24分,星期一五、嵌套一個函數(shù)或過程可能要求調(diào)用另一個函數(shù)或過程,我們稱這種調(diào)用為函數(shù)與過程的嵌套Program nest; procedure outer1; procedure inner(z:real

9、); begin . end;inner begin end;outer1 procedure outer2; begin end; begin主程序 end.調(diào)用原則(函數(shù)同過程):1、外層的主程序或過程可以調(diào)用相鄰內(nèi)層的過程,但不允許隔層調(diào)用2、內(nèi)層可以調(diào)用外層過程3、同一層的過程可以相互調(diào)用,但要遵守“向前說明”的原則nestouter1outer2inner第10頁,共13頁,2022年,5月20日,9點24分,星期一過程和函數(shù)的區(qū)別過程和函數(shù)都為子程序,但也有區(qū)別:1、標(biāo)識符不同。函數(shù)的標(biāo)識符為FUNCTION,過程為:PROCEDURE。2、函數(shù)中一般不用變量形參,用函數(shù)名直接返回

10、函數(shù)值;而過程如有返回值,則必須用變量形參返回。3、過程無類型,不能給過程名賦值;函數(shù)有類型,最終要將函數(shù)值傳送給函數(shù)名。4、函數(shù)在定義時一定要進(jìn)行函數(shù)的類型說明,過程則不進(jìn)行過程的類型說明。5、調(diào)用方式不同。函數(shù)的調(diào)用出現(xiàn)在表達(dá)式中,過程調(diào)用,由獨(dú)立的過程調(diào)用語句來完成。6、過程一般會被設(shè)計成求若干個運(yùn)算結(jié)果,完成一系列的數(shù)據(jù)處理,或與計算無關(guān)的各種操作;而函數(shù)往往只為了求得一個函數(shù)值。第11頁,共13頁,2022年,5月20日,9點24分,星期一1、設(shè)計一個過程,計算圓的面積。在主程序中輸入一個半徑值,然后調(diào)用該過程,并輸出圓的面積。const pi=3.1415926;var r,s:real;procedure yuan(x:real;var y:real); begin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論