var total : integer; procedure Test; var a : integer; i : integer; function Nested : integer; begin Nested := 3; end; begin i := 1; a := total; while i < 1000 do begin a := a+1; i := i +1; end; writeln(a); a := Nested; end; procedure Test2; var a : integer; i : integer; function Nested2 : integer; begin Nested2 := 99999; end; function Nested : integer; begin Nested := Nested2; end; begin i := 1; a := total; while i < 1000 do begin a := a+1; i := i +1; end; a := Nested; writeln(a); end; procedure Func; var f : integer; procedure Nested(b : integer); var d : integer; function NestedFunc : integer; begin f := 567; if total < 10 then begin total := total+1; Nested(6); end; writeln(b); NestedFunc := 234; end; begin writeln(f); b := 666; f := NestedFunc; end; begin f := 1234; Nested(777); end; function fact(n : integer) : integer; begin if (n=0) or (n=1) then fact := 1 else fact := n * fact(n-1); end; procedure some_proc(s, t : real);overload; var k : integer; //ch : char; begin //ch := 'i'; k := 1024; Func; end; procedure some_proc(s : real);overload; var u, v : integer; begin u := 1; v := 30; repeat u := u + 1; v := v - 1; until u < v end; function pi : real; begin pi := 3.14; end; function sum(a, b : integer) : integer; var c, d : integer; f : boolean; begin //f := true and (a