FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con bucles do/while
Hola colegas, buenos dias soy bastante nuevo en el tema y no logro encontrar el error en esto.
intente de todo, y no logro darme cuenta del error el enunciado dice así. Ingreso la cantidad de km a recorrer y la velocidad crucero. si la velocidad crucero del auto es menor a 110 km/h a los 50 litros de combustible con los que empieza el auto se le restaran 0,33litros cada 5 km. si es mayor a 110 se le restara 0,5 litros cada 5 km si me quedo sin combustible tengo q mostrar la cantidad de km que recorri aca va mí código Variabes:
|
#2
|
||||
|
||||
Esa línea no hace nada, ¿no?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
esa linea resta 0,33 litros a los litros iniciales que son 50 litros.
|
#4
|
||||
|
||||
Hola.
Esboza la idea en papel y lápiz tratando de seguir paso a paso lo que te solicitan, Código:
PROCEDIMIENTO consumo VARIABLES litros, kilometros, velocidad, consumo : FLOTANTE COMENZAR litros <- 50 leer (kilometros, velocidad) si velocidad < 110 entonces consumo <- kilometros / 5 * 0.33 si no consumo <- kilometros / 5 * 0.50 escribir ("Combustible consumido:", consumo) escribir ("Combustible restante :", litros - consumo) FIN Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
El usuario deberá indicar cuántos km recorrerá.
cada 5 km (a una velocidad constante,llamémosla crucero, menor a 110km/h) que el simulador reduzca 0,33l (l=litro) de combustible. Si es mayor (pero constante) que 110km/h, el gasto de combustible debería ser 0,5l por cada 5km. El nivel de combustible deberá ser full (lleno), con 50l al iniciar el viaje. necesario que se controle si el tanque alcanza para realizar el viaje propuesto (y mediante una ventana emergente: indicar tal situación). el ejercicio debe resolverse con for, while, o repeat a eleccion f= fuel fuel =contador
entra en un bucle infinito. me doy por vencido (por hoy) agradezco su ayuda Última edición por nico.white fecha: 10-05-2018 a las 08:31:52. Razón: falto aclarar conceptos |
#6
|
||||
|
||||
Usar el operador de igualdad con flotantes no es muy buena idea. Ten en cuenta que los ordenadores son pésimos haciendo cálculos con fracciones cuyo denominador no es potencia de dos; un ordenador es incapaz de representar con exactitud el valor 0'1, por ejemplo, y menos aún 49'77. Deberías cambiar el "UNTIL f=0" por "UNTIL f <= 0", que es la única manera de asegurarte.
Por otro lado, cuida la indentación; es muy difícil seguir el código tal como tú lo escribes. Te lo reformateo para que veas la diferencia:
Última edición por Ñuño Martínez fecha: 10-05-2018 a las 12:36:36. |
#7
|
||||
|
||||
Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
||||
|
||||
Cita:
Supongo que a lo que se refería el compañero Casimiro es que debería ser
para que vaya acumulandose la resta en la misma variable.
__________________
Confórmate con lo que tienes pero anhela lo que te falta. |
#9
|
|||
|
|||
Entiendo que el ejercicio es para que practiques los bucles, para resolver el problema indicado realmente no haría falta ninguno. Fijate en que en el enunciado se te fuerza a utilizar una entre 3 posibilidades (for,while,repeat). Solo necesitas utilizar uno, aunque para familiarizarte con ellos creo que estaría bien que resolvieses el problema de las tres formas posibles, una con cada bucle.
Creo que el problema que tienes es que aún no los entiendes bien. Temo que cualquier pista que podamos darte te desvie del proposito del problema que es que te esfuerces en encontrar una solución y aprendas en el proceso. Se ve que te esfuerzas en aprender por como has planteado la pregunta y porque has puesto lo que llevas averiguado. Intentalo un poco más, te recomiendo de veras que utilices un solo bucle en el proceso, el que tu quieras, pero solo 1. Una cosilla mas, si ves que hay partes del código que son iguales y repites 2 veces, intenta cambiar el código para escribirlas una sola vez. De veras que lo mas dificil y divertido de esto de programar es pelearse con un problema hasta encontrarle la solución. Por aquí hay unos cuantos hilos que lo demuestran. |
#10
|
||||
|
||||
Hola.
De la última consulta entiendo que el combustible incial es constante (50) y debes ingresar los kilometros que pretendes lograr así como la velocidad a que conduciras. El algorítmo debe ir mostrando el kilometraje realizado y el combustible restante (o el consumido para el caso es lo mismo) y de terminarse el combustible antes de realizar el kilometraje pretendido debe avisarlo con un mensaje. ¿ Es correcto ? Claro está que conociendo el consumo a la velocidad ingresada sabemos a priori si podrá realizar el kilometraje pretendido, de todos modos a modo de guía un ejemplo en pseudocódigo: Código:
PROCEDIMIENTO consumo VARIABLES litros, velocidad, consumo: FLOTANTE kilometros, aux: ENTERO COMENZAR litros <- 50 aux <- 0; leer (kilometros, velocidad) si velocidad < 110 entonces consumo = 0.33 si no consumo = 0.5 mientras ( aux <= kilometros ) ^ ( litros >= 0 ) hacer comenzar si litros < consumo entonces escribir("¡ Tanque vacío ! recorrio:", aux, "km") si no escribir("km:", aux, "lt:", litros) { km y litros restantes } aux = aux + 5; litros = litros - consumo; fin FIN
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 10-05-2018 a las 18:11:28. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda con Bucles | Olenkaguilar | OOP | 1 | 05-04-2014 02:29:26 |
bucles en sql | chass | SQL | 2 | 15-10-2008 20:14:39 |
Sobre los bucles While y Do While | Mya | Varios | 8 | 25-08-2008 20:17:01 |
bucles en SQL | servicomp | SQL | 3 | 11-06-2006 04:07:21 |
bucles anidados con PHP | __cadetill | PHP | 8 | 21-07-2003 03:12:28 |
|