【正文】
eginp:=(a+b+c)/2。area:=sqrt(p*(pa)*(pb)*(pc)。End。函數(shù)的調(diào)用1)、函數(shù)的調(diào)用必然出現(xiàn)在表達(dá)式中(等號的右邊),不能以單獨(dú)地在語句出現(xiàn)2)、調(diào)用時(shí),將每個(gè)實(shí)參傳遞給對應(yīng)的形參Program ml_area(input,output)。varl1,l2,l3,l4,l5,l6,l7,s:real。Function area(a,b,c:real):real。 varp:real。beginp:=(a+b+c)/2。area:=sqrt(p*(pa)*(pb)*(pc)。end。Beginwrite(39。input39。)。readln(l1,l2,l3,l4,l5,l6,l7)。s:=area(l1,l2,l6)+area(l2,l6,l7)+……。writeln(39。s=39。,s:10:3)。End.二、過程格式:PROCEDURE過程名(形式參數(shù)表)VAR說明部分BEGIN過程體END;[例1]某過程的形參表為(var a,b:real。c,d:integer。var e:char);主程序中有如下變量說明:x,y:real。 m:integer。 next:char;則以下實(shí)參表中合法的有:(3)(x,y,m+3,70,next)(y,x,m,m,next)(y,x,35,m DIV 10,next)(m,x,30,10,next)(x,y,m,10)(35,0,y,m,10,next)(x,y,m,m/10,next)(A,B,30,10,next)[例2]求程序輸出的結(jié)果。Program ex(input,output)。varx,y,z:integer。procedure s(x:integer。 var y:integer)。varz:integerbeginx:=5。 y:=6。 z:=7。end。Beginx:=1。 y:=2。 z:=3。s(x,y)。writeln(x,y,z)。End.輸出結(jié)果:1 6 3[例3]:求五個(gè)數(shù)中的最大值。Program max_in_5(input,output)。varn1,n2,n3,n4,n5:integer。procedure lagest_in_three(a,b,c:integer。var e:integer)begine:=a。if be then e:=b。if ce then e:=c。 end。Beginwrite(39?!?9。)。readln(n1,n2,n3,n4,n5)。lagest(n1,n2,n3,n1)。lagest(n1,n4,n5,n1)。write(n1)。End.三、嵌套[例]:計(jì)算 、 Program Cmn(input,output)。function fax(x:integer):integer:vari:integer。beginfac:=1。for i:=1 to x do fac:=fac*i。end。function c(a,b:integer):real。beginc:=fac(a)/fac(b)*fac(ab)end。Beginwriteln(39。c(9,3)=39。,c(9,3))。writeln(39。c(8,5=39。,c(8,5))。End.四、遞歸函數(shù)或過程調(diào)用它本身,稱為遞歸。[例1]、用遞歸計(jì)算n! { =m!/n!(mn)!}Function fac(n:integer):integer。Beginif n=1 then fac:=1else fac:=n*fac(n1)。End。[例2]、下列2個(gè)遞歸函數(shù)和過程的功能是? 1)、Function power(a,b:integer):integer。Beginif b=1 then power:=aelse power:=a*power(a,b1)。End。 2)、Procedure power(a,b:integer。var c:integer)。Beginif