Program A()
{
x, y, z: integer;
procedure B()
{
y: integer;
y=0;
x=z+1;
z=y+2;
}
procedure C()
{
z: integer;
procedure D()
{
x: integer;
x = z + 1;
y = x + 1;
call B();
}
z = 5;
call D();
}
x = 10;
y = 11;
z = 12;
call C();
print x, y, z;
}
По моему мнению, результатом этой программы при использовании статического охвата является: x = 13, y = 7 и z = 2.
Однако, когда он запускается с использованием динамического охвата, результат: x = 10, y = 7 и z = 12.
Это результаты, которые дал нам наш профессор. Однако я не могу понять, насколько он достиг этих результатов. Может ли кто-нибудь пройти через псевдокод и объяснить свои значения в двух разных типах областей?