Skip to content

Commit 0d05f2f

Browse files
authored
Merge pull request mouredev#2682 from rigo93acosta/main
#6 - Python
2 parents 7cddaa6 + c1da22a commit 0d05f2f

File tree

2 files changed

+142
-0
lines changed

2 files changed

+142
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
'''
2+
/*
3+
* EJERCICIO:
4+
* Entiende el concepto de recursividad creando una función recursiva que imprima
5+
* números del 100 al 0.
6+
*
7+
* DIFICULTAD EXTRA (opcional):
8+
* Utiliza el concepto de recursividad para:
9+
* - Calcular el factorial de un número concreto (la función recibe ese número).
10+
* - Calcular el valor de un elemento concreto (según su posición) en la
11+
* sucesión de Fibonacci (la función recibe la posición).
12+
*/
13+
'''
14+
15+
### Ejercicio intro
16+
17+
def countdown(number: int):
18+
if number >= 0:
19+
print(number)
20+
countdown(number-1)
21+
22+
countdown(100)
23+
24+
### Extra
25+
# Factorial
26+
def factorial(number: int) -> int:
27+
if number < 0:
28+
print("Los números negativos no son válidos.")
29+
return 0
30+
elif number == 0:
31+
return 1
32+
else:
33+
return number * factorial(number-1)
34+
35+
n = 4
36+
print(f'Factorial: {n} = {factorial(n)}')
37+
38+
def fibonacci(number: int) -> int:
39+
if number == 0:
40+
return 0
41+
elif number == 1:
42+
return 1
43+
else:
44+
return fibonacci(number-1) + fibonacci(number-2)
45+
46+
n = 10
47+
print(f'Fibonacci: {n} = {fibonacci(n)}')
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
'''
2+
/*
3+
* EJERCICIO:
4+
* Implementa los mecanismos de introducción y recuperación de elementos propios de las
5+
* pilas (stacks - LIFO) y las colas (queue - FIFO) utilizando una estructura de array
6+
* o lista (dependiendo de las posibilidades de tu lenguaje).
7+
*
8+
* DIFICULTAD EXTRA (opcional):
9+
* - Utilizando la implementación de pila y cadenas de texto, simula el mecanismo adelante/atrás
10+
* de un navegador web. Crea un programa en el que puedas navegar a una página o indicarle
11+
* que te quieres desplazar adelante o atrás, mostrando en cada caso el nombre de la web.
12+
* Las palabras "adelante", "atrás" desencadenan esta acción, el resto se interpreta como
13+
* el nombre de una nueva web.
14+
* - Utilizando la implementación de cola y cadenas de texto, simula el mecanismo de una
15+
* impresora compartida que recibe documentos y los imprime cuando así se le indica.
16+
* La palabra "imprimir" imprime un elemento de la cola, el resto de palabras se
17+
* interpretan como nombres de documentos.
18+
*/
19+
'''
20+
21+
### Pila/Stack (LIFO)
22+
## List in Python is a stack
23+
stack = []
24+
stack.append("1") # push
25+
stack.append("2") # push
26+
stack.append("3") # push
27+
print(stack)
28+
element = stack.pop() # pop
29+
print(element)
30+
print(stack)
31+
32+
### Cola/Queue (FIFO)
33+
queue = []
34+
#enqueue
35+
queue.append("1")
36+
queue.append("2")
37+
queue.append("3")
38+
print(queue)
39+
#dequeue
40+
element = queue.pop(0)
41+
print(element)
42+
print(queue)
43+
44+
## EXTRA
45+
### EXTRA 1
46+
47+
def web_navegation():
48+
49+
stack = []
50+
51+
while True:
52+
53+
action = input(
54+
"Añade una url o interactúa con palabras adelante/atrás/salir: "
55+
)
56+
57+
if action == 'salir':
58+
print('Saliendo del navegador web.')
59+
break
60+
elif action == 'adelante': # El stack no podemos hacer
61+
pass
62+
elif action == "atrás":
63+
if len(stack) > 0:
64+
stack.pop()
65+
else:
66+
stack.append(action)
67+
68+
if len(stack) > 0:
69+
print(f"Has navegado a la web: {stack[len(stack) - 1]}")
70+
else:
71+
print("Estás en la página de inicio.")
72+
73+
#web_navegation()
74+
75+
### EXTRA 2
76+
def online_printer():
77+
queue = []
78+
79+
while True:
80+
action = input("Añade documento o selecciona imprimir/salir: ")
81+
82+
if action == "imprimir":
83+
if len(queue) > 0:
84+
print(f"Imprimiendo documento '{queue.pop(0)}'")
85+
else:
86+
print("No hay documento en cola.")
87+
elif action == "salir":
88+
print("Apagando la impresora LOL!!!")
89+
break
90+
else:
91+
queue.append(action)
92+
93+
print(f"Cola de Impresora {queue}")
94+
95+
online_printer()

0 commit comments

Comments
 (0)