let caramelos = 1000; let nens = 70; console.log(caramelos / nens); // Math.round nos redondea según las normas del redondeo: hasta 0.5 para abajo, de 0.5 para arriba let carameloxnen = Math.round(caramelos / nens); console.log(carameloxnen); // Con el random podemos tener valores aleatorios let aleatorio = Math.random(); console.log(aleatorio); // Trunc nos quita los decimales // Por lo tanto si multiplico el random por un valor, le quito los decimales y le sumo 1 // Obtengo un número al azar entre 1 y ese valor // En este caso simulo la tirada de un dado, que es un valor enter 1 y 6 let tiradaDado = Math.trunc(Math.random() * 6) + 1; console.log(tiradaDado); console.log(Math.sqrt(16)); // Obtengo valores entre 1 y 2 let tiradaMoneda = Math.trunc(Math.random() * 2) + 1; console.log(tiradaMoneda) // Lo hago 10 veces, como si tirara una moneda en 10 ocasiones for (let i = 0; i < 10; i++) { tiradaMoneda = Math.trunc(Math.random() * 2) + 1; // Si es 1 es cara y si es 2 es cruz if (tiradaMoneda==1){ console.log("Ha salido cara"); }else{ console.log("Ha salido cruz"); } }
Mes: abril 2024
Ejemplos bucle for
for (let i = 0; i < 5; i++) { console.log(i); } let cadena = ""; for (let i = 0; i < 5; i++) { cadena += "*"; } console.log(cadena) let cuadrado = 8; for (let i = 0; i < cuadrado; i++) { let linea = ""; for (let k = 0; k < cuadrado; k++) { linea += "*"; } console.log(linea); } // Tengo en una variable un número y quiero saber sus divisores // 12 -> 2, 3, 4, 6, 12 // 11 -> 11 // 8 -> 2, 4, 8 // ¿Yo puedo de alguna manera en JS saber si un número es divisor de otro? // Si el resto de la división es 0 numero % divisor==0 if (numero % divisor == 0) let numero = 101; for (let i = 2; i <= numero; i++) { if (numero % i == 0) { console.log(i + " es divisor de " + numero); } } // Quiero saber si un número es primo. Un número es primo si solo es divisible entre el mismo y la unidad let esPrimo=true; for (let i = 2; i < numero; i++) { if (numero % i == 0) { console.log(i + " es divisor de " + numero); // Entro aquí cuando 'i' es divisor del número esPrimo=false; } } if(esPrimo){ console.log(`${numero} es primo`) }else{ console.log(`${numero} NO es primo`) } let divisores=0; for (let i = 2; i <= numero; i++) { if (numero % i == 0) { console.log(i + " es divisor de " + numero); divisores++; } } console.log("El número "+numero+" tiene "+divisores+" divisores"); if(divisores==1){ console.log(`${numero} es primo`) } // dibujar un arbolito let cadena=""; let tamanyo=6; for(let i=0;i<tamanyo;i++){ cadena+="*"; console.log(cadena); } // Escribir los números del 1 al 10 y sus cuadrados for(let i=1;i<=10;i++){ console.log(i,i*i); }
Bucle for con ejemplos
// Sintaxis del for es la siguiente: // for( inicializar variables ; condicion ; modificación ) // Forma 'canónica' for (let i = 0; i < 10; i++) { console.log(i); // 0 1 2 ... 9 } for (let i = 1; i <= 10; i++) { console.log(i); // 1 2 3 ... 10 } // Sumar todos los numeros del 1 al 100 let suma = 0; for (let i = 1; i <= 100; i++) { suma += i; } console.log(suma); // Incremento de dos en dos for (let i = 1; i < 1000; i += 2) { console.log(i); } // Restando 1 a la variable for (let i = 10; i > 0; i--) { console.log(i); } // A partir de aquí esto son experimentos. Se muestran para que veáis que se puede hacer // PERO NO PARA HACERLO // for sin inicialización let j = 0; for (; j < 10; j++) { console.log(j) } // for sin modificación for (let i = 0; i < 10;) { console.log(i); i++; } // for sin condicion for (let i = 0; ; i++) { console.log(i); if (i > 10) { break; // Esto sirve para salir del bucle } } // for pelado j = 0; for (; ;) { console.log(j); j++; if (j > 10) { break; } } // combinaciones de todas las cosas for (let i = 0; i < 20; i++) { if (i % 3 == 0) { console.log(i + " es múltiplo de 3"); } } // Bucles anidados for (let i = 0; i < 5; i++) { for (let k = 0; k < 5; k++) { console.log(i, k); } } for (let i = 0; i < 5; i++) { for (let k = 0; k < 5; k++) { if (i < k) { console.log(i, k); } } } // Un ejemplo // Tabla de multiplicar for (let i = 1; i <= 10; i++) { console.log(i + " x 5 = " + (i * 5)); } for (let i = 1; i <= 10; i++) { console.log(`${i} x 5 = ${(i * 5)}`); } // Todas las tablas de multiplicar con un bucle anidado for (let k = 1; k <= 10; k++) { for (let i = 1; i <= 10; i++) { console.log(`${i} x ${k} = ${(i * k)}`); } }
Ámbito (scope) de las variables
//Esto está mal let importe=1000; if(importe>500){ let descuento=.1; console.log(descuento); } console.log(importe*descuento); // Esto está bien let importe=1000; let descuento=0; if(importe>500){ descuento=.1; } console.log(importe*descuento);
Soluciones ejercicios if while
//Crear una variable caramelos que valga 1000 y una variable nens que valga 70 y //crear una variable donde almacenar cuantos caramelos les tocaría a cada niño. let caramelos=1000; let nens=70; let carameloxnen=1000/70; console.log(Math.round(carameloxnen)); //Crear una variable cartas que tenga un valor numérico y crear un programa que //nos diga 'correcto' si el número de cartas es 7 o 'incorrecto' si el número de cartas //no es 7 let cartas=0; if (cartas==7) { console.log("Correcto"); } else { console.log("Incorrecto"); } //Crear una variable precio que valga 50 y una variable cantidad que valga 10 y //calcular el total en otra variable. Cread una variable descuento que valga 0 y //si el total es mayor de 1000 que descuento valga 0.1 let precio=50; let cantidad=10; let total=precio*cantidad; let descuento=0; if (total>1000) { descuento=0.1; } console.log(descuento); //Dependiendo del dinero que se haya gastado un cliente en nuestra empresa le //vamos a dar un regalo según la siguiente tabla: //hasta 1000€, un bolígrafo, de 1000 a 5000 un libro y más de 5000 un reloj. Haced el código que nos lo muestre let dineroGastado=900; // Manera 1 if(dineroGastado<1000){ console.log("Un bolígrafo"); } if (dineroGastado>=1000 && dineroGastado<5000){ console.log("Un libro"); } if (dineroGastado>=5000){ console.log("Un reloj"); } // Manera 2 if(dineroGastado<1000){ console.log("Un bolígrafo"); } else if (dineroGastado<5000){ console.log("Un libro"); }else{ console.log("Un reloj"); } //Tenemos una variable elemento y otra tipo. //Si elemento vale 'aire' o 'fuego' y tipo es 'extrovertido' escribimos 'compatible'. //Si elemento vale 'agua' o 'tierra' y tipo es introvertido escribimos 'incompatible' y //si no es ninguna de las dos escribimos 'No se puede determinar' let elemento="agua"; let tipo="introvertido"; // Manera 1 if((elemento=="aire" || elemento=="fuego") && tipo=="extrovertido"){ console.log("Compatible"); } else if(tipo=="introvertido" && (elemento=="agua"||elemento=="tierra")){ console.log("Incompatible") } else{ console.log("No se puede determinar"); } // Manera 2 let mensaje="No se puede determinar"; if((elemento=="aire" || elemento=="fuego") && tipo=="extrovertido"){ mensaje="Compatible"; } if(tipo=="introvertido" && (elemento=="agua"||elemento=="tierra")){ mensaje="Incompatible"; } console.log(mensaje); //Haced un bucle que nos muestre los números del 10 al 1 por consola let i=10; while(i>0){ console.log(i); i--; // i=i-1 i-=1 } //Haced un bucle que pida nombres al usuario hasta que ponga 'fin' let nombre; do{ nombre=prompt("Dame un nombre","fin"); }while(nombre!="fin");
Condiciones complejas
/* Las condiciones del if pueden combinar varias condiciones Se pueden combinar con los conectores lógicos: AND, OR, NOT AND: Las dos condiciones tienen que ser ciertas Ejemplo: Si tengo dinero y soy mayor de edad entro a la disco OR: Alguna de las dos condiciones tiene que ser cierta Ejemplo: Si llueve o no tengo el coche no voy a la playa NOT: Es cierta cuando la condición es falsa y viceversa Si tengo zapatillas no entro en la discoteca */ /* Si el departamento es marketing y el empleado tiene una antigüedad de 10 años o más tiene un bono de 100 euros Si es otro departamento y el empleado tiene una antiguedad de 15 años o más tiene un bono de 75 € */ let departamento = "contabilidad"; let antiguedad = 15; let bono = 0; if (departamento == "marketing" && antiguedad >= 10) { bono = 100; } if (departamento != "marketing" && antiguedad >= 15) { bono = 75; } /* En una atracción del tibidabo se puede subir si la altura es mayor o igual de 130 cm o la edad es mayor o igual a 12 años */ let altura = 120; let edad = 13; if (altura >= 130 || edad >= 12) { console.log("Puedes subir a la atracción"); } // En la disco no se entra con zapatillas let zapatillas = true; if (!zapatillas) { console.log("Puedes entrar"); } /* Si la ciudad es Barcelona o Tarragona y el importe es mayor de 5000 o si es otra ciudad y el importe es mayor de 10000 Gastos de envío gratis */ let ciudad = "Logroño"; let importe = 9000; if (importe > 10000 || ((ciudad == "Barcelona" || ciudad == "Tarragona") && importe > 5000)) { console.log("Gastos de envío gratis"); } /* En nuestra empresa los gastos de envío dependen del importe del producto de acuerdo a la siguiente tabla: 0-1000: 20 1000-2000: 15 2000-4000: 10 4000-6000:5 >6000: 0 */ let gastos = 0; if (importe < 1000) { gastos = 20; } else if (importe < 2000) { gastos = 15; } else if (importe < 4000) { gastos = 10; } else if (importe < 6000) { gastos = 5; } else { gastos = 0; }
Bucle while JS
/* Bucle se ejecuta MIENTRAS se cumpla la condición */ let i=0; while(i<10){ i++; console.log(i); // 1 2 3 4 5 6 7 8 9 10 } i=100; while(i>0){ console.log(i); // 100 90 80 70 60 50 40 30 20 10 i-=10; // Restar 10 a i } i=1; let suma=0; while(i<=10){ suma+=i; i++; } console.log(suma); // 55 (la suma de los 10 primeros números) // Suma los números que nos da el usuario hasta que introduce 0 let numero=0; suma=0; do{ numero=Number(prompt("Introduce un número (0 para salir)",0)); suma+=numero; } while(numero!=0); console.log(suma) /* Ejercicio ejemplo: sumar los números pares desde 0 hasta 100 */ // Apunnto los pares y después los sumo let n=2; suma=0; while(n<=100){ suma=suma+n; n=n+2; } console.log(suma);
Ifs Anidados
let ciudad="Barcelona"; let importe=5000; /* Si la ciudad es Barcelona y el importe es <3000 los gastos de envío son 10 Si es mayor o igual de 3000 son 5 En cualquier otra ciudad si el importe es menor de 4000 los gastos son 20 Y si es mayor o igual de 4000 son 10 */ let gastosEnvio=0; if (ciudad=="Barcelona"){ if (importe<3000){ gastosEnvio=10; }else{ gastosEnvio=5; } }else{ if (importe<4000){ gastosEnvio=20; }else{ gastosEnvio=10; } } /* Si el departamento es marketing y el empleado tiene una antigüedad de 10 años o más tiene un bono de 100 euros Si es otro departamento y el empleado tiene una antiguedad de 15 años o más tiene un bono de 75 € */ let departamento="marketing"; let antiguedad=15; let bono=0; if (departamento=="marketing"){ if(antiguedad>=10){ bono=100; } }else{ if(antiguedad>=15){ bono=75; } }
Soluciones ejercicios
Crear una variable para almacenar el nombre de un producto y asignarle el valor ‘Tuerca’, otra para la referencia y asignar el valor ‘RF445’ y mostrad los valores por la consola.
Crear una variable para almacenar la cantidad de tuercas que tenemos y asignarle el valor 125. Crear otra variable para almacenar el precio que es 0.1. Calculad el total e imprimidlo.
Cread dos variables a y b, poned los valores que queráis y con un if imprimir cual es el valor mayor.
Modificad lo anterior para pedir los valores al usuario
Pedid el nombre y la edad al usuario y si es mayor de edad escribid ‘Bienvenido ‘+nombre y si es menor escribid Nombre+’ No puedes pasar’
console.log("Ejercicios JS"); let nombreProducto="Tuerca"; let referencia="RF445"; console.log(nombreProducto,referencia); let cantidad=125; let precio=0.1; let total=cantidad*precio; console.log("Total: "+total); let a=15; let b=88; if (a>b){ console.log("A es mayor que B. A: "+a+" y b: "+b); } if (b>a){ console.log("B es mayor que A. A: "+a+" y b: "+b); } a=Number(prompt("Introduce un número",0)); b=Number(prompt("Introduce otro número",0)); if (a>b){ console.log("A es mayor que B. A: "+a+" y b: "+b); } if (b>a){ console.log("B es mayor que A. A: "+a+" y b: "+b); } let nombre=prompt("Dime tu nombre","Anónimo"); let edad=Number(prompt("Dime tu edad",18)); if (edad>=18){ console.log("Bienvenido: "+nombre); }else{ console.log(nombre+" no puedes entrar"); }
Interaccionar con el usuario
// Lanzar un mensaje al usuario alert("Hola"); // Pedir una confirmación al usuario let hasZapatillas=confirm("¿LLevas zapatillas"); console.log(hasZapatillas); if (hasZapatillas){ alert("No puedes entrar con zapatillas"); } // Pedir un valor al usuario let nombre=prompt("¿Cómo te llamas?"); console.log(nombre); // Valor por defecto nombre=prompt("¿Cómo te llamas?","Anonimo"); console.log(nombre); // Si pedimos números hay que convertir let precio=Number(prompt("Precio por unidad",20)); console.log(precio); console.log(precio+100);