Skip to content

Commit b1444a1

Browse files
Merge branch 'JesusAEE' of github.com:JesusAntonioEEscamilla/roadmap-retos-programacion; branch 'main' of github.com:mouredev/roadmap-retos-programacion into JesusAEE
2 parents 25e1b5b + 1710eda commit b1444a1

File tree

12 files changed

+1943
-787
lines changed

12 files changed

+1943
-787
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Sitio oficial: https://fsharp.org/
2+
// F# Basics: https://dotnet.microsoft.com/es-es/languages/fsharp
3+
// http://learn.microsoft.com/dotnet/fsharp
4+
5+
// Variables en F#
6+
// Después de asignar un valor, no se puede cambiar, es inmutable
7+
// Para hacer que sea mutable se emplea la palabra reservada mutable
8+
// Con inferencia de tipos
9+
let nombre_variable = "Valor" // variable string
10+
let entero = 5 // variable int
11+
let float = 1.0 // variable float
12+
let char = 'a' // variable char
13+
let booleano = true // variable bool - true o false
14+
15+
// Con tipos
16+
let cadena : string = "Hola"
17+
let entero2 : int = 10
18+
let float2 : float = 5.0e2
19+
let double : double = 20.0
20+
let char2 : char = '@'
21+
let booleano2 : bool = false
22+
23+
// variables mutables
24+
let mutable name = "Chris"
25+
name <- "Luis"
26+
27+
let fsharp = "F#"
28+
29+
printfn $"¡Hola, {fsharp}!" // Imprime la cadena en stdout y agrega un caracter de nueva línea
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# https://www.python.org/
2+
3+
4+
# comentario de una sola línea
5+
6+
7+
"""
8+
Este comentario es realidad una
9+
un bloque de texto multilínea,
10+
pero al no estar asignado actúa
11+
como un comentario.
12+
"""
13+
14+
# VARIABLES
15+
16+
first_var = "Mi primera variable en Python."
17+
18+
CONSTANT = "Por convención, las constantes en Python se escriben en mayúsculas, sin embargo son variables normales que se pueden modificar."
19+
20+
# TIPOS DE DATOS PRIMITIVOS
21+
22+
# string str
23+
my_string = "Cadena de texto."
24+
25+
# Integer int
26+
my_integer = 7
27+
28+
# Float float
29+
my_float = 7.3
30+
31+
# Boolean bool
32+
my_boolean = False
33+
34+
# None NoneType
35+
my_none = None
36+
37+
# IMPRESIÓN POR TERMINAL
38+
language = "Python"
39+
print(f"¡Hola, {language}!")
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# https://python.org
2+
3+
# esto es un comentario en una linea
4+
"""
5+
Esto es un comentario
6+
en varias lineas
7+
entre comillas dobles
8+
"""
9+
'''
10+
Esto es un comentario
11+
en varias lineas
12+
entre comillas simples
13+
'''
14+
15+
my_variable = "Mi variable"
16+
my_variable = "Nuevo valor de mi variable"
17+
18+
MY_CONSTANT = "No es una constante pero estando en mayusculas se entiende que si" # por conveccion
19+
20+
my_int:int = 1
21+
my_float:float = 1.5
22+
my_bool:bool = True
23+
my_bool = False
24+
my_string:str = "Mi cadena de texto"
25+
my_other_string = 'Mi cadena de texto'
26+
27+
print("¡Hola, Python!")
28+
29+
print(type(my_int))
30+
print(type(my_bool))
31+
print(type(my_float))
32+
print(type(my_string))
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
#Operadores aritméticos
2+
num1 = 4
3+
num2 = 3
4+
suma = num1 + num2
5+
resta = num1 - num2
6+
producto = num1 * num2
7+
division = num1 / num2
8+
division_entero = num1 // num2
9+
resto = num1 % num2
10+
potencia = num1 ** num2
11+
12+
print(f"Suma: {suma}, Resta: {resta}, Producto: {producto}, División: {division}, División entero: {division_entero}, Resto: {resto}, Potencia: {potencia}")
13+
14+
#Operadores relacionales
15+
mayor_que = num1 > num2
16+
menor_que = num1 < num2
17+
igual_a = num1 == num2
18+
mayor_o_igual = num1 >= num2
19+
menor_o_igual = num1 <= num2
20+
diferente_de = num1 != num2
21+
22+
print(f"Mayor que: {mayor_que}, Menor que: {menor_que}, Igual a: {igual_a}, Mayor o igual que: {mayor_o_igual}, Menor o igual que: {menor_o_igual}, Diferente de: {diferente_de}")
23+
24+
#Operadores de asignación
25+
num3 = 4
26+
num3 += 8 #Equivalencia: num1 = num1 + 8
27+
print(num3)
28+
num3 -= 8 #Equivalencia: num1 = num1 - 8
29+
print(num3)
30+
num3 *= 8 #Equivalencia: num1 = num1 * 8
31+
print(num3)
32+
num3 **= 8 #Equivalencia: num1 = num1 ** 8
33+
print(num3)
34+
num3 /= 8 #Equivalencia: num1 = num1 / 8
35+
print(num3)
36+
num3 //= 8 #Equivalencia: num1 = num1 // 8
37+
print(num3)
38+
num3 %= 8 #Equivalencia: num1 = num1 % 8
39+
print(num3)
40+
41+
#Operadores lógicos
42+
print(f"5 < 8 and 8 > 3 es: {5 < 8 and 8 > 3}")
43+
print(f"4 > 3 or 2 > 9 es: {4 > 3 or 2 > 9}")
44+
print(f"5 > 6 es: {not 5 > 6}")
45+
46+
#Operadores de pertenencia
47+
print(f"in: 'a' in 'hola' es {'a' in 'hola'}") #True
48+
print(f"not in: 'a' not in 'hola' es {'a' not in 'hola'}") #False
49+
50+
#Operadores de identidad
51+
mi_variable = 10
52+
print(id(mi_variable)) #4372070928
53+
tu_variable = 10
54+
print(id(tu_variable)) #4372070928
55+
56+
print(f"is: mi_variable is tu_variable es {mi_variable is tu_variable}") #True
57+
print(f"is not: mi_variable is not tu_variable es {mi_variable is not tu_variable}") #False
58+
59+
#Operador nivel de Bit
60+
##operador and &: comparamos todos los bits uno a uno, y, si están los dos a 1, entonces sería 1; si alguno de los dos valores está a 0, sería 0.
61+
numero = 20
62+
numero_bin = 0b10100
63+
64+
numero_dos = 22
65+
numero_dos_bin = 0b10110
66+
67+
print(bin(numero & numero_dos)) ## 0b10100
68+
69+
#operador or |: comparamos todos los bits uno a uno, y, si está alguno de los dos a 1, entonces sería 1; y si no está ninguno, es 0.
70+
71+
print(bin(numero | numero_dos)) ## 0b10110
72+
73+
#operador not ~ invierte cada bit en el operando. El bit que tiene como valor 1 lo pone a 0, y al contrario.
74+
75+
print(bin(~numero)) ## -ob10101
76+
77+
#operador xor ^ devuelve los bits que estén a 1 no comunes en los dos operandos.
78+
79+
print(bin(numero ^ numero_dos)) ##^0b10
80+
81+
#operador shift >> ó << se utiliza para mover bits hacia la derecha ó izquierda. Hacen falta dos parámetros para indicarle primero qué vamos a desplazar y después el número de posiciones que lo desplazaremos.
82+
83+
print(bin(numero >> 2)) ##ob101
84+
print(bin(numero << 2)) ##ob1010000
85+
86+
## Estructuras de control
87+
88+
# if => condicional
89+
color = "azul"
90+
91+
if color == "azul":
92+
print("Hace frio en la calle")
93+
elif color == "rojo":
94+
print("Hace calor en la calle")
95+
else:
96+
print("No hace ni frío ni calor")
97+
98+
# for => iterativa
99+
100+
cadena = 'Sevilla'
101+
102+
for i in cadena:
103+
print(i)
104+
105+
# while => iterativa
106+
107+
numero = 1
108+
while numero < 6:
109+
print('hola mundo')
110+
numero = numero + 1
111+
112+
# Manejo de excepciones
113+
try:
114+
print('No hay error')
115+
except TypeError:
116+
print(f'Encontré este error: {TypeError}')
117+
finally:
118+
print('Siempre se ejecuta')
119+
120+
### EXTRA ###
121+
122+
for a in range(10, 56):
123+
if a % 2 == 0 and a != 16 and a % 3 != 0:
124+
print(a)
125+
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
"""
2+
/*
3+
* EJERCICIO:
4+
* - Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje:
5+
* Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits...
6+
* (Ten en cuenta que cada lenguaje puede poseer unos diferentes)
7+
* - Utilizando las operaciones con operadores que tú quieras, crea ejemplos
8+
* que representen todos los tipos de estructuras de control que existan
9+
* en tu lenguaje:
10+
* Condicionales, iterativas, excepciones...
11+
* - Debes hacer print por consola del resultado de todos los ejemplos.
12+
*
13+
* DIFICULTAD EXTRA (opcional):
14+
* Crea un programa que imprima por consola todos los números comprendidos
15+
* entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
16+
*
17+
* Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo.
18+
*/
19+
"""
20+
"""
21+
Operadores
22+
"""
23+
# Operadores aritmeticos
24+
print(f"Suma: 10 + 3 = {10 + 3}")
25+
print(f"Resta: 10 - 3 = {10 - 3}")
26+
print(f"Multiplicacion: 10 * 3 = {10 * 3}")
27+
print(f"Division: 10 / 3 = {10 / 3}")
28+
print(f"Modulo: 10 % 3 = {10 % 3}") # modulo es el resto de la division
29+
print(f"Exponente: 10 ** 3 = {10 ** 3}") # elevar un numero
30+
print(f"Division entera: 10 // 3 = {10 // 3}") # resultado numero entero
31+
32+
# Operadores de comparacion
33+
print(f"Igualdad: 10 == 3 es {10 == 3}")
34+
print(f"Desigualdad: 10 != 3 es {10 != 3}")
35+
print(f"Mayor Que: 10 > 3 es {10 > 3}")
36+
print(f"Menor Que: 10 < 3 es {10 < 3}")
37+
print(f"Mayor o igual que: 10 >= 3 es {10 >= 3}")
38+
print(f"Menor o igual que: 10 <= 3 es {10 <= 3}")
39+
40+
# Operadores logicos
41+
print(f"AND &&: 10 + 3 == 13 and 5 - 1 == 4 es {10 + 3 == 13 and 5 - 1 == 4}") # se tienen q cumplir las dos condiciones para que sea true
42+
print(f"OR ||: 10 + 3 == 14 or 5 - 1 == 4 es {10 + 3 == 14 or 5 - 1 == 4}") # se tiene que cumplir al menos una de las condiones para que sea true
43+
print(f"NOT !: not 10 + 3 == 14 es {not 10 + 3 == 14}")
44+
45+
# Operadores de asignacion
46+
my_number = 11 #asignacion
47+
print(my_number)
48+
my_number += 1 #suma y asignacion
49+
print(my_number)
50+
my_number -= 1 #resta y asignacion
51+
print(my_number)
52+
my_number *= 2 #multiplicacion y asignacion
53+
print(my_number)
54+
my_number /= 2 #division y asignacion
55+
print(my_number)
56+
my_number %= 2 #modulo y asignacion
57+
print(my_number)
58+
my_number **= 1 #exponente y asignacion
59+
print(my_number)
60+
my_number //= 1 # Div entera y asignacion
61+
print(my_number)
62+
63+
# Operadores de identidad
64+
my_new_number = my_number
65+
print(f"my_number is my_new_number es {my_number is my_new_number}")
66+
print(f"my_number is not my_new_number es {my_number is not my_new_number}")
67+
68+
# Operadores de pertenencia
69+
print(f"'d' in 'David' = {'d' in 'David'}")
70+
print(f"'b' not in 'David' = {'b' not in 'David'}")
71+
72+
# Operadores de bit
73+
a = 10 # 1010
74+
b = 3 # 0011
75+
print(f"AND: 10 & 3 = {10 & 3}") # 0010
76+
print(f"OR: 10 | 3 = {10 | 3}") # 1011
77+
print(f"XOR: 10 ^ 3 = {10 ^ 3}") # 1001
78+
print(f"NOT: ~10 = {~10}")
79+
print(f"Desplazamiento a la derecha: 10 >> 2 = {10 >> 2}") # 0010
80+
print(f"Desplazamiento a la izquierda: 10 << 2 = {10 << 2}") # 101000
81+
82+
83+
"""
84+
Estructuras de control
85+
"""
86+
# Condicionales
87+
88+
my_string = "Daviddd"
89+
90+
if my_string == "David":
91+
print("my_string es 'David'")
92+
elif my_string == "Hoyos":
93+
print(" my string es 'Hoyos'")
94+
else:
95+
print("my_string no es 'David'ni 'Hoyos'")
96+
97+
# Iterativas
98+
99+
for i in range(11):
100+
print(i)
101+
102+
i = 0
103+
104+
while i <= 10:
105+
print(i)
106+
i += 1
107+
108+
# Manejo de excepciones
109+
try:
110+
print(10/0)
111+
except:
112+
print("Se ha producido un error")
113+
finally:
114+
print("Ha finalizo el manejo de excepciones")
115+
116+
"""
117+
Extra
118+
"""
119+
for number in range(10, 56):
120+
if number % 2 == 0 and number != 16 and number % 3 != 0:
121+
print(number)

0 commit comments

Comments
 (0)