Skip to content

Commit 19db3e6

Browse files
authored
Merge pull request mouredev#7113 from davidrguez98/main
#7 - Python
2 parents f486a89 + c8ac446 commit 19db3e6

File tree

2 files changed

+217
-0
lines changed

2 files changed

+217
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
""" /*
2+
* EJERCICIO:
3+
* Implementa los mecanismos de introducción y recuperación de elementos propios de las
4+
* pilas (stacks - LIFO) y las colas (queue - FIFO) utilizando una estructura de array
5+
* o lista (dependiendo de las posibilidades de tu lenguaje).
6+
*
7+
* DIFICULTAD EXTRA (opcional):
8+
* - Utilizando la implementación de pila y cadenas de texto, simula el mecanismo adelante/atrás
9+
* de un navegador web. Crea un programa en el que puedas navegar a una página o indicarle
10+
* que te quieres desplazar adelante o atrás, mostrando en cada caso el nombre de la web.
11+
* Las palabras "adelante", "atrás" desencadenan esta acción, el resto se interpreta como
12+
* el nombre de una nueva web.
13+
* - Utilizando la implementación de cola y cadenas de texto, simula el mecanismo de una
14+
* impresora compartida que recibe documentos y los imprime cuando así se le indica.
15+
* La palabra "imprimir" imprime un elemento de la cola, el resto de palabras se
16+
* interpretan como nombres de documentos.
17+
*/ """
18+
19+
#EJERCICIO
20+
21+
#Pila/Stack (LIFO - Last In First Out)
22+
23+
stack = []
24+
stack.append("1") #Push
25+
stack.append("2") #Push
26+
stack.append("3") #Push
27+
print(stack)
28+
29+
""" stack_item = stack[len(stack) -1] #Pop
30+
del stack[len(stack) -1]
31+
print(stack_item) """
32+
33+
print(stack.pop())
34+
35+
print(stack)
36+
37+
#Cola/Queue (FIFO - First In First Out)
38+
"""
39+
queue = []
40+
queue.append(1) #Enqueue
41+
queue.append(2) #Enqueue
42+
queue.append(3) #Enqueue
43+
print(queue)
44+
45+
queue_item = queue[0] #Dequeue
46+
del queue[0]
47+
print(queue_item)
48+
49+
print(queue.pop(0)) #Dequeue
50+
51+
print(queue) """
52+
53+
#DIFICULTAD EXTRA
54+
55+
# Navegador
56+
57+
nav = []
58+
59+
nav.append("Web 1")
60+
nav.append("Web 1/Web 2")
61+
nav.append("Web 1/Web 2/Web 3")
62+
63+
position = 0
64+
65+
def forward():
66+
nav[position]
67+
68+
69+
def backward():
70+
nav[position]
71+
72+
73+
while True:
74+
75+
print("Actualmente estás en: ", nav[position])
76+
question = input("¿Qué quieres añadir una web, ir hacia adelante, ir hacia atrás o salir: ")
77+
78+
if question.lower() == "adelante" or question.lower() == "ir hacia adelante":
79+
position += 1
80+
forward()
81+
elif question.lower() == "atrás" or question.lower() == "atras" or question.lower() == "ir hacia atrás" or question.lower() == "ir hacia atras":
82+
position -= 1
83+
backward()
84+
elif question.lower() == "añadir":
85+
nav.append(input("Añade la web:" ))
86+
elif question.lower() == "salir":
87+
break
88+
else:
89+
print("La opción seleccionada es incorrecta, elija adelante o atrás.")
90+
91+
# Impresora
92+
93+
queue_printer = []
94+
95+
def add_paper():
96+
queue_printer.append(input("Nombre del documento que quiere añadir a la cola para imprimir: "))
97+
98+
def print_paper():
99+
print("Se está imprimiendo: ", queue_printer.pop(0))
100+
101+
while True:
102+
quest = input("¿Quieres añadir un documento a la cola de impresión, imprimir o salir?: ")
103+
104+
if quest.lower() == "añadir" or quest.lower() == "añadir un documento a la cola de impresión":
105+
add_paper()
106+
print("La cola de impresión es: ", queue_printer)
107+
elif quest.lower() == "imprimir":
108+
109+
print_paper()
110+
print("La cola de impresión es: ", queue_printer)
111+
elif quest.lower() == "salir":
112+
break
113+
else:
114+
print("La opción seleccionada es incorrecta, elija añadir, imprimir o salir.")
+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
""" /*
2+
* EJERCICIO:
3+
* Explora el concepto de clase y crea un ejemplo que implemente un inicializador,
4+
* atributos y una función que los imprima (teniendo en cuenta las posibilidades
5+
* de tu lenguaje).
6+
* Una vez implementada, créala, establece sus parámetros, modifícalos e imprímelos
7+
* utilizando su función.
8+
*
9+
* DIFICULTAD EXTRA (opcional):
10+
* Implementa dos clases que representen las estructuras de Pila y Cola (estudiadas
11+
* en el ejercicio número 7 de la ruta de estudio)
12+
* - Deben poder inicializarse y disponer de operaciones para añadir, eliminar,
13+
* retornar el número de elementos e imprimir todo su contenido.
14+
*
15+
*/ """
16+
17+
#EJERCICIO
18+
19+
class programmer:
20+
21+
surname: str = None
22+
23+
def __init__(self, name: str, age: int, languages: list):
24+
self.name = name
25+
self.age = age
26+
self.languages = languages
27+
28+
def print(self):
29+
print(f"Nombre: {self.name} | Apellido: {self.surname} | Edad: {self.age} | Lenguajes: {self.languages}")
30+
31+
my_programmer = programmer("David", 26, ["Python", "HTML", "CSS"])
32+
my_programmer.print()
33+
my_programmer.surname = "Rodríguez"
34+
my_programmer.print()
35+
36+
my_programmer.age = 27
37+
my_programmer.print()
38+
39+
#DIFICULTAD EXTRA
40+
41+
#Pila
42+
43+
class pila:
44+
45+
def __init__(self):
46+
self.pila = []
47+
48+
def add(self, item):
49+
self.pila.append(item)
50+
51+
def delete(self):
52+
return self.pila.pop()
53+
54+
def count(self):
55+
print(len(self.pila))
56+
57+
def print(self):
58+
for item in reversed(self.pila):
59+
print(item)
60+
61+
62+
my_pila = pila()
63+
my_pila.add("1")
64+
my_pila.add("2")
65+
my_pila.add("3")
66+
my_pila.count()
67+
my_pila.print()
68+
69+
my_pila.delete()
70+
my_pila.count()
71+
my_pila.print()
72+
73+
#Cola
74+
75+
class cola:
76+
77+
def __init__(self):
78+
self.cola = []
79+
80+
def add(self, item2):
81+
self.cola.append(item2)
82+
83+
def delete(self):
84+
return self.cola.pop(0)
85+
86+
def count(self):
87+
print(len(self.cola))
88+
89+
def print(self):
90+
for item2 in reversed(self.cola):
91+
print(item2)
92+
93+
94+
my_cola = cola()
95+
my_cola.add("1")
96+
my_cola.add("2")
97+
my_cola.add("3")
98+
my_cola.count()
99+
my_cola.print()
100+
101+
my_cola.delete()
102+
my_cola.count()
103+
my_cola.print()

0 commit comments

Comments
 (0)