• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

317
Vistas
Programa de JavaScript que solicitará cualquier cantidad y generará la cantidad de caramelos de hielo que se pueden comprar y el cambio, si corresponde.

Necesito ayuda con esto, ni siquiera creo que sea correcto, ya que me cuesta entender los bucles. Me pidieron que creara un programa Javascript que solicita cualquier cantidad y muestra la cantidad de dulces de hielo que se pueden comprar y el cambio, si corresponde. Mi problema es que no se si "mientras" es lo correcto poner o "hacer" o si me falta algo Gracias de antemano. Aquí está mi código

 function minitask() { var m = document.getElementById("money").value; var c = 8.5; m = m - c; c = c + 1; while (m <= c) alert("You can buy " + c + " Icecandy and your change is " + m); }
 <input type="text" id="money" name= "Enter any amount"> <button onclick="minitask()">Calculate</button>

about 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Hay algunos problemas en su código tanto desde el punto de vista algorítmico como desde el punto de vista del diseño de software.

algorítmico

No hay necesidad de usar un bucle aquí, puedes hacer una división simple que te dará la cantidad de dulces que puedes comprar:

 available money / price for one candy = number of candies to buy

Necesita floor() el resultado ya que no puede comprar, por ejemplo, 1.2 caramelos.

El cambio se puede calcular entonces por

 change = available money - number of candies to buy * price of one candy

Diseño de software

  • Debe tratar las variables como inmutables cuando no hay necesidad de mutar las variables, así que use const en lugar de var para declarar variables.
  • los nombres de las variables deben describir los valores que contienen para que el código sea más legible. Sus nombres de variables no dicen nada, lo que hace que el código sea innecesariamente difícil de leer y, si se tratara de un problema más complejo, podría hacer que su código fuera ilegible.
  • Debe usar literales de plantilla en lugar de concatenar cadenas, lo que también hará que su código sea más legible.
  • si espera que se ingrese un número, puede usar type=number para <input> . También hay más opciones, como establecer un min y max , lo que tendría sentido en su caso, ya que, por ejemplo, no hay dinero negativo . Ver documentos de MDN .
  • si desea mostrar algo dentro de la <input> , use el atributo de placeholder de posición, no el name .
  • Puede usar valueAsNumber en un elemento <input> que recuperará un número de inmediato en lugar de una string . Junto con el number de tipo de entrada, esto asegurará que siempre obtenga un número devuelto.

solución de trabajo

 function minitask() { const moneyAvailable = document.getElementById("money").valueAsNumber; if(moneyAvailable < 0) { alert(`You cannot buy anything with negative money!`) return; } const priceForIceCandy = 8.5; const noIceCandies = Math.floor(moneyAvailable / priceForIceCandy); const change = moneyAvailable - noIceCandies * priceForIceCandy; alert(`You can buy ${noIceCandies} Icecandy and your change is ${change}`); }
 <input type="number" id="money" min="0" placeholder="Enter any amount"> <button onclick="minitask()">Calculate</button>

about 3 years ago · Juan Pablo Isaza Denunciar

0

  • Primero, debe verificar si el dinero es suficiente para comprar algo.

  • If es así debes dividir la cantidad de dinero por el costo de un caramelo, es cierto que el clásico divisor / no da el cambio pero hay un operador que si lo hace, que se llama modulo

    luego devolver toda esa información al usuario

  • De lo Else , si el usuario no tiene suficiente dinero, ¡dígale que necesita más!

about 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda