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