Cita de: @XSStringManolo en 11 Mayo 2020, 17:26 PMEl primero de los códigos me genera 5 errores, en la línea 1, 4, 8, 13 y 17.
Debes crear una función para factorizar. Le añado un tercer parámetro opcional para ver las operaciones de distintas formas.
La comprobación de si lo introducido por el usuario es válido también lo metería aquí.Código (javascript) [Seleccionar]function Factorizar(num1, num2, info) {
if(num1 < 0 || isNaN(+num1) || /\s/gm.test(num1) || num1 === null || num1 === "") {
throw new error("El número no puede ser factorizado");
}
var numero1 = num1, numero2 = num2;
while(n1) {
num2 = num1 * num2;
--num1;
switch(info) {
case 1:
console.log(numero1 + " - " + numero2 + " es igual a " + num2);
break;
case 2:
alert(numero1 + " - " + numero2 + " es igual a " + num2);
break;
}
}
}
Este archivo lo guardas tal cual, sin las etiquetas <script> como Factorizar.js
Ahora, donde hacías la factorización lo remplazas por la llamada a la nueva función. Lo guardas como codigo.js o main.js, index.js, programaFactorizar.js... Algo que se pueda deducir que es el script.Código (javascript) [Seleccionar]/* Declara 2 variables y las define en una sola expresión */
var n1 = prompt("Introduce un número"),
n2 = 1;
/* Declara otra variable. Aquí para indicar hoisting */
var div;
/* Muestra en consola que puso el usuario. */
console.log("El usuario ha introducido:" + n1);
/*
Mientras el numero sea negativo, sea NaN, contenga espacios, sea null o un string sin valor ... */
while(n1 < 0 || isNaN(+n1) || /\s/gm.test(n1) || n1 === null || n1 === "") {
console.log("El número " + n1 + " introducido no es factorizable.");
n1 = prompt("El número introducido no es factorizable.\nInténtalo de nuevo");
}
/* Coherce a número. */
n1 = +n1;
Factorizar(n1, n2, 1);
div = document.createElement("div");
div.id = "respuesta";
div.innerHTML = "El factorial es: " + n2;
document.body.appendChild(div);
Por último añades los scripts a tu html, a mi me gusta meter las librerías y funciones puras al final de la etiqueta head y el código al final del body.Código (html4strict) [Seleccionar]<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Factorial</title>
<script src="Factorizar.js"></script>
</head>
<body>
<script src="codigo.js"></script>
</body>
</html>