Título: Ejercicio, una renta de automóviles desea un programa para emitir las facturas Publicado por: luischidalee en 31 Octubre 2017, 06:50 am Hola ncesito apoyo para corregirlo lo que debe hacer el programa es esto
Una compañía de renta de automóviles desea un programa para emitir las facturas de sus clientes. La forma de cobro es la siguiente: a. Se cobra la cantidad fija de $1,000 si no se rebasan los 300 Km. b. Para distancias mayores a 300 km: • Si distancia > 300 km y <= 1,000 km: $1,000 + ($5 por cada km arriba de los 300). • Si la distancia es mayor que 1,000 km: $1,000 + ($5 por cada km arriba de los 300 hasta los 1,000) + ($3 por cada km arriba de los 1,000). Ejemplos: Kilometraje Cantidad a cobrar 30 $1,000 300 $1,000 310 $1,000 + (10 km * $5) = $1,050 1,000 $1,000 + (700 km * $5) = $4,500 1,010 $1,000 + (700 km * $5) + (10 km * $3) = $4,530 mi codigo Código
· Los códigos deben ir en etiquetas GeSHi >aquí las reglas del foro (http://foro.elhacker.net/reglas.htm) -Engel Lex Título: Re: Ejercicio, una renta de automóviles desea un programa para emitir las facturas Publicado por: engel lex en 31 Octubre 2017, 12:33 pm el programa tiene un error logico
primero se recomienda uso de if, else-if, else segundo operadores logicos mal usados Código
"si kilomentros mayor que 300 o kilometros menor que 1000", se puede ver como "se hará si 1 mayor que 300 o 1 menor que mil" como uno es menor que mil, se cumple la condición, las acotaciones deben cumplir ambas condiciones (and) tercero error matemático Código
esto carece de sentido... esto te retorna es simplemente el ultimo digito de los km adicionales... es decir si son 15km adicionales tendrá el mismo resultado que si son 565 kilometros adicionales... esta operación no tiene sentido aquí (ni en ningún punto de este ejercicio) cuarto error de formulación justamente el else-if te ayuda a acotar los rangos, Código
no debe estar ahí porque no es una condición solicitada, se obtiene calculada quinto error sintactico Código
estás retornando un tipo double, pero tu parámetro de entrada es un entero y tus operaciones internas son solo entre enteros, por consecuencia toda operación interna tendrá como resultado enteros (incluso divisiones) por un asunto de promoción de operandos, a demás tienes enteros y solo se multiplican por enteros, el resultado nunca será decimal... el resultado carece de sentido como double el algoritmo debe ser algo como sopniendo el ejericio "se venden caramelos en 1$, si son más de 5 caramelos en 0.95 cada uno y si son más de 10, en 0.9 cada uno" Código
tu caso es el mismo solo que con operaciones adicionales |