diff --git a/2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/README.md b/2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/README.md new file mode 100644 index 0000000..e912e6c --- /dev/null +++ b/2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/README.md @@ -0,0 +1,23 @@ +# Reto 00: Sintaxis variables tipos de datos y hola mundo + +## Enunciado + +¿Preparad@ para aprender o repasar el lenguaje de programación que tú quieras? + +- Recuerda que todas las instrucciones de participación están en el repositorio de GitHub. + +Lo primero... ¿Ya has elegido un lenguaje? + +- No todos son iguales, pero sus fundamentos suelen ser comunes. +- Este primer reto te servirá para familiarizarte con la forma de participar enviando tus propias soluciones. + +EJERCICIO: + +- Crea un comentario en el código y coloca la URL del sitio web oficial del lenguaje de programación que has seleccionado. +- Representa las diferentes sintaxis que existen de crear comentarios en el lenguaje (en una línea, varias...). +- Crea una variable (y una constante si el lenguaje lo soporta). +- Crea variables representando todos los tipos de datos primitivos del lenguaje (cadenas de texto, enteros, booleanos...). +- Imprime por terminal el texto: "¡Hola, [y el nombre de tu lenguaje]!" + +¿Fácil? No te preocupes, recuerda que esta es una ruta de estudio y +debemos comenzar por el principio. diff --git a/2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/index.js b/2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/index.js new file mode 100644 index 0000000..a9cf0d9 --- /dev/null +++ b/2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/index.js @@ -0,0 +1,47 @@ +/* eslint-disable no-undef-init */ +/* eslint-disable prefer-const */ +/* eslint-disable no-unused-vars */ +/* eslint-disable no-console */ + +// ¡Preparad@ para aprender o repasar el lenguaje de programación que tú quieras? +// - Recuerda que todas las instrucciones de participación están en el +// repositorio de GitHub. +// +// Lo primero... ¿Ya has elegido un lenguaje? +// - No todos son iguales, pero sus fundamentos suelen ser comunes. +// - Este primer reto te servirá para familiarizarte con la forma de participar +// enviando tus propias soluciones. +// +// EJERCICIO: +// - Sitio web oficial de JavaScript: https://developer.mozilla.org/es/docs/Web/JavaScript + +// - Representa las diferentes sintaxis que existen de crear comentarios +// en el lenguaje (en una línea, varias...). + +/* + Comentario de múltiples líneas +*/ + +// - Crea una variable (y una constante si el lenguaje lo soporta). +let miVariable = 'Hola, mundo'; +// eslint-disable-next-line no-unused-vars +const miConstante = 42; + +// - Crea variables representando todos los tipos de datos primitivos +// del lenguaje (cadenas de texto, enteros, booleanos...). +let cadenaTexto = 'Hola'; +let numeroEntero = 42; +let numeroDecimal = 3.14; +let booleano = true; +let bigInt = 9007199254740991n; +let nulo = null; +let indefinido = undefined; +let simbolo = Symbol('Hola'); +let objeto = { + nombre: 'Pepe', + edad: 42, +}; +let array = [1, 2, 3]; + +// - Imprime por terminal el texto: "¡Hola, JavaScript!" +console.log('¡Hola, JavaScript!'); diff --git a/2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/solution.ts b/2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/solution.ts new file mode 100644 index 0000000..0c91a32 --- /dev/null +++ b/2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/solution.ts @@ -0,0 +1,42 @@ +// ¡Preparad@ para aprender o repasar el lenguaje de programación que tú quieras? +// - Recuerda que todas las instrucciones de participación están en el +// repositorio de GitHub. +// +// Lo primero... ¿Ya has elegido un lenguaje? +// - No todos son iguales, pero sus fundamentos suelen ser comunes. +// - Este primer reto te servirá para familiarizarte con la forma de participar +// enviando tus propias soluciones. +// +// EJERCICIO: +// - Sitio web oficial de JavaScript: https://developer.mozilla.org/es/docs/Web/JavaScript + +// - Representa las diferentes sintaxis que existen de crear comentarios +// en el lenguaje (en una línea, varias...). + +/* + Comentario de múltiples líneas +*/ + +// - Crea una variable (y una constante si el lenguaje lo soporta). +let miVariable2: string = 'Hola, mundo'; +// eslint-disable-next-line no-unused-vars +const miConstante2: number = 42; + +// - Crea variables representando todos los tipos de datos primitivos +// del lenguaje (cadenas de texto, enteros, booleanos...). +let cadenaTexto2: string = 'Hola'; +let numeroEntero2: number = 42; +let numeroDecimal2: number = 3.14; +let booleano2: boolean = true; +let bigInt2: bigint = 9007199254740991n; +let nulo2: null = null; +let indefinido2: undefined = undefined; +let simbolo2: symbol = Symbol('Hola'); +let objeto2: { nombre: string; edad: number } = { + nombre: 'Pepe', + edad: 42, +}; +let array2: number[] = [1, 2, 3]; + +// - Imprime por terminal el texto: "¡Hola, JavaScript!" +console.log('¡Hola, JavaScript!'); diff --git a/2024/01-operadores-y-estructuras-de-control/README.md b/2024/01-operadores-y-estructuras-de-control/README.md new file mode 100644 index 0000000..1a767c4 --- /dev/null +++ b/2024/01-operadores-y-estructuras-de-control/README.md @@ -0,0 +1,16 @@ +# Reto 01: Operadores y estructuras de control + +## Enunciado + +- Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje: + - Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits... + - **(Ten en cuenta que cada lenguaje puede poseer unos diferentes)** +- Utilizando las operaciones con operadores que tú quieras, crea ejemplos que representen todos los tipos de estructuras de control que existan en tu lenguaje: + - Condicionales, iterativas, excepciones... +- Debes hacer print por consola del resultado de todos los ejemplos. + +**DIFICULTAD EXTRA (opcional):** + +- Crea un programa que imprima por consola todos los números comprendidos entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. + +Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo. diff --git a/2024/01-operadores-y-estructuras-de-control/index.js b/2024/01-operadores-y-estructuras-de-control/index.js new file mode 100644 index 0000000..3f7d914 --- /dev/null +++ b/2024/01-operadores-y-estructuras-de-control/index.js @@ -0,0 +1,92 @@ +/* eslint-disable no-console */ +/* eslint-disable no-bitwise */ +// Operadores aritméticos +const suma = 5 + 3; +const resta = 10 - 4; +const multiplicacion = 6 * 7; +const division = 20 / 4; +const modulo = 15 % 4; + +console.log('Operadores Aritméticos:'); +console.log('Suma:', suma); +console.log('Resta:', resta); +console.log('Multiplicación:', multiplicacion); +console.log('División:', division); +console.log('Módulo:', modulo); + +// Operadores lógicos +const and = true && false; +const or = true || false; +const not = !true; + +console.log('\nOperadores Lógicos:'); +console.log('AND:', and); +console.log('OR:', or); +console.log('NOT:', not); + +// Operadores de comparación +// eslint-disable-next-line eqeqeq +const igual = 5 == '5'; +const estrictamenteIgual = 5 === '5'; +const diferente = 10 !== 5; +const mayorQue = 15 > 10; +const menorQue = 7 < 12; + +console.log('\nOperadores de Comparación:'); +console.log('Igual (==):', igual); +console.log('Estrictamente Igual (===):', estrictamenteIgual); +console.log('Diferente (!=):', diferente); +console.log('Mayor Que (>):', mayorQue); +console.log('Menor Que (<):', menorQue); + +// Operadores de asignación +let x = 10; +x += 5; // equivalente a x = x + 5 +let y = 20; +y *= 2; // equivalente a y = y * 2 + +console.log('\nOperadores de Asignación:'); +console.log('x:', x); +console.log('y:', y); + +// Operadores bitwise +const bitwiseAnd = 5 & 3; // AND +const bitwiseOr = 5 | 3; // OR +const bitwiseXor = 5 ^ 3; // XOR +const bitwiseNot = ~5; // NOT +const leftShift = 5 << 1; // Left Shift +const rightShift = 5 >> 1; // Right Shift +const zeroFillRightShift = 5 >>> 1; // Zero-fill Right Shift + +console.log('\nOperadores Bitwise:'); +console.log('Bitwise AND (&):', bitwiseAnd); +console.log('Bitwise OR (|):', bitwiseOr); +console.log('Bitwise XOR (^):', bitwiseXor); +console.log('Bitwise NOT (~):', bitwiseNot); +console.log('Left Shift (<<):', leftShift); +console.log('Right Shift (>>):', rightShift); +console.log('Zero-fill Right Shift (>>>):', zeroFillRightShift); + +// Estructuras de control +// Condicionales +const edad = 18; +if (edad >= 18) { + console.log('\nEres mayor de edad.'); +} else { + console.log('\nEres menor de edad.'); +} + +// Iterativas +console.log('\nNúmeros entre 10 y 55 (pares, no 16 ni múltiplos de 3):'); +for (let i = 10; i <= 55; i++) { + if (i % 2 === 0 && i !== 16 && i % 3 !== 0) { + console.log(i); + } +} + +// Excepciones +try { + throw new Error('Este es un ejemplo de excepción.'); +} catch (error) { + console.error('\nExcepción:', error.message); +} diff --git a/2024/01-operadores-y-estructuras-de-control/solution.ts b/2024/01-operadores-y-estructuras-de-control/solution.ts new file mode 100644 index 0000000..afcd7c5 --- /dev/null +++ b/2024/01-operadores-y-estructuras-de-control/solution.ts @@ -0,0 +1,90 @@ +// Operadores aritméticos +const suma: number = 5 + 3; +const resta: number = 10 - 4; +const multiplicacion: number = 6 * 7; +const division: number = 20 / 4; +const modulo: number = 15 % 4; + +console.log('Operadores Aritméticos:'); +console.log('Suma:', suma); +console.log('Resta:', resta); +console.log('Multiplicación:', multiplicacion); +console.log('División:', division); +console.log('Módulo:', modulo); + +// Operadores lógicos +const and: boolean = true && false; +const or: boolean = true || false; +const not: boolean = !true; + +console.log('\nOperadores Lógicos:'); +console.log('AND:', and); +console.log('OR:', or); +console.log('NOT:', not); + +// Operadores de comparación +// eslint-disable-next-line eqeqeq +const igual: boolean = 5 == '5'; +const estrictamenteIgual: boolean = 5 === '5'; +const diferente: boolean = 10 !== 5; +const mayorQue: boolean = 15 > 10; +const menorQue: boolean = 7 < 12; + +console.log('\nOperadores de Comparación:'); +console.log('Igual (==):', igual); +console.log('Estrictamente Igual (===):', estrictamenteIgual); +console.log('Diferente (!=):', diferente); +console.log('Mayor Que (>):', mayorQue); +console.log('Menor Que (<):', menorQue); + +// Operadores de asignación +let x: number = 10; +x += 5; // equivalente a x = x + 5 +let y: number = 20; +y *= 2; // equivalente a y = y * 2 + +console.log('\nOperadores de Asignación:'); +console.log('x:', x); +console.log('y:', y); + +// Operadores bitwise +const bitwiseAnd: number = 5 & 3; // AND +const bitwiseOr: number = 5 | 3; // OR +const bitwiseXor: number = 5 ^ 3; // XOR +const bitwiseNot: number = ~5; // NOT +const leftShift: number = 5 << 1; // Left Shift +const rightShift: number = 5 >> 1; // Right Shift +const zeroFillRightShift: number = 5 >>> 1; // Zero-fill Right Shift + +console.log('\nOperadores Bitwise:'); +console.log('Bitwise AND (&):', bitwiseAnd); +console.log('Bitwise OR (|):', bitwiseOr); +console.log('Bitwise XOR (^):', bitwiseXor); +console.log('Bitwise NOT (~):', bitwiseNot); +console.log('Left Shift (<<):', leftShift); +console.log('Right Shift (>>):', rightShift); +console.log('Zero-fill Right Shift (>>>):', zeroFillRightShift); + +// Estructuras de control +// Condicionales +const edad: number = 18; +if (edad >= 18) { + console.log('\nEres mayor de edad.'); +} else { + console.log('\nEres menor de edad.'); +} + +// Iterativas +console.log('\nNúmeros entre 10 y 55 (pares, no 16 ni múltiplos de 3):'); +for (let i: number = 10; i <= 55; i++) { + if (i % 2 === 0 && i !== 16 && i % 3 !== 0) { + console.log(i); + } +} + +// Excepciones +try { + throw new Error('Este es un ejemplo de excepción.'); +} catch (error) { + console.error('\nExcepción:', (error as Error).message); +} diff --git a/README.md b/README.md index c7b9e87..93e8644 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@