{ File: scope.pas }

{ Scopo: esemplificare le regole di visibilita' in PASCAL }

program CampoDiAzione;

var
  i, j : integer;

  procedure Q;
  const
    i = 16;
  var
    k : char;

    procedure R; { procedura locale a Q }
    var
      j : real;
    begin { R }
      { SONO VISIBILI:
        - j : real    - variabile locale
        - i : integer - costante non-locale
        - k : char    - variabile non-locale
        - R, Q        - procedure non-locali
        - NIENT'ALTRO
      }
    end; { R }

  begin { Q }
    { SONO VISIBILI:
      - i : integer   - costante locale
      - k : char      - variabile locale
      - R             - procedura locale
      - j : integer   - variabile non-locale
      - Q             - procedura non-locale
      - NIENT'ALTRO
    }
  end; { Q }

begin { CampoDiAzione }
  { SONO VISIBILI:
    - i,j : integer   - variabili locali (globali)
    - Q               - procedura locale
    - NIENT'ALTRO
  }
end. { CampoDiAzione }