Skip to content

Commit 921011f

Browse files
Merge branch 'mouredev:main' into MiguelAngelMTZ-JavaScript
2 parents 5a996c4 + 5d96117 commit 921011f

File tree

3 files changed

+231
-0
lines changed

3 files changed

+231
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# /*
2+
# * EJERCICIO:
3+
# * - Crea ejemplos de funciones básicas que representen las diferentes
4+
# * posibilidades del lenguaje:
5+
# * Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
6+
def sin_pr_rt():
7+
print("Funcion sin parametros ni retorno")
8+
9+
sin_pr_rt()
10+
11+
def varios_pr(a, b):
12+
print("Funcion con varios parametros")
13+
print(f'La suma de {a} y {b} es {a + b}')
14+
15+
varios_pr(5, 4)
16+
17+
def con_rt():
18+
return "Funcion con retorno"
19+
20+
print(con_rt())
21+
22+
23+
# * - Comprueba si puedes crear funciones dentro de funciones.
24+
25+
def funcion1():
26+
def funcion2():
27+
return "Saludos desde una funcion dentro de otra"
28+
return funcion2()
29+
30+
print(funcion1())
31+
32+
# * - Utiliza algún ejemplo de funciones ya creadas en el lenguaje.
33+
34+
def contador_caracteres(cadena = str):
35+
return f'El total de caracteres en la palabra {cadena} es de {len(cadena)}'
36+
37+
print(contador_caracteres("Hola Mundo!"))
38+
39+
# * - Pon a prueba el concepto de variable LOCAL y GLOBAL.
40+
41+
variable_global = "Es aquella la cual se puede acceder desde cualquier parte del codigo :)"
42+
43+
def funcion_var_local():
44+
variable_local = "Es aquella que solo se puede acceder dentro de una parte del codigo"
45+
return variable_local
46+
47+
print(variable_global)
48+
print(funcion_var_local())
49+
# print(variable_local) En este caso no podremos acceder a la variable local
50+
51+
# * - Debes hacer print por consola del resultado de todos los ejemplos.
52+
# * (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades)
53+
# *
54+
# * DIFICULTAD EXTRA (opcional):
55+
# * Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
56+
# * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
57+
# * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
58+
# * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
59+
# * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
60+
# * - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
61+
# *
62+
# * Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos.
63+
# * Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda.
64+
# */
65+
66+
frase1 = input("Dame una frase: ")
67+
frase2 = input("Dame otra más: ")
68+
69+
def ejercicio_extra(txt1 = str, txt2 = str):
70+
for i in range(1, 101):
71+
if i % 3 == 0 and i % 5 != 0:
72+
print(txt1)
73+
elif i % 3 != 0 and i % 5 == 0:
74+
print(txt2)
75+
elif i % 3 == 0 and i % 5 == 0:
76+
print(txt1 + txt2)
77+
else:
78+
print(i)
79+
80+
ejercicio_extra(frase1, frase2)
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
'''EJERCICIO:
2+
Entiende el concepto de recursividad creando una función recursiva que imprima
3+
números del 100 al 0.
4+
DIFICULTAD EXTRA (opcional):
5+
Utiliza el concepto de recursividad para:
6+
- Calcular el factorial de un número concreto (la función recibe ese número).
7+
- Calcular el valor de un elemento concreto (según su posición) en la sucesión de Fibonacci (la función recibe la posición).'''
8+
9+
# Recursividad para imprimir números del 100 al 0
10+
def recursividad(n):
11+
if n >= 0:
12+
print(n)
13+
recursividad(n-1)
14+
15+
recursividad(100)
16+
17+
# EXTRA
18+
# Recursividad para calcular el factorial de un número
19+
def factorial(n:int):
20+
if n < 0:
21+
print("No se puede calcular el factorial de un número negativo")
22+
return 0
23+
elif n == 0:
24+
return 1
25+
else:
26+
return n * factorial(n-1)
27+
28+
print(factorial(4))
29+
30+
# Recursividad para calcular el valor de un elemento en la sucesión de Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34... es decir, el siguiente número es la suma de los dos anteriores
31+
def fibonacci(n:int):
32+
if n <= 0:
33+
print("La posición debe ser mayor a 0")
34+
return 0
35+
elif n == 1:
36+
return 0
37+
elif n == 2:
38+
return 1
39+
else:
40+
return fibonacci(n-1) + fibonacci(n-2)
41+
42+
print(fibonacci(6))
43+
44+
# Otra forma de hacerlo
45+
def fibonacci2(n:int):
46+
if n <= 0:
47+
print("La posición debe ser mayor a 0")
48+
return 0
49+
elif n == 1:
50+
return 0
51+
elif n == 2:
52+
return 1
53+
else:
54+
a, b = 0, 1
55+
for i in range(2, n):
56+
a, b = b, a+b
57+
return b
58+
59+
print(fibonacci2(6))
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import java.util.ArrayList;
2+
import java.util.List;
3+
import java.util.Scanner;
4+
5+
public class Josegs95 {
6+
public static void main(String[] args) {
7+
new Josegs95().adventCalendar();
8+
}
9+
10+
final private Scanner sc = new Scanner(System.in);
11+
private List<Integer> calendar;
12+
13+
public void adventCalendar(){
14+
initCalendar();
15+
16+
try(sc){
17+
while(true){
18+
printCalendar();
19+
int option = askDayToUser();
20+
if (option == 0) {
21+
System.out.println("Saliendo de la aplicación...");
22+
break;
23+
}
24+
25+
openDay(option);
26+
System.out.println();
27+
}
28+
}
29+
}
30+
31+
private Integer askDayToUser(){
32+
boolean validDay = false;
33+
Integer option = 0;
34+
do{
35+
try{
36+
System.out.print("Selecciona un día del calendario (0 para salir): ");
37+
option = Integer.parseInt(sc.nextLine());
38+
if (option < 0 || option > 24)
39+
System.out.println("Debe elegir un número del 1-24");
40+
else
41+
validDay = true;
42+
} catch (NumberFormatException e) {
43+
System.out.println("Introduzca un número entero por favor");
44+
}
45+
}while(!validDay);
46+
47+
return option;
48+
}
49+
50+
private void openDay(Integer day){
51+
if (!calendar.contains(day)){
52+
System.out.println("El día " + day + " ya se ha descubierto");
53+
}
54+
55+
calendar.remove(day);
56+
}
57+
58+
private void initCalendar(){
59+
calendar = new ArrayList<>();
60+
61+
for (Integer i = 1; i < 25; i++){
62+
calendar.add(i);
63+
}
64+
}
65+
66+
private void printCalendar(){
67+
int dayCount = 1;
68+
for (int row = 0; row < 4; row++){
69+
for (int aux = 0; aux < 3; aux++){
70+
for (int column = 0; column < 6; column++){
71+
if (aux % 2 == 0)
72+
System.out.print("**** ");
73+
else{
74+
if (calendar.contains(dayCount))
75+
System.out.print("*" + getFormattedDay(dayCount++) + "* ");
76+
else{
77+
System.out.print("**** ");
78+
dayCount++;
79+
}
80+
}
81+
82+
}
83+
System.out.println();
84+
}
85+
System.out.println();
86+
}
87+
}
88+
89+
private String getFormattedDay(int day){
90+
return String.format("%02d", day);
91+
}
92+
}

0 commit comments

Comments
 (0)