Skip to content

Commit ca9090f

Browse files
authored
Merge pull request mouredev#1892 from allbertoMD/Reto-#08
#8-Swift
2 parents a58b519 + d3e54ac commit ca9090f

File tree

1 file changed

+239
-0
lines changed

1 file changed

+239
-0
lines changed
+239
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,239 @@
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("\nuser1\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("\nuser2\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("\nCambios 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("\nCambios de user2\n")
104+
105+
// Cambia el valor de la proiedad email del objeto user2.
106+
user2.email = "[email protected]"
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("\nSTACK\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("\nQUEUE\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

Comments
 (0)