|
@@ -0,0 +1,39 @@
|
|
|
+{$mode delphi}
|
|
|
+{$modeswitch nestedprocvars}
|
|
|
+
|
|
|
+type
|
|
|
+ tfunc = function (a1,a2,a3,a4,a5,a6,a7,a8,a9: longint): longint;
|
|
|
+
|
|
|
+procedure proc;
|
|
|
+
|
|
|
+ function nested(a1,a2,a3,a4,a5,a6,a7,a8,a9: longint): longint;
|
|
|
+ begin
|
|
|
+ result:=a1+a2+a8+a9;
|
|
|
+ end;
|
|
|
+
|
|
|
+var
|
|
|
+ n: tfunc;
|
|
|
+ i: longint;
|
|
|
+begin
|
|
|
+ i:=nested(1,2,3,4,5,6,7,8,9);
|
|
|
+ writeln(i);
|
|
|
+ if i<>20 then
|
|
|
+ begin
|
|
|
+ writeln('Invalid result.');
|
|
|
+ halt(1);
|
|
|
+ end;
|
|
|
+
|
|
|
+ n:=@nested;
|
|
|
+ i:=n(1,2,3,4,5,6,7,8,9);
|
|
|
+ writeln(i);
|
|
|
+ if i<>20 then
|
|
|
+ begin
|
|
|
+ writeln('Invalid result.');
|
|
|
+ halt(2);
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
+begin
|
|
|
+ proc;
|
|
|
+ writeln('OK');
|
|
|
+end.
|