1
+ import Foundation
2
+
3
+
4
+ // Creación de la clase UserInfo
5
+ class UserInfo {
6
+
7
+ // Declaración de las propiedades de la clase.
8
+ var id : String
9
+ let name : String
10
+ var userName : String
11
+ var email : String
12
+ var age : Int
13
+
14
+ // Definición del inicializador de la clase.
15
+ init ( id: String , name: String , userName: String , email: String , age: Int ) {
16
+ self . id = id
17
+ self . name = name
18
+ self . userName = userName
19
+ self . email = email
20
+ self . age = age
21
+ }
22
+ // Definición de los metodos de la clasw.
23
+ func showName( ) {
24
+ print ( name)
25
+ }
26
+ func showUserName( ) {
27
+ print ( userName)
28
+ }
29
+ func showEmail( ) {
30
+ print ( email)
31
+ }
32
+ func showAge( ) {
33
+ print ( age)
34
+ }
35
+ }
36
+
37
+ // USER1
38
+ print ( " \n user1 \n " )
39
+
40
+ // Crea el objeto user1 de la clase UserInfo().
41
+ var user1 = UserInfo ( id
: " 01 " , name
: " Raul " , userName
: " Ra01Mad " , email
: " [email protected] " , age
: 39 )
42
+
43
+ // Asigna la propiedad name de la clase a la variable user1Nmae.
44
+ let user1Name = user1. name
45
+ // Accede al metodo showName() del objeto user1.
46
+ user1. showName ( )
47
+
48
+ // Asigna la propiedad userName de la clase a la variable user1UserName.
49
+ var user1UserName = user1. userName
50
+ // Accede al metodo showUserName() del objeto user1.
51
+ user1. showUserName ( )
52
+
53
+ // Asigna la propiedad email de la clase a la variable user1Email.
54
+ var user1Email = user1. email
55
+ // Accede al metodo showEmail() del objwto user1.
56
+ user1. showEmail ( )
57
+
58
+ // Asigna la propiedad age de la clase a la variable user1Age.
59
+ var user1Age = user1. age
60
+ // Accede al metodo showAge() del objeto user1.
61
+ user1. showAge ( )
62
+
63
+ // uSER2
64
+ print ( " \n user2 \n " )
65
+
66
+ // Crea el objeto user2 de la clase UserInfo().
67
+ var user2 : UserInfo = UserInfo ( id
: " 02 " , name
: " Selvia " , userName
: " Silvi3 " , email
: " [email protected] " , age
: 27 )
68
+
69
+ // Asigna la propiedad name de la clase a la variable user2Name.
70
+ let user2Name = user2. name
71
+ // Accede al metodo showName del objeto user2.
72
+ user2. showName ( )
73
+
74
+ // Asigna la propiedad userName de la clase a la variable user2UserName.
75
+ var user2UserName = user2. userName
76
+ // Accede al metodo showUserName() del objeto user2.
77
+ user2. showUserName ( )
78
+
79
+ // Asigna la propiedad email de la clase a la variable user2Email.
80
+ var user2Email = user2. email
81
+ // Accede al metodo showEmail() del objeto user2.
82
+ user2. showEmail ( )
83
+
84
+ // Asigna la propiedad age a la variable user2Age.
85
+ var user2Age = user2. age
86
+ // Accede al metodo showAge() del objeto user2.
87
+ user2. showAge ( )
88
+
89
+ // CAMBIOS EN USER1
90
+ print ( " \n Cambios de user1 \n " )
91
+
92
+ // Cambia el valor de la propiedad userName del objeto user1.
93
+ user1. userName = " RaulitoEDLG "
94
+ // Accede al metodo showUserName() del objeto user1
95
+ user1. showUserName ( )
96
+
97
+ // Cambiar el valor de la propiedad age del objeto user1.
98
+ user1. age = 40
99
+ // Accede al metodo showAge() del objeto user1.
100
+ user1. showAge ( )
101
+
102
+ // CAMBIOS EN USER2
103
+ print ( " \n Cambios de user2 \n " )
104
+
105
+ // Cambia el valor de la proiedad email del objeto user2.
106
+
107
+ // Accede al metodo showEmail() del objeto user2
108
+ user2. showEmail ( )
109
+
110
+ // Cambia el valor de la propiedad age del objeto user2.
111
+ user2. age = 28
112
+ // Accede al metodo showAge() del objeto user2
113
+ user2. showAge ( )
114
+
115
+
116
+
117
+ // DIFICULTAD EXTRA
118
+
119
+ print ( " \n STACK \n " )
120
+ // Crea una clase Stack.
121
+ class Stack < T> {
122
+
123
+ // Declaracion de la propiedad staxk
124
+ private var stack : [ T ] = [ ]
125
+
126
+ // Definición del inicializador de la clase
127
+ init ( stack: [ T ] ) {
128
+ self . stack = stack
129
+ }
130
+
131
+ // Definicion del metodo push(), que añade elementos.
132
+ func push( _ item: T ) {
133
+ stack. append ( item)
134
+ }
135
+
136
+ // Definición del metodo pop(), que elimina el ultimo item de la lista y lo reotorna.
137
+ func pop( ) -> T ? {
138
+ return stack. removeLast ( )
139
+ }
140
+
141
+ // Definición del metodo peek(), que retorna el ultimo item de la lista.
142
+ func peek( ) -> T ? {
143
+ return stack. last
144
+ }
145
+
146
+ // Definición del metodo isEmpty(), que retorna si la lista esta vacio.
147
+ func isEmpty( ) -> Bool {
148
+ return stack. isEmpty
149
+ }
150
+
151
+ // Definición del metodo count(), que retorna la cantidad de items que tiene la lista.
152
+ func count( ) -> Int {
153
+ return stack. count
154
+ }
155
+ }
156
+
157
+ // Crea el objeto myStack de la clase Stack().
158
+ var myStack = Stack ( stack: [ " Paris " , " Madrid " , " Tokio " , " New York " ] )
159
+
160
+ // Añade un nuevo item a la lista usando el metodo push().
161
+ myStack. push ( " El Kaito " )
162
+
163
+ // Elimina el ultimo item de la lista y lo devuelve en e imprime la variable pop usando el metodo pop().
164
+ if let pop = myStack. pop ( ) {
165
+ print ( pop)
166
+ }
167
+
168
+ // Devuelve e imprime el ultimo item de la lista en la variable peek usando el metodo peek().
169
+ if let peek = myStack. peek ( ) {
170
+ print ( peek)
171
+ }
172
+
173
+ // Devuelve si la lista esta vacia.
174
+ print ( myStack. isEmpty ( ) )
175
+
176
+ // Devuelve la cantidad de items de la lista.
177
+ print ( myStack. count ( ) )
178
+
179
+
180
+
181
+ print ( " \n QUEUE \n " )
182
+ // Crea la clase Queue.
183
+ class Queue < T> {
184
+
185
+ // Declaración de la propiedad queue.
186
+ var queue : [ T ] = [ ]
187
+
188
+ // Definicion del inicializador de la clase.
189
+ init ( queue: [ T ] ) {
190
+ self . queue = queue
191
+ }
192
+
193
+ // Definición del metodo enqueue(), que anade un item al final de la lista.
194
+ func enqueue( _ Item: T ) {
195
+ queue. append ( Item)
196
+ }
197
+
198
+ // Definición del metodo dequeue(), que elimina y retorna el primer item de la lista.
199
+ func dequeue( ) -> T ? {
200
+ return queue. removeFirst ( )
201
+ }
202
+
203
+ // Definición del metodo peek(), que retorna el primer item de la lista.
204
+ func peek( ) -> T ? {
205
+ return queue. first
206
+ }
207
+
208
+ // Definición del metodo isEmpy(), que retorno si la lista esta vacia.
209
+ func isEmpty( ) -> Bool {
210
+ return queue. isEmpty
211
+ }
212
+
213
+ // Definición del metodo count(), que retorna el numero de items de la lista.
214
+ func count( ) -> Int {
215
+ return queue. count
216
+ }
217
+ }
218
+
219
+ // Crea el objeto myQueue de la clase Queue().
220
+ var myQueue = Queue ( queue: [ " Roberto " , " Alicia " , " Ruben " , " Almudena " ] )
221
+
222
+ // Añade un nuevo item a la lista usando el metodo enqueue().
223
+ myQueue. enqueue ( " Oliver " )
224
+
225
+ // Elimina el ultimo item de la lista y lo devuelve e imprime la variable dequeue usando el metodo dequeue().
226
+ if let dequeue = myQueue. dequeue ( ) {
227
+ print ( dequeue)
228
+ }
229
+
230
+ // Devuelve e imprime el ultimo item de la lista en la variable peek usando el metodo peek().
231
+ if let peek = myQueue. peek ( ) {
232
+ print ( peek)
233
+ }
234
+
235
+ // Devuelve si la lista esta vacia.
236
+ print ( myQueue. isEmpty ( ) )
237
+
238
+ // Devuelve la cantidad de items de la lista.
239
+ print ( myQueue. count ( ) )
0 commit comments