EJEMPLOS DE CORRIDA EN FRÍO Escriba la salida de los siguientes programas, indicando en forma clara y ordenada, los valores de las variables: PRIMER EJEMPLO Program Examen; var a,b,c:integer; Procedure P1 (var a:integer; b:integer); Procedure P2 (c,a:integer); begin a := b-2+a-3; writeln (a,b,c); end; {fin del procedimiento P2} begin a := a*2 + b; b:= a+1+c; P2(a,b); writeln (a,b,c) end; {fin del procedimiento P1} begin a:=3; b:=2; c:=1; P1 (c,a); writeln (a,b,c); P1 (b,a); writeln (a,b,c) end. Salidas: 17 11 5 5 11 5 3 2 5 21 13 7 7 13 5 3 7 5 Llamadas realizadas P1 (1, 3) P2 (5, 11) P1 (2, 3) P2 (7, 13) Programación I Prof. Gloria Tarrío V. Árbol de Ejecución PROGRAMA PRINCIPAL a=3 b =2/ 7 c=1 / 5 Procedimiento P1 a=1 / 5 / 2 / 7 b = 3 / 11 / 3 / 13 Procedimiento P2 a=5 / 7 b = 11 / 17 / 13 / 21 Programación I Prof. Gloria Tarrío V. SEGUNDO EJEMPLO program examen; var x, z, r : integer; function primero (var x: integer; z:integer):integer; begin x := x + 2; z := z + 1; writeln('Salida en primero:',x + z); primero := x + z end; procedure segundo (var x,y: integer); function otra (x: integer; z:integer):integer; begin x := x + z; writeln('Salida en otra:',x); otra := x + z end; begin y := y + otra (z, x) + x; x := z + x + 1; writeln('Salida en segundo:',y) end; function tercero (x: integer; var y: integer): integer; function cuarto (x: integer): integer; begin x := x + 1; writeln('Salida en cuarto:',x + z); cuarto := x + z end; begin x := x + 1; z := z + x - y + 2; if x mod 2 = 0 then y := y + 1 else y := y - 1; x := cuarto (x) + y; writeln ('Salida en tercero:',x); tercero := x end; begin z := 2; x := 1; segundo (z, x); r := primero(z,x) + tercero (8, x); writeln('Salida final:', z:3, x:3, r:3); read (x) end. Programación I Prof. Gloria Tarrío V. Salidas: Salida en otra: 4 Salida en segundo: 9 Salida en primero: 17 Salida en cuarto: 19 Salida en tercero: 27 Salida final: 9 8 44 Llamadas realizadas segundo (2,1) otra (2,2) primero (5,9) tercero (8,9) cuarto (9) Árbol de ejecución: PROGRAMA PRINCIPAL x =1 / 9 / 8 z =2/ 5 / 7 / 9 r = 44 Función primero x= 5 / 7 z = 9 / 10 Retorno = 17 Programación I Procedimiento segundo Función tercero x=2 / 5 z=1 / 9 x = 8 / 9 / 27 y=9 / 8 Retorno = 27 Función otra Función cuarto x=2 / 4 z=2 Retorno = 6 x = 9 / 10 Retorno = 19 Prof. Gloria Tarrío V.