Calculadora Core: Herramienta Web con Operaciones Matemáticas

Computer science5.39 KB

Calculadora Core





acumulador = 0;
operador = "";

const vaciar = () => {
  document.getElementById("pantalla").value = "";
};

const rellenar = (y) => {
  document.getElementById("pantalla").value = y;
};

const numero = () => Number(document.getElementById("pantalla").value);

const numeros = () => {
  const t = document.getElementById("pantalla").value;
  const st = t.split(",");
  st.forEach(y => console.log(y));
};

/*const validar = () => {
  if (Number.isNaN(numero())) {
    document.getElementById = "Error";
    rellenar("Error");
    return false;
  } else {
    return true;
  }
};*/

const validar = (content) => {
  if (content.includes(",")) {
    let lista = content.split(",");
    return lista.every((elem) => { return validar(elem); });
  } else {
    let mal = isNaN(content);
    if (mal) {
      document.getElementById("pantalla").value = "Error";
    }
    return !isNaN(content);
  }
};

const cuadrado = () => {
  /*if (!validar()) {
    return;
  }*/
  let num = document.getElementById("pantalla");
  if (validar(num.value)) {
    num.value = num.value * num.value;
    rellenar_info();
  }
};

const mod = () => {
  let num = document.getElementById("pantalla");
  if (validar(num.value)) {
    num.value = Math.abs(num.value);
    rellenar_info();
  }
};

const fact = () => {
  let num = document.getElementById("pantalla");
  if (validar(num.value)) {
    /*let res = 0;
    if (num.value < 0) {
      res = 1;
    } else {*/
    if (num.value >= 1) {
      for (i = (num.value - 1); i > 1; i--)
        num.value = num.value * i;
    } else
      num.value = 1;
    rellenar_info();

    /* let res = 1;
    for (i = 1; i <= num.value; i++)
      res *= i;
    document.getElementById("pantalla").value = res;
    rellenar_info();
    } */
  }
};

const add = () => {
  acumulador = document.getElementById("pantalla").value;
  if (validar(acumulador)) {
    operador = "+";
    vaciar();
  }
};

const resta = () => {
  acumulador = document.getElementById("pantalla").value;
  if (validar(acumulador)) {
    operador = "-";
    vaciar();
  }
};

const mul = () => {
  acumulador = document.getElementById("pantalla").value;
  if (validar(acumulador)) {
    operador = "*";
    vaciar();
  }
};

const division = () => {
  acumulador = document.getElementById("pantalla").value;
  if (validar(acumulador)) {
    operador = "/";
    vaciar();
  }
};

const resto = () => {
  acumulador = document.getElementById("pantalla").value;
  if (validar(acumulador)) {
    operador = "%";
    vaciar();
  }
};

const potencia = () => {
  acumulador = document.getElementById("pantalla").value;
  operador = "^";
  vaciar();
};

const eq = () => {
  num = document.getElementById("pantalla");
  if (validar(num.value)) {
    switch (operador) {
      case "+":
        num.value = Number(num.value) + Number(acumulador);
        /*parseInt es igual que poner Number*/
        break;
      case "*":
        num.value = num.value * acumulador;
        break;
      case "-":
        num.value = acumulador - num.value;
        break;
      case "/":
        num.value = acumulador / num.value;
        break;
      case "%":
        num.value = acumulador % num.value;
        break;
      case "^":
        num.value = Math.pow(acumulador, num.value);
        break;
    }
    rellenar_info();
    acumulador = 0;
    operador = "";
  }
};

const sumatorio = () => {
  let num = document.getElementById("pantalla");
  let list = num.value.split(",");
  let i = 0, acc = 0;
  if (validar(num.value)) {
    while (i < list.length) acc += +list[i++];
    num.value = acc;
    rellenar_info();
  }
};

const ordenar = () => {
  let num = document.getElementById("pantalla");
  let list = num.value.split(",");
  if (validar(num.value)) {
    let res = list.sort(function compareNumbers(a, b) { return a - b; });
    num.value = res.join(",");
  }
};

const revertir = () => {
  let num = document.getElementById("pantalla");
  let list = num.value.split(",");
  if (validar(num.value)) {
    list.reverse();
    num.value = list.join(",");
  }
};

const quitar = () => {
  let num = document.getElementById("pantalla");
  if (validar(num.value)) {
    let list = num.value.split(",");
    list.pop();
    num.value = list.join(",");
  }
};

/*const validar = () => {
  if (Number.isNaN(numero()));
  rellenar("Error");
  return false;
} else {
  return true;
}*/

/* porque el .value en mul y en add y en los otros no, no seria igual que poner acumulador.value */

const rellenar_info = () => {
  let num_input_texto = document.getElementById("pantalla");
  let n = Number(num_input_texto.value);
  let ie = document.getElementById("info");
  if (Number.isNaN(n)) {
    ie.innerHTML = "Info: No son números";
  } else if (n < 100) {
    ie.innerHTML = "Info: El resultado es menor que 100";
  } else if (n < 200) {
    ie.innerHTML = "Info: El resultado está entre 100 y 200";
  } else {
    ie.innerHTML = "Info: El resultado es superior a 200";
  }
};

Calculadora Core

Número:

Info sobre el número

Operaciones unitarias

x2 Mod n!

Operaciones binarias

+ / ^ % =

Operaciones en formato CSV

Σx ordenar revertir quitar

Download

PDF Word HTML