Codificación aprenderaprogramar.com: CU00174A
EJERCICIO
Modificar el siguiente pseudocódigo de un ejercicio, relativo a una librería y archivo con datos de ISBN, precio y descuento, introduciendo las siguientes mejoras:
a) El usuario ha de tener opción a salir del menú sin ejecutar otra parte del programa si así lo desea.
b) El usuario ha de poder consultar el precio de un libro tantas veces como desee.
Pseudocódigo:
1. Inicio 2. Mostrar “Elija una opción. 1 = Precio de un libro. 2 = Precio del lote” 3. Pedir E 4. i = 1 : Leer Dato(i) 5. Si E = 1 Entonces 5.1 Mostrar “¿Cuál es el ISBN?” : Pedir ISBN 5.2 Mientras Dato(i) <> -500 Hacer Si Dato(i) = ISBN Entonces Leer Dato(i + 1) : Leer Dato(i + 2) Precio = Dato(i +1) Si Dato(i + 2) = -66 Entonces Precio = 0,85 * Precio FinSi Si Dato(i + 2) = -99 Entonces Precio = 0,75 * Precio FinSi Mostrar “El precio del libro con ISBN”, ISBN, “es de”, Precio Encontrado = Verdadero FinSi i = i +3 : Leer Dato(i) Repetir 5.3 Si Encontrado = Falso Entonces Mostrar “No se ha encontrado el ISBN deseado” FinSi FinSi 6. Si E = 2 Entonces 6.1 Mientras Dato(i) <> -500 Hacer Leer Dato(i + 1) Leer Dato(i + 2) Precio = Dato(i + 1) Si Dato(i + 2) = -66 Entonces Precio = 0,85 * Precio FinSi Si Dato(i + 2) = -99 Entonces Precio = 0,75 * Precio FinSi Valorlote = Valorlote + Precio i = i + 3 : Leer Dato(i) Repetir 6.2 Mostrar “El precio del lote es”, Valorlote FinSi 7. Fin [Pseudocódigo aprenderaprogramar.com] |
SOLUCIÓN
Los cambios a realizar son pocos por lo que podemos conservar la estructura de programa que teníamos. En primer lugar, que pueda consultar el precio de cuantos libros quiera nos lleva a crear un bucle externo de repetición indefinida mientras el usuario así lo desee. A su vez, no introduciremos una pregunta específica sino que será el menú el que dé opción a salir del bucle e incluso a no entrar en él.
1. Inicio [Pseudocódigo aprenderaprogramar.com] 2. Mientras E <> 3 Hacer 3. Mostrar “Elija una opción. 1 = Precio de un libro. 2 = Precio del lote. 3 = Salir” 4. Pedir E 5. i = 1 : Valorlote = 0 : Encontrado = Falso 6. Leer Dato(i) 7. Si E = 1 Entonces 7.1 Mostrar “¿Cuál es el ISBN?” : Pedir ISBN 7.2 Mientras Dato(i) <> -500 Hacer Si Dato(i) = ISBN Entonces Leer Dato(i + 1) : Leer Dato(i + 2) Precio = Dato(i +1) Si Dato(i + 2) = -66 Entonces Precio = 0,85 * Precio FinSi Si Dato(i + 2) = -99 Entonces Precio = 0,75 * Precio FinSi Mostrar “El precio del libro con ISBN”, ISBN, “es de”, Precio Encontrado = Verdadero FinSi i = i +3 : Leer Dato(i) Repetir 7.3 Si Encontrado = Falso Entonces Mostrar “No se ha encontrado el ISBN deseado” FinSi FinSi 8. Si E = 2 Entonces 8.1 Mientras Dato(i) <> -500 Hacer Leer Dato(i + 1) Leer Dato(i + 2) Precio = Dato(i + 1) Si Dato(i + 2) = -66 Entonces Precio = 0,85 * Precio FinSi Si Dato(i + 2) = -99 Entonces Precio = 0,75 * Precio FinSi Valorlote = Valorlote + Precio i = i + 3 : Leer Dato(i) Repetir 8.2 Mostrar “El precio del lote es”, Valorlote FinSi Repetir 9. Fin |
Los cambios introducidos se reducen a:
• Nuevo bucle externo controlado por el usuario.
• Nueva opción del menú (Salir).
• En la línea 5 se han asignado valores para inicio del bucle a aquellas variables susceptibles de causar problemas si no se hace así.
Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.