Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔨 Add script for create solutions #73

Merged
merged 5 commits into from
Jan 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading