LPP, Ejercicio final – Manejo de Inventario

Descubre la solución completa para el desafiante ejercicio de programación en LPP. Desde la manipulación de archivos hasta operadores y funciones, exploramos cada componente del código, proporcionándote una guía paso a paso.

Ejercicio Final – Aplicando Todos los Conocimientos

¡Bienvenidos al emocionante cierre de nuestro curso de Programación en LPP! En este último video tutorial, nos sumergiremos en un desafío integral que abarca todos los conocimientos que hemos adquirido hasta ahora. Este ejercicio no solo pone a prueba tus habilidades de programación en LPP, sino que también demuestra cómo cada concepto, desde operadores hasta manejo de archivos, se entrelaza para construir soluciones más complejas.

Antes de sumergirnos en la solución propuesta, te animamos a que intentes resolver el ejercicio por ti mismo. Este desafío te brinda la oportunidad de aplicar de manera práctica todo lo aprendido a lo largo del curso. ¡Atrévete a enfrentar el reto y luego compara tu enfoque con la solución que presentamos a continuación!

Material Audiovisual

Te animamos a explorar nuestro video tutorial. En este material, profundizamos en cada concepto y ejercicio que abordamos en este artículo, ofreciendo una comprensión más detallada. Este video se presenta como un complemento valioso para consolidar tu aprendizaje. ¡No dudes en sumergirte en el contenido visual y fortalecer tus habilidades!

Ver este vídeo en YouTube.
Amigo! Recuerda ver estos vídeos en PANTALLA COMPLETA y preferiblemente en formato HD para ver correctamente los detalles, Gracias.

Código Fuente

En el siguiente link podrás descargar el código de los ejemplos vistos en el vídeo.

Ejercicio Propuesto

Este último desafío te sumergirá en la programación en LPP con un ejercicio práctico y completo. Tu objetivo principal es desarrollar un programa que gestione un inventario en una tienda de vehículos, solo se debe manejar el inventario de una marca y línea de vehículo no todo el inventario de vehículos del concecionario. Aquí te presentamos los puntos clave que debes abordar:

1. Archivo «inventario.txt»: Tu programa debe ser capaz de crear y manipular un archivo de texto llamado «inventario.txt», que almacenará información esencial sobre el tipo de vehículo, como marca, línea, color, cantidad y precio unitario.
2. Leer y Escribir en Archivos: Implementa funciones que permitan la lectura y escritura de información desde y hacia el archivo «inventario.txt». Esta funcionalidad es esencial para mantener actualizado el inventario con cada operación.
3. Operaciones de Inventario: Desarrolla funciones que permitan realizar operaciones clave en el inventario. Debes incorporar la capacidad de ingresar nuevos productos (sumar en cantidad disponible), vender vehículos (restar en cantidad disponible) y cambiar el valor unitario. Cada una de estas acciones debe reflejarse automáticamente en el archivo «inventario.txt».
4. Menú de Opciones: Diseña un menú que brinde al usuario la posibilidad de seleccionar diferentes operaciones. Tu programa debe ofrecer una experiencia completa de toma de decisiones dentro de la aplicación.

Ahora, echemos un vistazo a un ejemplo de cómo se vería el archivo «inventario.txt»:

Ford
Fiesta
Gris
35
16700

En este ejemplo, cada línea representa la información del vehículo y su inventario, con la marca «Ford», línea «Fiesta», color «Gris», cantidad «35» y precio unitario «16700».

Tu tarea es abordar estos puntos y desarrollar un programa que no solo ponga a prueba tus conocimientos, sino que también consolide todas las habilidades adquiridas a lo largo del curso. ¡Afrontemos este desafío juntos!

Solucionando el Ejercicio Paso a Paso

Ahora, procederemos a desglosar cada segmento del código y explicar su función en el desarrollo de este programa integral en LPP.

Nota: Antes de explorar nuestra solución detallada, te animamos a intentar resolver el ejercicio por tu cuenta. Desafía tus habilidades y luego compara tu enfoque con la solución propuesta aquí. ¡Buena suerte!

1. Tipos y Registros

Primero, definimos los tipos y registros necesarios para gestionar la información del vehículo y el archivo.

/* tipos archivos */
tipo tArchivo es archivo secuencial

/* registros */
registro rVehiculo
  cadena[100] marca
  cadena[100] linea
  cadena[50]  color
  entero      cantidad
  real        valorUnidad
fin registro
tArchivo: Tipo que define un archivo secuencial para manipular la información del inventario.
rVehiculo: Registro que almacena los atributos de un vehículo.

2. Variables y Procedimientos

Luego, declaramos las variables globales.

/* variables globales */
tArchivo   vArchivo
rVehiculo  vAuto
booleano   continuar
entero     menu
vArchivo: Variable que representa el archivo de inventario.
vAuto: Variable que almacena la información de un vehículo.
continuar: Variable booleana para controlar la ejecución del programa.
menu: Variable para almacenar la opción seleccionada por el usuario.

3. Procedimientos Esenciales

Definimos procedimientos clave para realizar operaciones como ingresar, vender, cambiar valor y mostrar el inventario. Estos procedimientos cumplen funciones específicas, como crear títulos, cargar información inicial, ingresar productos, actualizar el archivo, vender vehículos, cambiar valores y mostrar el inventario.

/* procedimientos */

/* Crear un título */
procedimiento CrearTitulo(cadena[100] vTitulo)
inicio

  llamar nueva_linea
  escriba "********** " + vTitulo + " **********"
  llamar nueva_linea
  llamar nueva_linea
  
fin


/* Permite realizar el cargue inicial de inventario, extraer información del archivo */
procedimiento CargueInicialInventario
inicio

  /* abrir archivo de inventario */
  abrir "inventario.txt" como vArchivo para lectura
  
  /* leer cada línea del archivo y guarder la información en los atributos del registro */
  leer vArchivo, vAuto.marca
  leer vArchivo, vAuto.linea
  leer vArchivo, vAuto.color
  leer vArchivo, vAuto.cantidad
  leer vArchivo, vAuto.valorUnidad
  
  /* cerrar el archivo */
  cerrar vArchivo
  
  llamar nueva_linea
  escriba "Extracción de información realizada correctamente!"
  llamar nueva_linea

fin

/* permite modificar la cantidad, sumar */
procedimiento IngresarInventario
entero nuevos
inicio

  llamar nueva_linea
  
  llamar CrearTitulo("Ingreso de Inventario")
  
  escriba "Cuantos vehículos nuevos desea ingresar: "
  lea nuevos
  
  /* realizar la suma */
  vAuto.cantidad <- vAuto.cantidad + nuevos 

  escriba "Ingreso realizado correctamente!"
  
  llamar nueva_linea 

fin


/* abre el archivo y actualiza todos los datos */
procedimiento ActualizarArchivo
inicio

  /* abrir archivo de inventario */
  abrir "inventario.txt" como vArchivo para escritura
  
  /* escribir cada uno de los atributos del registro en líneas en el archivo */
  escribir vArchivo, vAuto.marca
  escribir vArchivo, vAuto.linea
  escribir vArchivo, vAuto.color
  escribir vArchivo, vAuto.cantidad
  escribir vArchivo, vAuto.valorUnidad
  
  /* cerrar el archivo */
  cerrar vArchivo
  
  llamar nueva_linea
  escriba "Se realizo correctamente la escritura en el archivo!"
  llamar nueva_linea

fin

/* permite modificar la cantidad, restar */
procedimiento VenderVehiculo
entero vendidos
inicio
  
  llamar nueva_linea
  
  llamar CrearTitulo("Venta de Vehículos")
  
  escriba "Cuentos Vehículos Fueron Vendidos?: "
  lea vendidos
  
  /* resta a la cantidad actual */
  vAuto.cantidad <- vAuto.cantidad - vendidos
  
  escriba "Venta realizada correctamete!"
  
  llamar nueva_linea
  
fin

/* Permite modificar el valor unitario */
procedimiento CambiarValorVehiculo
real nuevoValor
inicio

  llamar nueva_linea
  
  llamar CrearTitulo("Cambio de Valor Unitario")
  
  escriba "Ingrese el nuevo valor del vehículo: "
  lea nuevoValor
  
  /* asignación del nuevo valor */
  vAuto.valorUnidad <- nuevoValor
  
  escriba "Se realizo el cambio correctamente!"

  llamar nueva_linea
  
fin

/* Muestra en pantalla la información actual en el inventario */
procedimiento MostrarInventario
real valorTotal
inicio

  llamar nueva_linea
  
  llamar CrearTitulo("Información de Inventario Actual")
  
  escriba "Marca: " + vAuto.marca
  llamar nueva_linea
  
  escriba "Linea: " + vAuto.linea
  llamar nueva_linea
  
  escriba "Color: " + vAuto.color
  llamar nueva_linea
  
  escriba "Cantidad: " 
  escriba vAuto.cantidad
  llamar nueva_linea
  
  escriba "Valor Unitario: $ "
  escriba vAuto.valorUnidad
  llamar nueva_linea
  
  /* total inventario */
  valorTotal <- (vAuto.cantidad * vAuto.valorUnidad)
  
  escriba "Valor Total Inventario: $ "
  escriba valorTotal
  
  llamar nueva_linea  
fin

4. Función para Cargar Menú

Implementamos una función que presenta un menú de opciones y devuelve la elección del usuario. Esta función muestra al usuario un menú interactivo con diferentes opciones y devuelve la elección realizada.

funcion CargarMenu : entero
entero opcion
inicio

  llamar nueva_linea
  
  llamar CrearTitulo("Menu de Opciones")
  
  escriba "1. Ingresar Producto."
  llamar nueva_linea
  escriba "2. Vender Producto."
  llamar nueva_linea
  escriba "3. Cambiar Valor Unitario."
  llamar nueva_linea
  escriba "4. Mostrar Informacion del Inventario Actual."
  llamar nueva_linea
  escriba "5. Salir."
  llamar nueva_linea
  
  escriba "Que Opción desea realizar?: "
  lea opcion
  
  retorne opcion
  
fin

5. Programa Principal

Finalmente, en el programa principal, utilizamos un bucle para ofrecer al usuario la posibilidad de realizar diversas operaciones hasta que decida salir.

inicio

/* inicializar variables */
continuar <- verdadero

/* extracción de la información del txt */
llamar CargueInicialInventario()


/* menu y movimientos */
Repita
  
  /* mostrar menu */
  menu <- CargarMenu()
  
  
  /* toma de decisiones */
  Caso menu
    1:
      /* ingresar producto */
      llamar IngresarInventario()
      llamar ActualizarArchivo()
    2:
      /* Vender producto */
      llamar VenderVehiculo()
      llamar ActualizarArchivo()
    3:
      /* cambiar valor unitario */
      llamar CambiarValorVehiculo()
      llamar ActualizarArchivo()
    4:
      /* mostrar inventario actual en pantalla */    
      llamar MostrarInventario()
    5:
      /* salir */
      continuar <- falso
    sino:
      /* error de opción */
      escriba "Por favor ingrese una opción entre 1 y 5!"
  Fin Caso
  
Hasta (continuar = falso)

escriba "Gracias por utilizar nuestro programa!"

fin

Este bloque principal del programa gestiona las interacciones del usuario, llama a los procedimientos correspondientes y mantiene actualizado el inventario en el archivo.

Resultado Final

Habiendo analizado minuciosamente cada componente del programa es hora de ensamblarlo por completo. A continuación, te presentamos la estructura completa del programa, integrando cada una de las partes previamente explicadas.

/* tipos archivos */
tipo tArchivo es archivo secuencial

/* registros */
registro rVehiculo
  cadena[100] marca
  cadena[100] linea
  cadena[50]  color
  entero      cantidad
  real        valorUnidad
fin registro

/*
	variables globales
*/
tArchivo   vArchivo
rVehiculo  vAuto
booleano   continuar
entero     menu


/*
	procedimientos
*/
procedimiento CrearTitulo(cadena[100] vTitulo)
inicio

  llamar nueva_linea
  escriba "********** " + vTitulo + " **********"
  llamar nueva_linea
  llamar nueva_linea
  
fin

procedimiento CargueInicialInventario
inicio

  /* abrir archivo de inventario */
  abrir "inventario.txt" como vArchivo para lectura
  
  /* leer cada línea del archivo y guardar la información en los atributos del registro */
  leer vArchivo, vAuto.marca
  leer vArchivo, vAuto.linea
  leer vArchivo, vAuto.color
  leer vArchivo, vAuto.cantidad
  leer vArchivo, vAuto.valorUnidad
  
  /* cerrar el archivo */
  cerrar vArchivo
  
  llamar nueva_linea
  escriba "Extracción de información realizada correctamente!"
  llamar nueva_linea

fin

procedimiento IngresarInventario
entero nuevos
inicio

  llamar nueva_linea
  
  llamar CrearTitulo("Ingreso de Inventario")
  
  escriba "Cuantos vehículos nuevos desea ingresar: "
  lea nuevos
  
  /* realizar la suma */
  vAuto.cantidad <- vAuto.cantidad + nuevos 

  escriba "Ingreso realizado correctamente!"
  
  llamar nueva_linea 

fin

procedimiento ActualizarArchivo
inicio

  /* abrir archivo de inventario */
  abrir "inventario.txt" como vArchivo para escritura
  
  /* escribir cada uno de los atributos del registro en líneas en el archivo */
  escribir vArchivo, vAuto.marca
  escribir vArchivo, vAuto.linea
  escribir vArchivo, vAuto.color
  escribir vArchivo, vAuto.cantidad
  escribir vArchivo, vAuto.valorUnidad
  
  /* cerrar el archivo */
  cerrar vArchivo
  
  llamar nueva_linea
  escriba "Se realizo correctamente la escritura en el archivo!"
  llamar nueva_linea

