Resumen: Entrega nº 73 del curso Bases de la programación Nivel I.
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.

 

Descargar archivo: