freepascal高级培训摘要

上传人:小** 文档编号:54648382 上传时间:2018-09-16 格式:PPT 页数:27 大小:163.50KB
返回 下载 相关 举报
freepascal高级培训摘要_第1页
第1页 / 共27页
freepascal高级培训摘要_第2页
第2页 / 共27页
freepascal高级培训摘要_第3页
第3页 / 共27页
freepascal高级培训摘要_第4页
第4页 / 共27页
freepascal高级培训摘要_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《freepascal高级培训摘要》由会员分享,可在线阅读,更多相关《freepascal高级培训摘要(27页珍藏版)》请在金锄头文库上搜索。

1、函数与过程,作用:每一个函数或过程都可以看做是主 程序的一个子程序。能将复杂的问题分解成更小更简单的问题。 区别: 函数名能返回数值。 如 sqr(9)=81; copy(abc,1,2)=ab过程名不能返回数值。 如 inc(x) : x:=x+1;insert(s1,s,n): 改变字符串s。delete(s,n,m); 改变字符串s。,定义新函数:function,格式:function 函数名(形式参数):函数类型var变量说明部分begin,例:输入两个数,求出其中较小的数。 Function xiao(x,y:integer):integer; begin if xy then x

2、iao:=y else xiao:=x; end;,定义新函数:function,格式:function 函数名(形式参数):函数类型var变量说明部分begin,例:判断某个自然数是不是质数。 Function zhishu(n: integer): boolean; Var i,x:integer; begin For i:=1 to n do if n mod i =0 then inc(x); If x=2 then zhishu; end;,函数的调用,格式:函数名(实在参数表),例:输入三个数,求出其中最小的数。 Function xiao(x,y:integer):integer

3、; begin if xy then xiao:=y else xiao:=x; end; Begin Var a,b,c,t:integer; Begin readln(a,b,c); t:=Xiao(a,b); t:=xiao (t,c); Writeln(t); End.,函数的调用,格式:函数名(实在参数表),例:输入自然数k,输出小于k的所有的质数。,Var k,i:integer; begin readln(k); For i:=2 to k do If zhishu(i) then write(i, ); end.,Function zhishu(n: integer): boo

