3. Ejemplo (II) program ra ; var a, b : Tipo ; procedure pr1 (p1, p2 : Tipo); var c, d: Tipo ; function pr2 (p3, p4,p5:Tipo):T; var e, c: Tipo ; begin … end ; procedure pr3 (p6, p7: Tipo); begin pr2(3,4,5) end ; begin pr3(6,7) … end ; function pr4: Tipo; var f : Tipo ; begin … end ; begin pr1(1,2) end Memoria global 2 1 0 b a
4. Ejemplo (III) program ra ; var a, b : Tipo ; procedure pr1 (p1, p2 : Tipo); var c, d: Tipo ; function pr2 (p3, p4,p5:Tipo):T; var e, c: Tipo ; begin … end ; procedure pr3 (p6, p7: Tipo); begin pr2(3,4,5) end ; begin pr3(6,7) … end ; function pr4: Tipo; var f : Tipo ; begin … end ; begin pr1(1,2) end 2 1 0 var. temporales d c NIL dir. retorno a pp p2 =2 p1 =1 b a
5. Ejemplo (IV) program ra ; var a, b : Tipo ; procedure pr1 (p1, p2 : Tipo); var c, d: Tipo ; function pr2 (p3, p4,p5:Tipo):T; var e, c: Tipo ; begin … end ; procedure pr3 (p6, p7: Tipo); begin pr2(3,4,5) end ; begin pr3(6,7) … end ; function pr4: Tipo; var f : Tipo ; begin … end ; begin pr1(1,2) end 2 1 0 var. temporales NIL dir. retorno a pr1 p7 =7 p6 =6 RA. pr1 Mem. Global
6. Ejemplo (V) program ra ; var a, b : Tipo ; procedure pr1 (p1, p2 : Tipo); var c, d: Tipo ; function pr2 (p3, p4,p5:Tipo):T; var e, c: Tipo ; begin … end ; procedure pr3 (p6, p7: Tipo); begin pr2(3,4,5) end ; begin pr3(6,7) … end ; function pr4: Tipo; var f : Tipo ; begin … end ; begin pr1(1,2) end 2 1 0 var. temporales c e dir. retorno a pr3 p5 =5 p4 =4 p3 =3 valor devuelto por pr2 RA. pr3 RA. pr1 Mem. Global TOP
7. Ejemplo (VI) program ra ; var a, b : Tipo ; procedure pr1 (p1, p2 : Tipo); var c, d: Tipo ; function pr2 (p3, p4,p5:Tipo):T; var e, c: Tipo ; begin … end ; procedure pr3 (p6, p7: Tipo); begin pr2(3,4,5) end ; begin pr3(6,7) … end ; function pr4: Tipo; var f : Tipo ; begin … end ; begin pr1(1,2) end pp pr1 pr3 pr2
8. Ejemplo (VII) program ra ; var a, b : Tipo ; procedure pr1 (p1, p2 : Tipo); var c, d: Tipo ; function pr2 (p3, p4,p5:Tipo):T; var e, c: Tipo ; begin … end ; procedure pr3 (p6, p7: Tipo); begin pr2(3,4,5) end ; begin pr3(6,7) … end ; function pr4: Tipo; var f : Tipo ; begin … end ; begin pr1(1,2) end TOP 2 1 0 var. temporales c e dir. retorno a pr3 p5 =5 p4 =4 p3 =3 valor devuelto por pr2 RA. pr3 RA. pr1 Mem. Global
9. Ejemplo (VIII) program ra ; var a, b : Tipo ; procedure pr1 (p1, p2 : Tipo); var c, d: Tipo ; function pr2 (p3, p4,p5:Tipo):T; var e, c: Tipo ; begin … end ; procedure pr3 (p6, p7: Tipo); begin pr2(3,4,5) end ; begin pr3(6,7) … end ; function pr4: Tipo; var f : Tipo ; begin … end ; begin pr1(1,2) end TOP 2 1 0 dir. retorno a pr3 p5 =5 p4 =4 p3 =3 valor devuelto por pr2 RA. pr3 RA. pr1 Mem. Global
10. Ejemplo (IX) program ra ; var a, b : Tipo ; procedure pr1 (p1, p2 : Tipo); var c, d: Tipo ; function pr2 (p3, p4,p5:Tipo):T; var e, c: Tipo ; begin … end ; procedure pr3 (p6, p7: Tipo); begin pr2(3,4,5) end ; begin pr3(6,7) … end ; function pr4: Tipo; var f : Tipo ; begin … end ; begin pr1(1,2) end 2 1 0 p5 =5 p4 =4 p3 =3 valor devuelto por pr2 RA. pr3 RA. pr1 Mem. Global TOP
11. Ejemplo (X) program ra ; var a, b : Tipo ; procedure pr1 (p1, p2 : Tipo); var c, d: Tipo ; function pr2 (p3, p4,p5:Tipo):T; var e, c: Tipo ; begin … end ; procedure pr3 (p6, p7: Tipo); begin pr2(3,4,5) end ; begin pr3(6,7) … end ; function pr4: Tipo; var f : Tipo ; begin … end ; begin pr1(1,2) end 2 1 0 var. temporales NIL dir. retorno a pr1 p7 =7 p6 =6 RA. pr1 Mem. Global
Notas del editor
07.01 [Vicente]: Añadido ejemplo TDS 07.02 [Emilio]: -Corregido error en el ejemplo de código Pascal: Las funciones no tenían tipo. - Añadidos valores a parámetros en RA del ejemplo.