//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);
Ejemplos variables e If
let precio=100;
let cantidad=15;
let total=precio * cantidad;
if (total>1000){
console.log("Tienes un 10% de descuento");
console.log(total)
console.log("Descuento: ",total*.1); // total*10/100 -> total*.1
console.log("Importe total:", total*.9); // total * (100-10)/100 ->total*.9
}else{
console.log("Importe total: ", total);
}
let hasZapatillas=false;
if (hasZapatillas){
console.log("Con zapatillas no se entra en la discoteca");
}else{
console.log("Puedes entrar");
}
let horasDiarias=8;
let diasTrabajados=30;
let totalHoras=horasDiarias*diasTrabajados;
let precioHora=20;
if (diasTrabajados>=30){
precioHora=21;
}
console.log("Sueldo: ",totalHoras*precioHora);
let sueldo=totalHoras*precioHora;
// Si el sueldo es mayor de 10000->irpf=30 Si es mayor de 5000 ->20 (ok) En otro caso->15 (ok)
sueldo=16000;
let irpf=15;
// El siguiente código tiene un error ¿Cual? y ¿Cómo lo arreglo?
if(sueldo>5000){
irpf=20;
}
if (sueldo>10000){
irpf=30;
}
console.log("IRPF: ",sueldo*irpf/100);
JS If
// Estructura de control
let edad=10;
// Instrucción if
// if (condicion){...}
// La condición es un valor booleano que será cierto o falso
// Yo he utilizado una comparación
// >, >= mayor mayor igual, < <= menor menor igual, == igual, != diferente
if (edad>=18){
// Lo que se ejecuta si la condición se cumple
console.log("Puedes entrar");
console.log("Porque eres mayor de edad");
console.log("Bienvenido");
} else {
// Lo que se ejecuta si la condición NO se cumple
console.log("No puedes entrar");
}
// Lo mismo de antes pero solo daremos aviso si no es mayor de edad
if (edad<18){
console.log("No puedes entrar")
}
let precio=100;
if (precio==100){
console.log("Felicidades porque el PRECIO es redondo");
}
if (precio!=10){
console.log("El precio no es 10")
}
let cantidad=18;
if (cantidad*precio>1000){
console.log("Es muy caro");
}
Operaciones
// Operadores de JS
// Todas las operaciones de toda la vida
let a=5;
let b=6;
let suma=a+b;
let resta=a-b;
let multiplicacion=a*b;
let division=a/b;
console.log(suma);
console.log(resta);
console.log(multiplicacion);
console.log(division);
console.log(a**b); // 5 elevado a la sexta potencia 5^6
// Resto de la división (%)
console.log(52 % 3); // Divido 52 entre 3, me da 17 y me sobra 1. Pues el resto es el 1
// Operadores incremento y decremento
a++; // le suma uno a 'a'
b--; // Le resta uno a 'b'
console.log(a,b);
// Atajos de las operaciones
a=a+10; // Le sumo 10 a 'a'
a+=10; // Es lo mismo
a+=b; // Le estoy sumando 'b' a 'a'
console.log(a)
let nombre="Ana";
let apellido="Pi";
// En cadenas el '+' nos concatena las cadenas
let nombreCompleto=nombre+" "+apellido;
console.log(nombreCompleto);
let numero="10";
console.log(numero);
console.log(typeof(numero));
console.log(typeof(a));
console.log(a+numero); // Malo 3110 41
console.log(numero+a); // Error 1031 41
// Conversión entre tipos
let precio=Number(numero); // Convierto a número
let producto=String(a); // Convierto a cadena
let descuento=Boolean(b); // Convierto a booleano
console.log(precio,producto,descuento);
console.log(Number("13a"));
console.log(Number("a13a"));
Tipos de datos en JS
// Números
let precio=8.5;
let cantidad=8;
let total=precio*cantidad;
console.log(precio);
console.log(cantidad);
console.log(total)
// Tienen una precisión, no son ilimitados
console.log(9007199254740991 + 1); // 9007199254740992
console.log(9007199254740991 + 2);
console.log(0.1+0.2) // Esto no lo hace bien
let grande=7982739182391832719283131238123791238n;
console.log(grande+1n);
// Cadenas
let nombre="Ana";
let apellido='Pi';
let calculo=`el total es ${total}`;
console.log(nombre);
console.log(apellido);
console.log(calculo);
// Booleanos (cierto o falso)
let cierto=true;
let falso=false;
console.log(cierto);
console.log(falso);
// Valores especiales
// Inifinito
let a=9/0;
console.log(a);
// Valor nulo
a=null;
console.log(a);
// Valor indefinido
let b;
console.log(b);
let c="";