4、lean; Var i,x:integer; begin For i:=1 to n do if n mod i =0 then inc(x); If x=2 then zhishu; end;,求p=(a+b)!/(a!+b!),Var a,b:integer; p:real Function js(n:integer):real Var i,t:integer; begin t:=1; for i:=1 to n do t:=t*i; js:=t; end; begin readln(a,b); p:=js(a+b)/(js(a)+js(b); Writeln(p); End.,3 4,自

5、 定 义 过 程,格式: procedure 过程名(形式参数表);Var 变量说明部分begin过程体end;,定义过程fa,求n! Procedure fa(n:integer; var p:real);Var i:integer; Begin P:=1; For i:=1 to n do p:=p*i; End;,值形参,变量形参,值形参只能把值传入函数或过程。,变量形参既能把值传入过程,又能把值传出过程。,自 定 义 过 程,格式: procedure 过程名(形式参数表);Var 变量说明部分begin过程体end;,定义过程jiaohuan,交换两个变量的值。 Procedure

6、jiaohuan( var a,b:integer);Var t:integer; Begin t:=a; a:=b; b:=t; End;,变量形参,自 定 义 过 程,格式: procedure 过程名(形式参数表);Var 变量说明部分begin过程体end;,定义过程prin,打印表头 Procedure prin; Var i:integer; Begin For i:=1 to 10 do write(+); Writeln(print); For i:=1 to 10 do write(+); End;,无形式参数,+ Print +,过程的调用 过程名(实在参数表),Proce

7、dure fa(n:integer;var p:integer); Var i:integer; Begin P:=1; For i:=1 to n do p:=p*i; End;,Var x,s:integer; Begin fa(3,x); S:=s+x; fa(4,x); S:=s+x; Writeln(s); End.,X:=1*1*2*3=6,X:=1*1*2*3*4=24,过程的调用 过程名(实在参数表),Procedure fa(n:integer;var p:integer); Var i:integer; Begin P:=1; For i:=1 to n do p:=p*i

8、; End;,Var x,s:integer; Begin fa(3,x); S:=s+x; fa(4,x); S:=s+x; Writeln(s); End.,X:=1;,X:=1*1*2*3=6,X:=6*1*2*3*4=144,Procedure jh( var a,b:char); Var t:char; Begin t:=a; a:=b; b:=t; End; Var n:char; i,j:integer;x:array 15 of char; Begin For i:=1 to 5 do read(xi); For i:=1 to 4 do For j:= i+1 to 5 do

9、 if xixj then jh(xi,xj) ; For i:=1 to 5 do write(xi:5); End.,Qvstj,Q j s t v,局部变量和全程变量,局部变量:在定义过程或函数中说明的变量。function 函数名(形式参数):函数类型var变量说明部分beginprocedure 过程名(形式参数);Var 变量说明部分begin作用范围:所在的过程或函数中,局部变量和全程变量,Procedure jh( var a,b:char); Var t:char; Begin t:=a; a:=b; b:=t; End; Var n:char; i,j:integer;x:

10、array 15 of char; Begin For i:=1 to 5 do read(xi); For i:=1 to 4 do For j:= i+1 to 5 do if xixj then jh; For i:=1 to 5 do write(xi:5); End.,t,全程变量:在主程序中说明的变量,n,i,j,x,全程变量的作用范围,1、全程变量在过程中改变值时,新的值回到主程序后有效。,Var m:integer; Procedure test1; Begin m:=100; end; Begin m:=5; writeln(m); test1; Writeln(m); En

11、d.,5,100,全程变量的作用范围,2、全程变量和局部变量同名时,全程变量只在主程序起作用。,Var m:integer; Procedure test1; Var m:integer; Begin m:=100; end; Begin m:=5; writeln(m); test1; Writeln(m); End.,5,5,Var i,t,s:integer; Procedure fa (n:integer); Var K:integer; Begin t:=1; For k:=2 to n do t:=t*k; End; Begin For i:=3 to 5 do begin fa(

12、i); s:=s+t; end; End.,全程变量可以进入过程或函数中,如t。,t=1*2*3; S=0+6;,t=1*2*3*4; S=6+24;,t=1*2*3*4*5; S=30+120;,Var a,b,c:integer;,Procedure pro Var c:integer; Begin a:=1; b:=2; c:=3; End; Begin a:=100; b:=200; c:=300; Pro; Writeln(a:5;b:5:c:5); End.,a,b是全程变量,作用范围:主程序和子程序(过程)。,C也是全程变量,但由于C与过程中的变量同名,所以,C不参与(子程序)过

13、程的运算。,1 2 300,过程嵌套,Procedure sub;procedure tu1;Begin writeln(+) ; end;procedure tu2;Begin writeln(-); end;BeginTu1;Writeln(welcom);Tu2;End;Begin Sub;end.,+ Welcom -,函数嵌套,Function di (r:real):real; Begin di:=2*3.14*r*r; End; Function cei(r,h:real):real; Begin Cei:=3.14*2*r*h; End; Function biao(r,h:r

14、eal):real; Begin biao:=di(r)+cei(r,h); End; Begin Writeln(biao(2,3); End.,设有一函数定义如下,Funtion high(x,y:integer):integer; Begin High:=(x+y) div (x-y); End; 执行语句 t:=high(4,high(6,high(4,1)后,变量t的值是 _,1,Var x:integer; Function f1(m:integer):integer; Function f2(n:integer):integer;Begin f2:=n+1; end; Begin

15、 f1:=m *f2(m); end;Begin X:=5; X:=f1(x)+x; Write(x=,x); End.,Var x:integer; Procedure pp(m:integer); Var i,j:integer; Function f(n:integer):integer; Begin f:=f+1; end; Begin For i:=m downto 1 Beginfor j:=1 to f(i) do write(*); Writeln; End; End; Begin X:=6; pp(x); End.,递归,概念:函数或过程调用它本身,称为递归。,用递归法计算n!分析: 1 n=1n!=n(n-1)! n0,假设n=4; 4!= 4*3!=4*3*2!=4*3*2*1!,2,6,24,已知1!=1;,1,function js(n:integer):longint; Begin If n=1 then js:=1 else js:=n*js(n-1); End;,用递归法写函数 n!= n*(n-1)!=n*(n-1)*(n-2)*. 1!,1,Program lianxi01; Var n:integer; y:longint;begin readln(n); y:=js(n); Writeln(y); end.,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 宣传企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号