fin

procedimiento VenderVehiculo
entero vendidos
inicio
  
  llamar nueva_linea
  
  llamar CrearTitulo("Venta de Vehículos")
  
  escriba "Cuentos Vehículos Fueron Vendidos?: "
  lea vendidos
  
  /* resta a la cantidad actual */
  vAuto.cantidad <- vAuto.cantidad - vendidos
  
  escriba "Venta realizada correctamente!"
  
  llamar nueva_linea
  
fin

procedimiento CambiarValorVehiculo
real nuevoValor
inicio

  llamar nueva_linea
  
  llamar CrearTitulo("Cambio de Valor Unitario")
  
  escriba "Ingrese el nuevo valor del vehículo: "
  lea nuevoValor
  
  /* asignación del nuevo valor */
  vAuto.valorUnidad <- nuevoValor
  
  escriba "Se realizo el cambio correctamente!"

  llamar nueva_linea
  
fin

procedimiento MostrarInventario
real valorTotal
inicio

  llamar nueva_linea
  
  llamar CrearTitulo("Información de Inventario Actual")
  
  escriba "Marca: " + vAuto.marca
  llamar nueva_linea
  
  escriba "Linea: " + vAuto.linea
  llamar nueva_linea
  
  escriba "Color: " + vAuto.color
  llamar nueva_linea
  
  escriba "Cantidad: " 
  escriba vAuto.cantidad
  llamar nueva_linea
  
  escriba "Valor Unitario: $ "
  escriba vAuto.valorUnidad
  llamar nueva_linea
  
  /* total inventario */
  valorTotal <- (vAuto.cantidad * vAuto.valorUnidad)
  
  escriba "Valor Total Inventario: $ "
  escriba valorTotal
  
  llamar nueva_linea
  
fin



/*
	funciones
*/
funcion CargarMenu : entero
entero opcion
inicio

  llamar nueva_linea
  
  llamar CrearTitulo("Menu de Opciones")
  
  escriba "1. Ingresar Producto."
  llamar nueva_linea
  escriba "2. Vender Producto."
  llamar nueva_linea
  escriba "3. Cambiar Valor Unitario."
  llamar nueva_linea
  escriba "4. Mostrar Información del Inventario Actual."
  llamar nueva_linea
  escriba "5. Salir."
  llamar nueva_linea
  
  escriba "Que Opción desea realizar?: "
  lea opcion
  
  retorne opcion
  
fin

/*
	programa principal
*/
inicio

/* inicializar variables */
continuar <- verdadero

/* extracción de la información del txt */
llamar CargueInicialInventario()


/* menu y movimientos */
Repita
  
  /* mostrar menu */
  menu <- CargarMenu()
  
  
  /* toma de decisiones */
  Caso menu
    1:
      /* ingresar producto */
      llamar IngresarInventario()
      llamar ActualizarArchivo()
    2:
      /* Vender producto */
      llamar VenderVehiculo()
      llamar ActualizarArchivo()
    3:
      /* cambiar valor unitario */
      llamar CambiarValorVehiculo()
      llamar ActualizarArchivo()
    4:
      /* mostrar inventario actual en pantalla */    
      llamar MostrarInventario()
    5:
      /* salir */
      continuar <- falso
    sino:
      /* error de opción */
      escriba "Por favor ingrese una opción entre 1 y 5!"
  Fin Caso
  
Hasta (continuar = falso)

escriba "Gracias por utilizar nuestro programa!"

fin

Conclusión

En este artículo, hemos abordado un ejercicio completo que pone a prueba todos los conceptos aprendidos en el curso. Cada segmento de código ha sido explicado detalladamente para facilitar su comprensión. Te animamos a resolver el ejercicio por ti mismo y luego comparar tu solución con la que presentamos aquí.

Llegamos al final de nuestro curso de Programación en LPP. Hemos recorrido un camino desde conceptos fundamentales hasta desafíos más avanzados. Esperamos que este curso haya sido de utilidad y que te sientas más seguro en el mundo de la programación. ¡Felicidades por llegar hasta aquí!

Para un mejor entendimiento, te recomiendo ver el video tutorial relacionado en este artículo. En este video, se explica de forma práctica cada uno de los conceptos y teoría explicada en este artículo. ¡Saludos!

¡Continua tu aprendizaje!

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

75 + = 84

ANUNCIOS Y PATROCINIOS