Skip to content

Commit

Permalink
Merge pull request #3328 from DavidMoralesDeveloper/main
Browse files Browse the repository at this point in the history
#1 - javascript
  • Loading branch information
Roswell468 authored May 1, 2024
2 parents d6d2ee3 + 7fbd318 commit 0e5c149
Show file tree
Hide file tree
Showing 2 changed files with 293 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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 (!=)
151 changes: 151 additions & 0 deletions Roadmap/02 - FUNCIONES Y ALCANCE/javascript/DavidMoralesDeveloper.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
//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'))
// correcion de coomit

0 comments on commit 0e5c149

Please sign in to comment.