私は宿題でこの問題を間違えました、そして私は理由を理解することができません:
procedure Main is
X: Integer;
procedure Sub1 is
X: Integer;
begin -- of Sub1
Put(X);
end; -- of Sub1
procedure Sub2 is
X: Integer;
begin -- of Sub2
X:=5;
Sub1;
end; -- of Sub2
begin -- of Main
X:=12;
Sub2;
end; -- of Main
問題は次のとおりです。次のAdaプログラムがコンパイルされ、静的スコープルールを使用して実行されたと仮定します。Sub1の手順で出力されるXの値は何ですか?動的スコープルールの下にあった場合はどうなりますか?
私はそれぞれ12と5を取得しましたが、これは正しくないとマークされました。なんで?