Resumen: Entrega nº21 del curso Bases de la programación Nivel II.
Codificación aprenderaprogramar.com: CU00222A

 

 

EJERCICIO PROGRAMA DE LIBRERÍA. PARTE 1.

Realizar un algoritmo que resuelva el programa abajo descrito y que introduzca:

- Programación por módulos.

     - Declaración de variables, utilizando la asignación por paquetes o grupos para los arrays indefinidos.

- Salida del programa controlada por el usuario.

Anagrama aprenderaprogramar.com

 

Una librería dispone de un archivo donde se guarda información relativa a un lote de libros estructurada de la siguiente manera:

 

Dato(1) = [Número de ISBN, 10 dígitos]

Dato(2) = [Precio de venta al público, en euros]

Dato(3) = [Señalero,   -33 Libro de menos de un año de antigüedad

                                -66 Libro de uno a tres años de antigüedad

                                -99 Libro de más de tres años de antigüedad]

Dato(4) = [Número de ISBN]

.

.

.

Dato(n – 1) = [Señalero -33, -66, -99]    

Dato(n) = [Señalero -500, Fin del lote]

 
 

Se desea desarrollar un programa que permita:

a)   Consultar el precio de un libro dado su ISBN.

b)   Conocer el precio del lote de libros en conjunto.

 

Teniendo en cuenta lo siguiente: si el libro tiene menos de un año de antigüedad su precio coincide con el registrado. Si tiene entre uno y tres años deberá aplicarse un descuento del 15%. Si tiene más de tres años deberá aplicarse una rebaja del 25%.

 

 

SOLUCIÓN

Pseudocódigo:

 

PROGRAMA LIBRERIA01 [Ejemplo pseudocódigo – aprenderaprogramar.com]

 

Variables

Enteras: E

 

1.  Inicio

2.  Mientras E<> 3 Hacer

     2.1  Mostrar “Elija una opción.  1 = Precio de un libro

                                                                2 = Precio del lote.

                                                                3 = Salir”

      2.2  Pedir E

      2.3  Si E = 1 Entonces

Hallaplibro

   FinSi

      2.4  Si E = 2 Entonces

Hallaplote

   FinSi

Repetir

3.  Fin

 

Módulo Hallaplibro

Variables

Enteras: i, ISBN

Reales: Dato(), Precio

          Booleanas: Encontrado

1.  i = 1

2.  Redimensionar Dato(31)

3.  Leer Dato(1)

4.  Mostrar “¿Cuál es el ISBN?” : Pedir ISBN

5.  Mientras Dato(i) <> -500 Hacer

5.1  Si i >= Limitesuperior(Dato) Entonces

Redimensionar Dato(Limitesuperior(Dato) + 30)

       FinSi

5.2  Si Dato(i) = ISBN Entonces

5.2.1  Leer Dato(i + 1) : Leer Dato(i + 2)

5.2.2  Precio = Dato(i + 1)

5.2.3  Si Dato(i + 2) = -66 Entonces

Precio = 0,85 * Precio

FinSi

5.2.4  Si Dato(i + 2) = -99 Entonces

Precio = 0,75 * Precio

FinSi

5.2.5  Mostrar “El precio del libro con ISBN”, ISBN, “es de”, Precio

5.2.6  Encontrado = Verdadero

FinSi

5.3  i = i + 3 : Leer Dato(i)

Repetir

6.  Si Encontrado = Falso Entonces

Mostrar “No se ha encontrado el ISBN deseado”

FinSi

FinMódulo

 

Módulo Hallaplote

 

Variables

Enteras: i

Reales: Dato(), Precio, Valorlote

1.  i = 1

2.  Redimensionar Dato(31)

3.  Leer Dato(1)

4.  Mientras Dato(i) <> -500 Hacer

4.1  Si i >= Limitesuperior(Dato) Entonces

Redimensionar Dato(Limitesuperior(Dato) + 30)

       FinSi

4.2  Leer Dato(i + 1) : Leer Dato(i + 2)

4.3  Precio = Dato(i + 1)

4.4  Si Dato(i + 2) = -66 Entonces

Precio = 0,85 * Precio

       FinSi

4.5  Si Dato(i + 2) = -99 Entonces

Precio = 0,75 * Precio

       FinSi

4.6  Valorlote = Valorlote + Precio

4.7  i = i + 3 : Leer Dato(i)

Repetir

5.  Mostrar “El precio del lote es”, Valorlote

FinMódulo

 

 

 

 

 

 

 

 

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: