Skip to content

Commit

Permalink
Merge pull request #73 from marcode24/2024
Browse files Browse the repository at this point in the history
🔨 Add script for create solutions
  • Loading branch information
marcode24 authored Jan 17, 2024
2 parents c5cf2dd + 647b7dd commit cdb32bd
Show file tree
Hide file tree
Showing 8 changed files with 374 additions and 2 deletions.
23 changes: 23 additions & 0 deletions 2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/README.md
Original file line number Diff line number Diff line change
@@ -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.
47 changes: 47 additions & 0 deletions 2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/index.js
Original file line number Diff line number Diff line change
@@ -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!');
42 changes: 42 additions & 0 deletions 2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo/solution.ts
Original file line number Diff line number Diff line change
@@ -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!');
16 changes: 16 additions & 0 deletions 2024/01-operadores-y-estructuras-de-control/README.md
Original file line number Diff line number Diff line change
@@ -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.
92 changes: 92 additions & 0 deletions 2024/01-operadores-y-estructuras-de-control/index.js
Original file line number Diff line number Diff line change
@@ -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);
}
90 changes: 90 additions & 0 deletions 2024/01-operadores-y-estructuras-de-control/solution.ts
Original file line number Diff line number Diff line change
@@ -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);
}
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<div align="center">
<img
alt="weekly-challenges"
src="https://res.cloudinary.com/dfeujtobk/image/upload/v1675279246/Challenges/weekly-challenges_ywfp4v.png"
src="https://res.cloudinary.com/dfeujtobk/image/upload/v1705525644/Challenges/hntvupdgmb1zxwx31kfc.png"
width="1200"
style="border-radius: 1rem" />
<br />
Expand Down Expand Up @@ -42,10 +42,24 @@ npm run test
npm run test 'year'/'folder-name'/solution.test.js
```

## 🎯 2024 Challenges

<details open>
<summary>Show / Hide</summary>

| # | Challenge | Difficulty | My Solution |
| :-: | ------------------------------------------------------------------------------------------- | :--------: | :---------------------------------------------------------------------------------------------------------------------: |
| 00 | [Sintaxis, Variables, Tipos de datos y Hola Mundo](https://retosdeprogramacion.com/roadmap/)| 🟢 | [Here](https://github.com/marcode24/weekly-challenges/tree/main/2024/00-sintaxis-variables-tipos-de-datos-y-hola-mundo) |
| 01 | [Operadores y Estructuras de Control](https://retosdeprogramacion.com/roadmap/) | 🟢 | [Here](https://github.com/marcode24/weekly-challenges/tree/main/2024/01-operadores-y-estructuras-de-control) |

Difficulties legend:
🟢 Easy 🟡 Medium 🔴 Hard

</details>

## 🎯 2023 Challenges

<details open>
<details hide>
<summary>Show / Hide</summary>

| # | Challenge | Difficulty | My Solution |
Expand Down
Loading

0 comments on commit cdb32bd

Please sign in to comment.