Siguiendo la guía de referencia adelantada del tema5 de PL2
[PL2.git] / prueba1
1 modulo pila\r
2 \r
3 importacion: modulo1, modulo2\r
4 exportacion:\r
5 \r
6 // Pila con 100 elementos como maximo \r
7 inst clase Pila  \r
8 {\r
9    oculto formacion 100 Elemento almacen;\r
10    oculto Pila a;\r
11    oculto Elemento b;\r
12    oculto entero cima;\r
13    \r
14    iniciar()\r
15    {\r
16         cima := 0;\r
17         a := 3;\r
18         tal.inicio();\r
19    }\r
20 \r
21    estaLlena() dev logico\r
22    {\r
23         si (cima = 100) entonces\r
24                 dev cierto;\r
25         sino\r
26                 dev falso;\r
27         finsi\r
28    }\r
29 \r
30    apilar(Elemento elem)\r
31    {\r
32       si (no estaLlena( ) ) entonces\r
33                 cima := cima + 1 + 2;\r
34                 almacen[cima] := elem;\r
35           finsi   \r
36    }   \r
37    \r
38    estaVacia() dev logico\r
39    {\r
40         si (cima = 0) entonces\r
41                 dev cierto;\r
42         sino\r
43                 dev falso;\r
44         finsi\r
45    }\r
46    \r
47    desapilar() dev Elemento\r
48    {\r
49       si (no estaVacia()) entonces \r
50                 cima := cima - 1;\r
51                 dev almacen[cima+1];\r
52         sino\r
53                 dev almacen[cima];\r
54         finsi\r
55    }   \r
56 }\r
57 \r
58 inst clase Elemento\r
59 {\r
60    oculto entero e;\r
61    \r
62    consultar() dev entero\r
63    {\r
64       dev e;\r
65    }\r
66    modificar(entero n)\r
67    {\r
68       e := n;\r
69    }  \r
70 }\r
71 \r
72 \r
73 clase Programa\r
74 {\r
75 inicio()\r
76 {\r
77         Elemento e;\r
78         Pila p;\r
79         entero i;\r
80         p:=crear(Pila);\r
81         p.iniciar();\r
82       i :=1;\r
83       mientras (i<=10) hacer\r
84             e := crear(Elemento);\r
85           e.modificar(i);\r
86           p.apilar(e);\r
87           i:=i+1;\r
88        finmientras\r
89 }}\r
90 \r
91 implementacion:\r
92 clase tal\r
93 {\r
94 inicio()\r
95 {\r
96         Elemento e;\r
97         Pila p;\r
98         entero i;\r
99         p:=crear(Pila);\r
100         p.iniciar();\r
101       i :=1;\r
102       mientras (i<=10) hacer\r
103             e := crear(Elemento);\r
104           e.modificar(i);\r
105           p.apilar(e);\r
106           i:=i+1;\r
107        finmientras\r
108 }\r
109 }