² 求PI
1function GetPI():real { 函数返回PI,返回值类型real }
2
3var sum,n,sign:real; { 声明变量 }
4
5 pd:boolean;
6
7begin { 以下为函数体 }
8
9 sum:=1.0; { 对sum赋值 }
10
11 n:=1.0;
12
13 sign:=1.0;
14
15 while (n<=20000.0) do { 若满足条件则执行while循环 }
16
17 begin
18
19 sign:=-sign;
20
21 n:=n+2.0;
22
23 sum:=sum+sign*1.0/n;
24
25 end;
26
27 return 4.0*sum; { 返回结果 }
28
29end
30
31
32
33function main():real
34
35begin
36
37 return GetPI();
38
39end
40
² 求斐波那契数列
1function fab(i:integer):integer { 不需要声明变量时var可省略 }
2
3begin
4
5 if (i=1) then return 1
6
7 else if (i=2) then return 1
8
9 else return fab(i-1)+fab(i-2);
10
11end
12
13
14
15function main():integer
16
17begin
18
19 return fab(5);
20
21end
22
² 自然数列求和
1function sum(number:integer):integer
2
3var i,sum:integer;
4
5begin
6
7 i:=1;
8
9 sum:=0;
10
11 while (i<=number) do
12
13 begin
14
15 sum:=sum+i;
16
17 i:=i+1;
18
19 end;
20
21 return sum;
22
23end
24
25
26
27function main():integer
28
29begin
30
31 return sum(4);
32
33end
34
² 整数数组求和
1function sum(count:integer; data:integer^):integer
2
3var i, result:integer;
4
5begin
6
7 i:=0;
8
9 result:=0;
10
11 while(i<count)
12
13 begin
14
15 result:=result+data^;
16
17 { data偏移一个整数的距离,指针无法加减,只能强制转换成整数 }
18
19 data:=integer^(integer(data)+sizeof(integer)); { data偏移一个整数的距离 }
20
21 i:=i+1;
22
23 end
24
25end
26