Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
55
Task/Call-a-function/Zonnon/call-a-function.zonnon
Normal file
55
Task/Call-a-function/Zonnon/call-a-function.zonnon
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
module CallingProcs;
|
||||
type
|
||||
{public} Vector = array {math} * of integer;
|
||||
|
||||
var
|
||||
nums: array {math} 4 of integer;
|
||||
ints: Vector;
|
||||
total: integer;
|
||||
|
||||
procedure Init(): boolean; (* private by default *)
|
||||
begin
|
||||
nums := [1,2,3,4];
|
||||
ints := new Vector(5);
|
||||
ints := [2,4,6,8,10];
|
||||
return true;
|
||||
end Init;
|
||||
|
||||
(* function *)
|
||||
procedure Sum(v: Vector): integer;
|
||||
var
|
||||
i,s: integer;
|
||||
begin
|
||||
s := 0;
|
||||
for i := 0 to len(v) - 1 do
|
||||
(* inc is a predefined subroutine *)
|
||||
inc(s,v[i])
|
||||
end;
|
||||
return s
|
||||
end Sum;
|
||||
|
||||
(* subroutine
|
||||
* @param v: by value
|
||||
* @param t: by reference
|
||||
*)
|
||||
procedure Sum2(v: array {math} * of integer; var t: integer);
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
t := 0;
|
||||
for i := 0 to len(v) - 1 do
|
||||
inc(t,v[i])
|
||||
end
|
||||
end Sum2;
|
||||
begin
|
||||
Init; (* calling a function without parameters *)
|
||||
total := Sum(nums);
|
||||
writeln(total);
|
||||
(* optional arguments not supported *)
|
||||
(* variable arguments through open arrays *)
|
||||
writeln(Sum(ints));
|
||||
(* named arguments not supported *)
|
||||
ints := [1,3,5,7,9];
|
||||
Sum2(ints,total);
|
||||
writeln(total);
|
||||
end CallingProcs.
|
||||
Loading…
Add table
Add a link
Reference in a new issue