Skip to content

Commit a5bf32c

Browse files
2 parents 8874c1f + 47de8ad commit a5bf32c

File tree

89 files changed

+11093
-1426
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+11093
-1426
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
|45|[GITHUB OCTOVERSE](./Roadmap/45%20-%20GITHUB%20OCTOVERSE/ejercicio.md)|[📝](./Roadmap/45%20-%20GITHUB%20OCTOVERSE/python/mouredev.py)|[▶️](https://youtu.be/yj5ZFT_Xmcs)|[👥](./Roadmap/45%20-%20GITHUB%20OCTOVERSE/)
8383
|46|[X VS BLUESKY](./Roadmap/46%20-%20X%20VS%20BLUESKY/ejercicio.md)|[📝](./Roadmap/46%20-%20X%20VS%20BLUESKY/python/mouredev.py)|[▶️](https://youtu.be/RzwFGihKpOM)|[👥](./Roadmap/46%20-%20X%20VS%20BLUESKY/)
8484
|47|[CALENDARIO DE ADVIENTO](./Roadmap/47%20-%20CALENDARIO%20DE%20ADVIENTO/ejercicio.md)|[📝](./Roadmap/47%20-%20CALENDARIO%20DE%20ADVIENTO/python/mouredev.py)|[▶️](https://youtu.be/LteI1J5gmZw)|[👥](./Roadmap/47%20-%20CALENDARIO%20DE%20ADVIENTO/)
85-
|48|[ÁRBOL DE NAVIDAD](./Roadmap/48%20-%20ÁRBOL%20DE%20NAVIDAD/ejercicio.md)|[📝](./Roadmap/48%20-%20ÁRBOL%20DE%20NAVIDAD/python/mouredev.py)||[👥](./Roadmap/48%20-%20ÁRBOL%20DE%20NAVIDAD/)
85+
|48|[ÁRBOL DE NAVIDAD](./Roadmap/48%20-%20ÁRBOL%20DE%20NAVIDAD/ejercicio.md)|[📝](./Roadmap/48%20-%20ÁRBOL%20DE%20NAVIDAD/python/mouredev.py)|[▶️](https://youtu.be/bIguZe3iXVo)|[👥](./Roadmap/48%20-%20ÁRBOL%20DE%20NAVIDAD/)
8686
|49|[EL ALMACÉN DE PAPÁ NOEL](./Roadmap/49%20-%20EL%20ALMACÉN%20DE%20PAPÁ%20NOEL/ejercicio.md)|[🗓️ 23/12/24](https://discord.gg/mouredev?event=1313337113567035494)||[👥](./Roadmap/49%20-%20EL%20ALMACÉN%20DE%20PAPÁ%20NOEL/)
8787

8888
## Cursos en YouTube
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
//Pues no me da por poner aqui la url. XD. Anotare el titulo de la pull «#00 - C#»
2+
/*
3+
Esa doble diagonal toma por comentario el resto de la linea
4+
Mientras que «/*» abre un comentario de varias lineas y «* /» lo cierra
5+
De hecho, lo he tenido que poner separado (a diferencia de como se nota al final del comentario) porque se tomaba como cierre.
6+
Osea, lo que haya de esos 2 signos en adelante si se ejecutara, al menos segun github. Tenerlo en cuenta
7+
*/
8+
9+
/// <summary>
10+
/// Esto es un comentario de documentación
11+
/// </summary>
12+
/// <returns></returns>
13+
14+
using System; //No termino de entender para que es el using, pero a finales del ejercicio estudie los otros que se enviaron
15+
using System.Collections.Generic; //para ver si me faltaban tipos
16+
using System.Linq; //y casi todos tenian estas cosas al mero inicio.
17+
using System.Text;
18+
using System.Threading.Tasks;
19+
20+
//Variables
21+
////Puden escribirse asi nomas como el primer ejemplo, o con «private» y «public» segun el caso, ya que eso define desde que partes el codigo puedes acceder a la variable
22+
string NombreDeVariable = "Para poner una variable basta con poner el tipo de dato y su nombre. En esta el tipo es «string»"; //se usa «PascalCase» para nombrar las cosas, consiste en poner cada primer letra en mayuscula
23+
24+
const string NOMBRECONSTANTE = "Poner «const» antes del tipo hace que sea una constante"; //solo pueden tener constantes de los tipos de estructura simple y se nombra con pura mayuscula
25+
26+
enum WeekDays { Monday, Tuesday, Wednsday, thursday, Friday, Saturday, Sunday}; //esto ya es una estructura de valores y no puede ser constante.
27+
//aunque una manera de definir que es un enum, es «Un diccionario constante con claves string y valores int», segun tengo entendido
28+
29+
string? String_Nulleable = null //si pones un «?» despues del tipo la variable podra tener valores null, osea, nulo.
30+
31+
int[] Array = new int[5]; // cuando despues del tipo se pone «[]» es un array o arreglo, se debe poner un «new» seguido por el tipo y entre los «[]» el numero de espacios que tiene
32+
string [] Array2 = new string[] { "cocina", "baño", "salon", "comedor", "dormitorio" }; // aqui observamos un array de tipo string tambien con 5 posiciones pero ya con su valor
33+
//si no pones los valores de cada espacio agarra el predeterminado. Puedes escribir «Array[posision]=» para cambiar cualquier posicion pero el total de datos no pueden aumentar ni disminuir
34+
35+
int[,] MultiDimencional = new int[2, 3]; // los valores se refieren a 2 Filas, 3 Columnas
36+
int[,,] MultiDimencional2 = new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, //Cada coma al incio junto al tipo indica una dimencion mas
37+
{ { 7, 8, 9 }, { 10, 11, 12 } } }; //para tomar los valores de estas debes poner el index de cada dimencion: Multidimencional2[1,2,3] es el 6
38+
var NoSeQueEsEstoTodavia = "al poner «var» se puede poner cualquier tipo de valor y el compilador identificara cual es y lo asignara";
39+
dynamic puede_ser_lo_que_sea = "poniendo «dynamic» se puede cambiar el tipo de dato al cambiar el valor"; //en la doc note que para estas usan todo minusculas y separa con «_»
40+
41+
42+
//Tipos de datos
43+
////Numeros. cada variable tiene el valor maximo o minimo que puede tener el tipo de dato
44+
//////Se pueden usar «_» para separar los numeros y facilitar la lectura.
45+
public byte UnNumeroDe1BytePorDefecto = 255; //es el numero mas alto que puede tener un solo byte, osea, 8 bits
46+
public sbyte UnNumeroDe1BytePositivo = 127; //con la s al principio, se indica que tiene valores negativos. Pero al seguir siendo un solo byte, se recorta a la mitad su valor maximo.
47+
public sbyte UnNumeroDe1ByteNegativo = -128; //
48+
49+
public short UnNumeroDe2BytesMax = 32_767; //como indica, estos pueden almacenar numeros de 2 bytes, osea, 16 bits.
50+
public short UnNumeroDe2BytesMin = -32_768;
51+
public ushort UnNumeroDe2BytesSoloPositivo = 65_535; //con esa u, estos no pueden tener negativos
52+
53+
public int UnNumeroPositivo = 2_147_483_647; //el int soporta numeros de 32 bits (4 bytes), positivos y negativos
54+
public int UnNumeroNegativo = -2_147_483_648; //
55+
public uint UnNumeroSoloPositivo = 4_294_967_295; //con esa u, se indica que solo tiene valores positivos
56+
57+
public long NumerosMasGrandesPositivo = 9_223_372_036_854_775_807; // Estos son de 64 bits, osea de 8 bytes
58+
public long NumerosMasGrandesNegaivo = -9_223_372_036_854_775_808; //
59+
public ulong NumerosMasGrandesSoloPositivo = 18_446_744_073_709_551_615; // La u indica que solo puede tener positivos. ¡No te lo esperabas, ¿vea?!
60+
61+
//Creo yo, por el tema de exponentes de 2 y tal, que los numeros positivos tienen un valor absoluto menor porque en ellos cuentan el cero.
62+
//Dado que, los «u» pueden tener cero y no negativos.
63+
64+
public nint NumeroNativo; //con la «n» al incio de un int o uint, se usaran los numeros nativos del programa
65+
public nuint NumeroNativo; //si se corre en una compu de 32bits funcionara como int/uint normal, si es de 64bits funcionara como long/ulong
66+
67+
public float UnDecimal =0.0f; //tiene una precicion de 6 a 9 dígitos aproximadamente, ya que usa 4 bytes. Termina con una f
68+
public double UnDecimalMejor = 0.0; //es mas preciso usando 8 bytes, de 15 a 17 dígitos aproximadamente
69+
public decimal ElMejorDecimal = 0.0m; //con 16 bytes es el tipo de decimal mas preciso, de 28-29 dígitos. Termina con una m
70+
/* En este no pongo los valores maximos y minimos porque lo que pone la documentacion es esto:
71+
float: De ±1,5 x 10^-45 a ±3,4 x 10^38
72+
double: De ±5,0 × 10^−324 a ±1,7 × 10^308
73+
decimal: De ±1,0 x 10^-28 to ±7,9228 x 10^28
74+
Pero, cada tipo de numero decimal tiene sus constantes, citando doc: «Por ejemplo, el tipo double ofrece las siguientes constantes: Double.NaN, Double.NegativeInfinity y Double.PositiveInfinity»
75+
Ademas, las tres tienen «MinValue» y «Max value» para representar esos numeros de arriba.
76+
Al final del ejercicio estos seran mostrados por la consola por si interesa y para mostras como poner esos datos en medio del mensaje, ya que me lo encontre mientras buscaba lo demas
77+
*/
78+
79+
public bool Verdadero = True; //estos son valores que solo cambian entre verdadero y falso
80+
public bool Falso = False; //se deben poner los valores con la primera mayuscula
81+
public bool Tambien_false = 0;//tambien, cuando se asigna sus valor se pueden poner numeros, 0 es false y cualquier otro es true
82+
public bool Tambien_true = 31;
83+
84+
public char UnaSolaLetra = 'j'; //es como una string de solo 2 byte, por tanto, es solo una letra. Como representa los caracteres Unicode UTF-16
85+
//internamente tiene valores de 0 a 65_535 (U+0000 a U+FFFF, en unicode). Notaras que en eso es como el ushort, pero no se pueden pasar valores numericos a char
86+
//creo que era importante que para estos se usen las comillas simples
87+
public char OtraLetra = NombreDeVariable[0]; //un char tambien puede hacerse tomando una letra de una string de este modo
88+
var chars = new[] //para mostrar como funciona, todas estas siguen representando «j»
89+
{
90+
(char)106,
91+
'\u006A', //esto es unicode, se debe poner «\u» seguido de los 4 digitos hexadecimales
92+
'\x006A', //sin embargo, poniendo «\x» se identifica un codigo hexadecimal y se pueden omitir todos los ceros a la izquierda
93+
'\x06A', //haciendo que estas 3
94+
'\x6A', //tambien sean el mismo codigo
95+
};
96+
97+
/*
98+
C# tiene 2 tipos de variable, las de valor (la mayoria de ejemplos de arriba) y las de referencia. La primeras almacenan su valor, y las otras tienen referencias a un objeto
99+
los tipos para declarar variables de referencia son: class, interface, delegate, record, dynamic, object y string.
100+
Las arrays mencionadas al principio tambien son variables de referencia
101+
Incluyo esto porque la string entra en lo de variables primitivas (creo).
102+
Al ser de referencia, las variables strings guardan referencia a una cadena de char. 2 o mas variables pueden tener referencia a la misma instancia, si cambia una cambian todas
103+
Pero, no por ser iguales refieren a la misma instancia. Por ejemplo:
104+
*/
105+
public string a = "hello";
106+
public string b = "h";
107+
b += "ello";
108+
/*
109+
Al final a y b tienen el mismo valor por lo cual, al comparar «a==b» dara true
110+
Pero con object.ReferenceEquals(a, b) dara false, ya que siguen referenciando una instancia de string distinta
111+
*/
112+
113+
/*Valores predeterminados
114+
Cada tipo de dato tiene su valor predeterminado, si despues del nombre no asignas un valor, la varible toma el predeterminado
115+
116+
Todos los tipos numericos, tanto enteros como decimales, tienen el 0.
117+
bool = false
118+
char = '\0'
119+
y todos los tipos que acepten null son null, incluye a los que les pones «?» cuando las declaras
120+
*/
121+
122+
class Program {
123+
static void Main() { //por algun motivo, Main todos los que lo subian lo hacian con «string[] args», pero a mi el compilador que agarre para probar me lo deja usar asi
124+
Console.WriteLine("¡Hello, C#!");
125+
Console.WriteLine("Hoy si, aqui esta la URL: https://learn.microsoft.com/es-es/dotnet/csharp/ .XD");
126+
Console.WriteLine("El valor maximo de float es: {0}"+" Y su minimo es {1}", float.MaxValue, float.MinValue);
127+
Console.WriteLine("El valor maximo de double es: {0}"+" Y su minimo es {1}", Double.MaxValue, Double.MinValue);
128+
Console.WriteLine("El valor maximo de decimal es: {0}"+" Y su minimo es {1}", Decimal.MaxValue, Decimal.MinValue);
129+
}
130+
} //ahorita lo voy a subier y me da que se olvida algo, pero de extrañar seria si lo he revisado 3 veces
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
public class Ignaciiodev {
2+
public static void main(String[] args) {
3+
// #00 SINTAXIS, VARIABLES, TIPOS DE DATOS Y HOLA MUNDO
4+
5+
// URL oficial de Java: https://www.java.com/es/
6+
7+
/*
8+
* Comentario
9+
* De
10+
* Varias
11+
* Lineas
12+
*/
13+
14+
// Declaración de una variable de tipo String
15+
String myVar = "Esto es una Variable"; // Hay que declara el tipo y luego el nombre
16+
17+
// Declaración de una constante de tipo String
18+
final String myConst = "Esto es una Constante"; // La constante no puede cambiar su valor después de ser inicializada
19+
20+
// Declaración de variables de tipos primitivos
21+
byte myByte = 10; // Variable de tipo byte, que almacena números enteros pequeños
22+
short myShort = 20; // Variable de tipo short, que almacena números enteros medianos
23+
int myInt = 10000; // Variable de tipo int, que almacena números enteros normales
24+
long myLong = 10200; // Variable de tipo long, que almacena números enteros grandes
25+
char myChar = 'a'; // Variable de tipo char, que almacena un solo carácter
26+
boolean myBool = false; // Variable de tipo boolean, que almacena un valor verdadero (true) o falso (false)
27+
28+
// Imprime el mensaje "¡Hola, Java!" en la consola
29+
System.out.println("¡Hola, Java!");
30+
}
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
''' * EJERCICIO:
2+
* - Crea un comentario en el código y coloca la URL del sitio web oficial del
3+
* lenguaje de programación que has seleccionado.
4+
* - Representa las diferentes sintaxis que existen de crear comentarios
5+
* en el lenguaje (en una línea, varias...).
6+
* - Crea una variable (y una constante si el lenguaje lo soporta).
7+
* - Crea variables representando todos los tipos de datos primitivos
8+
* del lenguaje (cadenas de texto, enteros, booleanos...).
9+
* - Imprime por terminal el texto: "¡Hola, [y el nombre de tu lenguaje]!"
10+
'''
11+
# Solución:
12+
# 1. https://www.python.org/
13+
14+
# 2. Una línea
15+
# Este es un comentario en Python
16+
'''
17+
Varias
18+
lineas
19+
'''
20+
21+
# 3. Crea una variable (y una constante si el lenguaje lo soporta).
22+
var = 1
23+
# No hay constantes en Python
24+
25+
# 4. Crea variables representando todos los tipos de datos primitivos del lenguaje (cadenas de texto, enteros, booleanos...).
26+
entero = 1
27+
flotante = 1.0
28+
string = "Hola"
29+
booleano = True
30+
nulo = None
31+
32+
# 5. Imprime por terminal el texto: "¡Hola, [y el nombre de tu lenguaje]!"
33+
print("¡Hola, Python!")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
'''
2+
* EJERCICIO:
3+
* - Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje:
4+
* Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits...
5+
* (Ten en cuenta que cada lenguaje puede poseer unos diferentes)
6+
* - Utilizando las operaciones con operadores que tú quieras, crea ejemplos
7+
* que representen todos los tipos de estructuras de control que existan
8+
* en tu lenguaje:
9+
* Condicionales, iterativas, excepciones...
10+
* - Debes hacer print por consola del resultado de todos los ejemplos.
11+
*
12+
* DIFICULTAD EXTRA (opcional):
13+
* Crea un programa que imprima por consola todos los números comprendidos
14+
* entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
15+
*
16+
* Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo.
17+
*/
18+
'''
19+
# 1. Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje:
20+
# Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits...
21+
# (Ten en cuenta que cada lenguaje puede poseer unos diferentes)
22+
23+
# Operadores aritméticos: estos son los operadores que se utilizan para realizar operaciones matemáticas.
24+
# En Python tenemos los siguientes operadores aritméticos:
25+
# + (suma), - (resta), * (multiplicación), / (división), % (módulo), ** (exponente), // (división entera)
26+
print(f"Suma: 1 + 2 = {1 + 2}")
27+
print(f"Resta: 1 - 2 = {1 - 2}")
28+
print(f"Multiplicación: 1 * 2 = {1 * 2}")
29+
print(f"División: 1 / 2 = {1 / 2}")
30+
print(f"Módulo: 1 % 2 = {1 % 2}")
31+
print(f"Exponente: 1 ** 2 = {1 ** 2}")
32+
print(f"División entera: 1 // 2 = {1 // 2}")
33+
34+
# Operadores de comparación: estos operadores se utilizan para comparar dos valores.
35+
# En Python tenemos los siguientes operadores de comparación:
36+
# == (igualdad), != (desigualdad), >
37+
print(f"Igualdad: 1 == 2 es {1 == 2}")
38+
print(f"Desigualdad: 1 != 2 es {1 != 2}")
39+
print(f"Mayor que: 1 > 2 es {1 > 2}")
40+
print(f"Menor que: 1 < 2 es {1 < 2}")
41+
42+
# Operadores lógicos: estos operadores se utilizan para combinar expresiones lógicas.
43+
# En Python tenemos los siguientes operadores lógicos:
44+
# and (y), or (o), not (no)
45+
print(f"AND &&: 1 == 1 and 2 == 2 es {1 == 1 and 2 == 2}") #tambien el and se puede escribir como &&
46+
print(f"OR ||: 1 == 1 or 2 == 2 es {1 == 1 or 2 == 2}") #tambien el or se puede escribir como ||
47+
print(f"NOT !: not 1 == 2 es {not 1 == 2}") #tambien el not se puede escribir como !
48+
49+
# Operadores de asignación: estos operadores se utilizan para asignar un valor a una variable.
50+
# En Python tenemos los siguientes operadores de asignación:
51+
# = (asignación), += (suma y asignación), -= (resta y asignación), *= (multiplicación y asignación), /= (división y asignación), %= (módulo y asignación), **= (exponente y asignación), //= (división entera y asignación)
52+
num = 2 # asignación
53+
print(num)
54+
num += 1 # suma y asignación
55+
print(num)
56+
num -= 1 # resta y asignación
57+
print(num)
58+
num *= 2 # multiplicación y asignación
59+
print(num)
60+
num /= 2 # división y asignación
61+
print(num)
62+
num %= 3 # módulo y asignación
63+
print(num)
64+
num **= 2 # exponente y asignación
65+
print(num)
66+
num //= 2 # división entera y asignación
67+
print(num)
68+
69+
# Operadores de identidad: estos operadores se utilizan para comparar la identidad de dos objetos.
70+
# En Python tenemos los siguientes operadores de identidad:
71+
# is (es), is not (no es)
72+
num2 = num
73+
print(f"num is num2 es {num is num2}") #tambien el is se puede escribir como ==
74+
print(f"num is not num2 es {num is not num2}") #tambien el is not se puede escribir como !=
75+
76+
# Operadores de pertenencia: estos operadores se utilizan para comprobar si un objeto está presente en otro objeto.
77+
# En Python tenemos los siguientes operadores de pertenencia:
78+
# in (en), not in (no en)
79+
cadena = "Hola Mundo"
80+
print(f"'a' in 'Hola Mundo' = {'a' in 'Hola Mundo'}")
81+
print(f"'b' not in 'Hola Mundo' = {'b' not in 'Hola Mundo'}")
82+
83+
# Operadores de bit: estos operadores se utilizan para realizar operaciones a nivel de bits.
84+
# En Python tenemos los siguientes operadores de bit:
85+
# & (AND), | (OR), ^ (XOR), ~ (NOT), << (desplazamiento a la izquierda), >> (desplazamiento a la derecha)
86+
a = 5 # 0101 en binario
87+
b = 2 # 0010 en binario
88+
print(f"AND: 5 & 2 = {5 & 2}") # 0000 en binario
89+
print(f"OR: 5 | 2 = {5 | 2}") # 0111 en binario
90+
print(f"XOR: 5 ^ 2 = {5 ^ 2}") # 0111 en binario
91+
print(f"NOT: ~5 = {~5}") # 1010 en binario
92+
print(f"Desplazamiento a la derecha: 5 >> 2 = {5 >> 2}") # 0001 en binario
93+
print(f"Desplazamiento a la izquierda: 5 << 2 = {5 << 2}") # 10100 en binario
94+
95+
# 2. Utilizando las operaciones con operadores que tú quieras, crea ejemplos
96+
# que representen todos los tipos de estructuras de control que existan
97+
# en tu lenguaje: Condicionales, iterativas, excepciones...
98+
99+
# Condicionales
100+
num = 5
101+
if num == 10:
102+
print("num es 10")
103+
elif num == 20:
104+
print("num es 20")
105+
else:
106+
print("num no es ni 10 ni 20")
107+
108+
# Iterativas
109+
num = 0
110+
while num < 5:
111+
print(num)
112+
num += 1
113+
114+
for i in range(5):
115+
print(i)
116+
117+
# Manejo de excepciones
118+
try:
119+
print(10 / 0)
120+
except:
121+
print("No se puede dividir por cero")
122+
finally:
123+
print("Ha finalizado el manejo de excepciones")
124+
125+
# 3. Crea un programa que imprima por consola todos los números comprendidos
126+
# entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
127+
128+
for num in range(10,56):
129+
if num % 2 == 0 and num != 16 and num % 3 != 0:
130+
print(num)

0 commit comments

Comments
 (0)