Ejercicio de pila resuelto de la Práctica 6 1- Resolver las pilas de ejecución siguiendo las reglas de alcance estático y dinámico. a) Program Main; var i,j:integer; Procedure B; begin i:= i - 4; end {B}; Function y (j:integer):integer; begin y:= j + i; end {y}; Procedure C (var a:integer; b:integer); var z:integer; begin z:= y ( b ); a:= a – 2; B; end {C}; Procedure A (var x:integer; k:integer); var i,j:integer; Procedure B; begin i:= i + 7; end; begin i:=19; j:= x + 5; k:= k + 3; C (x ,k ); writeln( i ,j ,x , k ); end {A}; begin i:=30; j:=15; A(i , j); writeln(i , j); end. {Main} Cadena Estática Enlace estático Enlace dinámico RA Main RA A(i,j) RA C(x,k) RA Y(b) i = 30 28 24 j = 15 B,Y,C,A proc x i k = 15 18 i = 19 j = 35 B proc 4 a x b = 18 z = 48 3 1 2 Cadena Dinámica RA Main RA A(i,j) RA C(x,k) RA Y(b) RA B El proc. A imprime i = 19 j = 35 x =24 k = 18 j = 18 z = 48 RA B Enlace estático El Main imprime: i = 24 j = 15 5 i = 30 28 j = 15 B,Y,C,A proc x i k = 15 18 i = 19 26 j = 35 B proc a x b = 18 z = 37 Enlace dinámico El Main imprime: i = 28 j = 15 5 El proc. A imprime i = 26 j = 35 x =28 k = 18 4 3 j = 18 y = 37 1 2