• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

315
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error