javascript

Iniciado por thebus4k, 10 Mayo 2020, 19:19 PM

0 Miembros y 1 Visitante están viendo este tema.

@XSStringManolo

Puedes poner el ejercicio tal cual te lo dieron? Lo que pides y como lo pides no tiene sentido que lo pidan. Tiene pinta que lo estás interpretando mal.

thebus4k

Cita de: @XSStringManolo en 11 Mayo 2020, 22:33 PM
Puedes poner el ejercicio tal cual te lo dieron? Lo que pides y como lo pides no tiene sentido que lo pidan. Tiene pinta que lo estás interpretando mal.
Te pongo el enunciado completo:

Para esta práctica debéis desarrollar una página web con un comportamiento sencillo
La página no tiene por que tener un diseño especial, su único propósito es que practiquéis con javascript.


Se debe pedir al usuario un número entero positivo por pantalla. (en caso de que el número no cumpla los requisitos se debe seguir pidiendo al usuario otro número hasta que los cumpla).
Posteriormente se calculará el factorial de dicho número y se mostrará en el cuerpo del html el resultado (visible en la página web por el usuario).
Además, en la consola debéis incluir la operación que habéis calculado. Por ejemplo, si el usuario introduce el número 5, la consola debe mostrar lo siguiente: 
>Calculando factorial de 5
>Operación: 5x4x3x2x1
>Resultado: 120

La página web debe estar compuesta de:

un archivo HTML
un archivo CSS para estructurar ligeramente la página
un archivo js llamado utils.js cuyo contenido será únicamente la función factorial que será la encargada de, dado un número de entrada únicamente calcular y devolver el resultado de su factorial.
un archivo JS llamado main.js donde incluiréis el resto del código javascript que necesiteis.

@XSStringManolo

Cita de: thebus4k en 11 Mayo 2020, 23:07 PM
Te pongo el enunciado completo:

Para esta práctica debéis desarrollar una página web con un comportamiento sencillo
La página no tiene por que tener un diseño especial, su único propósito es que practiquéis con javascript.


Se debe pedir al usuario un número entero positivo por pantalla. (en caso de que el número no cumpla los requisitos se debe seguir pidiendo al usuario otro número hasta que los cumpla).
Posteriormente se calculará el factorial de dicho número y se mostrará en el cuerpo del html el resultado (visible en la página web por el usuario).
Además, en la consola debéis incluir la operación que habéis calculado. Por ejemplo, si el usuario introduce el número 5, la consola debe mostrar lo siguiente:
>Calculando factorial de 5
>Operación: 5x4x3x2x1
>Resultado: 120

La página web debe estar compuesta de:

un archivo HTML
un archivo CSS para estructurar ligeramente la página
un archivo js llamado utils.js cuyo contenido será únicamente la función factorial que será la encargada de, dado un número de entrada únicamente calcular y devolver el resultado de su factorial.
un archivo JS llamado main.js donde incluiréis el resto del código javascript que necesiteis.
Lo que dice exáctamente en este ejercicio es lo que te hice. Te falta ajustar los console.log al enunciado, añádelos en el switch donde está el console.log dentro del cuerpo de la función factorial.


También te falta añadir el css.


Practica mucho programando javascript y sigue los tutos de w3schools de javascript.

thebus4k

Cita de: @XSStringManolo en 11 Mayo 2020, 23:42 PM
Lo que dice exáctamente en este ejercicio es lo que te hice. Te falta ajustar los console.log al enunciado, añádelos en el switch donde está el console.log dentro del cuerpo de la función factorial.


También te falta añadir el css.


Practica mucho programando javascript y sigue los tutos de w3schools de javascript.

Ya lo he probado y solo me genera la ventana para introducir el número pero no saca el factorial.

@XSStringManolo

Algo hiciste mal.

Va perfecto, aquí lo tienes todo junto.

Código (javascript) [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Factorial</title>
<script>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(num1) {
    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;
    }
  }
return num2
}</script>
</head>
<body>
<script>
/* 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;

n2 = Factorizar(n1, n2, 1);

div = document.createElement("div");
div.id = "respuesta";
div.innerHTML = "El factorial es: " + n2;

document.body.appendChild(div);
</script>
</body>
</html>


Ya te expliqué anteriormente como separar los script. Míralo bien.