From 4bf54697300a4c2bcdb93c194b5cc2a3ec434ed1 Mon Sep 17 00:00:00 2001 From: David Morales Date: Tue, 30 Apr 2024 12:07:51 -0600 Subject: [PATCH 1/3] #01 - javascript --- .../javascript/DavidMoralesDeveloper.js | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/javascript/DavidMoralesDeveloper.js diff --git a/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/javascript/DavidMoralesDeveloper.js b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/javascript/DavidMoralesDeveloper.js new file mode 100644 index 0000000000..8ee153e051 --- /dev/null +++ b/Roadmap/01 - OPERADORES Y ESTRUCTURAS DE CONTROL/javascript/DavidMoralesDeveloper.js @@ -0,0 +1,142 @@ +/* + * EJERCICIO: + * 1- 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. + */ + + +//1 Operadores +const a = 1 + const b = 2 + const c = 3 +//Aritméticos +// suma+, resta-, multiplicasion*, division/, modulo(resto)% +// exponenciación **, incremento ++, decremento -- + + const suma = a + b + const resta = a - b + const multiplicasion = a * b + const division = a / b + const modulo = a % b + const exponecia = a ** b + +// lógicos +// || or si una es true , && si las dos son true !true diferente de + +console.log(a || b) +console.log(a && b) +console.log(!true); + +//asignación +// = asignacion de un valor, +=sumar , -= para restar el operando derecho *= , /=, %= +let x = 10; +x += 5; // x = 15 +x -= 2; // x = 13 +x *= 3; // x = 39 +x /= 2; // x = 19.5 +x %= 4; // x = 3.5 + + +//De comparación: +console.log(2 === 2); // Igualdad estricta: true +console.log(2 == 2); // Igualdad no estricta: true +console.log(2 > 1); // Mayor que: true +console.log(2 >= 2); // Mayor o igual que: true +console.log(1 < 2); // Menor que: true +console.log(1 <= 2); // Menor o igual que: true + +//Identidad: +const d = 10; +const e = 10; +console.log(d === e); // true (mismo valor y tipo) +const f = "10"; +console.log(d === f); // false (mismo valor, diferente tipo) + + +//Pertenencia: +const lista = ["a", "b", "c"]; +console.log("a" in lista); // true +console.log("d" in lista); // false + +//Bits +console.log(1 | 2); // OR a nivel de bits: 3 +console.log(1 & 2); // AND a nivel de bits: 0 +console.log(1 ^ 2); // XOR a nivel de bits: 3 +console.log(~1); // NOT a nivel de bits: -2 + + +//Estructuras de Control +//OPERADOR TERNARIO +//expresión ? "si es true" : "si es false"; +let edad = 16; +let acceso = edad > 17 ? "Permitir acceso" : "Denegar acceso"; +console.log(acceso); + +//Condicional +const g = 19 +if(g > 18 ) { + console.log('Es mayor de edad') +}else{console.log('es menor de edad') } + +//Iterativas: +// Bucle for +for (let i = 0; i = 100; i++){ + console.log(i + 'bucle for') +} + // Bucle while + + let i = 0; +let j = 0; +while (n < 3) { + i++; + j += i; +} + + // Bucle do-while + // let j = 0; do{i+1; console.log(i)}; wile{i <5} + let z = 3; + +// do...while loop +do { + console.log(z); + z--; +} while (z > 0); + + //for of for in + const arr = [3, 5, 7]; +arr.foo = "hola"; + +for (let i in arr) { + console.log(i); // logs "0", "1", "2", "foo" +} + +for (let i of arr) { + console.log(i); // logs 3, 5, 7 +} + + +// * 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. + +for (let i = 10; i < 55; i++){ + if(i%2 === 0 && i !=16 && i % 3 != 0) + console.log(i) +} + +// 10, 14, 20, 22, 26, 28, 32, 34, 38, 40, 44, 46, 50, 52 +//i%2 === 0 = 10 12 14 16 18 20 +//i !=16 = 12 14 18 20 +//modulo de tres es distinto a 0 4 / 3 = 0.12 (!=) From 80e27078baa64f0447acf8cebb11b65e83e75598 Mon Sep 17 00:00:00 2001 From: David Morales Date: Tue, 30 Apr 2024 15:19:27 -0600 Subject: [PATCH 2/3] #12 - javascript --- .../javascript/DavidMoralesDeveloper.js | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 Roadmap/02 - FUNCIONES Y ALCANCE/javascript/DavidMoralesDeveloper.js diff --git a/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/DavidMoralesDeveloper.js b/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/DavidMoralesDeveloper.js new file mode 100644 index 0000000000..e280e8182c --- /dev/null +++ b/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/DavidMoralesDeveloper.js @@ -0,0 +1,150 @@ +//1 - Crea ejemplos de funciones básicas que representen las diferentes posibilidades del lenguaje: + +// funsion simple ------------------------------- + // Autoejecutable +(function () { + console.log("Autoejecutable"); + })(); + //declarativa +function hello (){ + console.log('hello word , funcion declarativa') +} + + + // Expresión (anónimas) +const sumFunction = function (a, b){ + return a+ b +} + + + + // Flecha (arrow) +const arrowFunction = (a, b) => { + return a * b +} + + +// con retorno ------------------------------------ + +function square(number) { + return number * number; + } +// este return puedo grardarlo en una variable +let area = square(4) + + +// con argumento ----------------------------------- +function nombre (nombre) { + console.log('mi nombre es ' + nombre) +} + + + +function idioma (idioma, nombre) { + console.log(idioma + nombre) +} + + + +// argumento default + +function defaultsuma (a =5, b = 2 ){ + return a*b +} + + + +//Callbacks +var funB = function () { + return console.log('Funcion B ejecutada'); + }; + var funA = function (callback) { + callback(); + }; + + +//2 - Comprueba si puedes crear funciones dentro de funciones. + //Sucesión de Fibonacci complegidad 2^n + +function fibonacci (num) { + if(num < 2) return num + //funciona en 0 y 1 retorna num , cuando el numero es mayor , va retrocediendo hasta llegar al 1al llegar al 1 entra en el if y es por eso que se puede parar la recursividad + +return fibonacci(num-2) + fibonacci(num-1) +} + +console.log(fibonacci(10)) + +//3- Pon a prueba el concepto de variable LOCAL y GLOBAL. +// no esoty seguro si es lo que pide... +// "String.split()String.substring()String.trim()Array.map()Array.push()Array.pop()String.slice()Array.slice()Object.toString()Number.toFixed()parseInt()Math.random()console.log()" + +//4 - Pon a prueba el concepto de variable LOCAL y GLOBAL. + +const varGlobal = 10 +function sumLocalGlobal (num){ + const local = num + return local + varGlobal +} + +console.log(sumLocalGlobal(5)) + +// - Debes hacer print por consola del resultado de todos los ejemplos. +hello() +console.log('funcion expersión anónimas : '+ sumFunction( 5, 2)) +console.log('funcion de flecha : ' + arrowFunction( 8, 3)) +console.log(area) +nombre('David') +idioma('hi', 'david') +idioma('hola', 'david') +console.log(defaultsuma()) +console.log(defaultsuma(20 , 10)) +funA(funB); + + +// DIFICULTAD EXTRA (opcional): +// * Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número. +// * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que: +// * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro. +// * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro. +// * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas. +// * - La función retorna el número de veces que se ha impreso el número en lugar de los textos. + +// primer intento no funciona +// function extra (cadena1, cadena2){ +// let contador = 0 +// for(let i = 1; i <= 100; i++){ +// if (i % 3 != 0){ +// console.log(cadena1) +// } +// if (i % 5 != 0){ +// console.log(cadena2) +// } +// if(i%3 != 0 && i%5 !=0){ +// console.log(cadena1 + cadena2) +// }else +// contador ++ +// console.log(i) +// } +// return contador +// } + +// console.log(extra('dmultiplo3', 'dmultiplo de 5')) + +//correcion +function correccionExtra ( multiplo, multiplo2){ +let contador = 0 +for (let i = 1; i <= 100; i++){ + if (i % 3 === 0 && i % 5 === 0){ + console.log( ` es ${multiplo} y ${multiplo2}`) + }else if(i % 5 === 0){ + console.log(multiplo2) + }else if(i % 3 === 0){ + console.log(multiplo) + } + contador ++ + console.log(i) +} return contador +} + +console.log(correccionExtra('multiplo de 3', 'multiplo de 5')) \ No newline at end of file From 7fbd318d89297120868a1f587672e62c1f9285bc Mon Sep 17 00:00:00 2001 From: David Morales Date: Tue, 30 Apr 2024 15:21:01 -0600 Subject: [PATCH 3/3] #02 - javascript --- .../javascript/DavidMoralesDeveloper.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/DavidMoralesDeveloper.js b/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/DavidMoralesDeveloper.js index e280e8182c..27f6082a5c 100644 --- a/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/DavidMoralesDeveloper.js +++ b/Roadmap/02 - FUNCIONES Y ALCANCE/javascript/DavidMoralesDeveloper.js @@ -147,4 +147,5 @@ for (let i = 1; i <= 100; i++){ } return contador } -console.log(correccionExtra('multiplo de 3', 'multiplo de 5')) \ No newline at end of file +console.log(correccionExtra('multiplo de 3', 'multiplo de 5')) +// correcion de coomit