资源描述
PASCAL-子程序,过程(子程序),过程单独写成一个程序段,可以多次调用,可以 通过参数处理不同的数据。,procedure abc ( x:integer); begin end ;,过程名,参数表,子程序的内容,过程(子程序),program ex701; var u,v:integer; procedure p1(x,y:integer); var i,j:integer; begin for i:=1 to x do begin j:=y+i; write(j); end; end;,Begin u:=6; v:=5; p1(u,v); writeln; u:=u+v; v:=u*v; p1(u,v); writeln(end); End.,过程在程序中的位置及调用,过程(子程序),无参过程,Program draws; procedure line; const length=10; var i : integer; begin for i:=1 to length do write(); writeln; end; Begin line; writeln ( Hello ! ); line; End.,输出: Hello! ,过程(子程序),有参过程,Program draws; procedure line(length:integer); var i : integer; begin for i:=1 to length do write(); writeln; end; Begin line(10); writeln ( Hello ! ); line(8); line(5); End.,输出: Hello! ,过程(子程序),参数:值参、变参,procedure line ( x : integer );,值参,procedure line ( var y : integer );,变参,过程(子程序),值参和变参的区别,Program zc; var n:integer; procedure A (x:integer); var i:integer; begin for i:=1 to x do write(); writeln; x:=x+10; end; Begin read(n); A(n); writeln(n=,n); End.,输入:5 输出: n=5,5,5,x=15,5,复制,值参,15,过程(子程序),值参和变参的区别,Program zc; var n:integer; procedure B (var x:integer); var i:integer; begin for i:=1 to x do write(); writeln; x:=x+10; end; Begin read(n); B(n); writeln(n=,n); End.,输入:5 输出: n=15,5,5,x=15,变参,没有开新的空间!,5,15,过程(子程序),var a,b:integer; x,y:integer; procedure fun(a,b:integer); var k:integer; begin k:=a; a:=b; b:=k; end; begin a:=3; b:=6; x:=a; y:=b; fun(x,y); writeln(No.1:, a , b ); fun(a,b); writeln(No.2:, a , b ); end.,例:2007年联赛第4题, : 指向内存地址, : 该地址的内容,输出: No.1: 3 6 No.2: 3 6,忘了,值参,过程(子程序),全局变量和局部变量,在主程序说明的为全局变量;,在子程序说明的为局部变量;,当全局变量和局部变量同名时,子程序中的变量不影响全局变量。,仅在该子程序中有效,过程(子程序),Program same; var x:integer; procedure let; var x:integer; begin x:=1; writeln(x); end; Begin x:=0; let; writeln(x); End.,全局变量和局部变量同名,运行结果: 输出: 1 0,局部变量,全局变量,计算机内存:,函数,函数:和过程类似,都是独立的程序段,不同之处 在于它会返回一个值。,function abc ( x:integer) : boolean; begin abc:=; end ;,函数名,参数表,给函数赋值,函数类型,函数,program area; 求五边形面积 var L1,L2,L3,L4,L5,L6,L7,s:real; function ts(a,b,c:real):real; 计算三角形面积ts var p:real; begin p:=(a+b+c)/2; ts:=sqrt(p*(p-a)*(p-b)*(p-c); 海伦公式 end; Begin read(L1,L2,L3,L4,L5,L6,L7); 输入各边长 s:=ts(L1,L2,L6)+ts(L6,L3,L7)+ts(L7,L4,L5); 计算五边形面积 writeln(area=,s); 输出面积 End.,
展开阅读全文